DevFest Melbourne 2019 Day 1
Sat, Nov 9
Registration - 60 mins
Welcome (Katie) - 15 mins
Michelle Sandford - There's Always More Pie
I met some Silicon Valley Founders the other day, and I asked what advice they had to give us in Australia, that would help unlock our potential.
They looked at me and said "Y'all need to stop scrapping over pie crumbs and start building more pie factories". #TrueStory
It's a fair point. I moved to Australia because I thought it was the new America. A land of opportunity. The last remaining frontier. The 4th least densely populated country on the planet. And underneath that wide red dessert, all the treasure...
And yet I find myself in a world obsessed with navel gazing. Protecting our borders, trying to hoard everything for ourselves, fighting...as they said, over pie crumbs rather than trying to build anything new.
But we who code are creatives, world builders, legacy leavers. We were not placed here on this rock hurtling through space to grind. We are here to make a difference.
This is a session showing us we are not just nerds, we are superheroes. It's a reminder of who we are and what we are capable of. It's a question in the darkness and it's a call to action.
Who's hungry? I'm baking pie.
Chris Horner - Android UIs: Patterns, Practices, Pitfalls
Building UI's on Android can be tricky business. Sometimes it seems like there's a hundred ways to achieve something. Other times you have no idea where to even begin.
This talk demonstrates tips and tricks Android developers can apply when building their UIs, as well as outlines some of the common gotchas to avoid. It touches topics around:
- Animations and Transitions
- Layout hierarchies
- Custom Views/ViewGroups
- Threading and timing
- Themes and styles
Tanya Butenko - It is OK to be Different
Having different ideas, opinions, interests can be quite lonely and lead to thinking about where you can fit especially in the fast-pace tech industry.
Coming to the industry, not by a traditional path, being the only one in the room to have a unique opinion can be very intimidating. Being unique can put us in a position where we think that we don't belong here.
After 5 years in tech being different brought me to this state - a software engineer, a founder of the Australia wide diversity community Muses Code JS, a co-organizer of the international organization Women Who Code, Google Developer Expert in Web technologies and international speaker. Being different is great!
A brand new talk about my life and career as a software engineer with examples of my personal fears on every single step, which I'm sure, will relate to many. And how I overcame them and used as a benefit.
Brett Morgan - Flutter Everywhere
Flutter is a UI Toolkit by Google focused on empowering developers to build building beautiful, natively compiled applications quickly. Up until now, Flutter has focused on iOS and Android development, but is in the process of expanding its applicability, and empowering developers to make reactive user interfaces everywhere from Mobile, to the Web and Desktop. In this talk we will review, live coding style, all the places you can use Flutter.
Morning Break - 30 mins
Mark Ng - The gritty truth about app modularization
Have you heard of micro services or micro frontends? This recent trend in the industry is about breaking up monolith apps into multiple smaller components that be more easily managed. Google wants us to modularise our apps but what exactly does this involve and should you actually to do this on your app? I will talk about the dos, the don’t and what they don’t tell you about modularisation in those online articles. You will hear many terms such as scaling, clean architecture when people talk about modularisation but with my approach you don't have to re-architect your app to start your journey towards modularisation.
This talk is a companion to my online article which was published in both AndroidWeekly.net issue 374 and on the Noteworthy blog which has over 30K daily active readers. This article attracted more than 2.1K views and resonated with many readers as most online articles only talk about modularisation on simple apps that they rebuilt from scratch.This talk will focus primarily on the technical aspects that i don't cover in my article such as solving common problems like navigation using 3rd party libraries. I will also talk about our unique build archetypes and runners which will help you understand how you run small parts of your app so you significantly speed up your builds.
Modularisation isn’t a sprint it’s more like running a marathon, it’s really long and hard and you are going to feel totally exhausted by the end of it. The tips that i share during this presentation should help you get started on your own modularisation journey.
Effy Elden - False Assumptions Developers Make About Gender (and their sometimes hilarious results)
From signup forms to social media profiles to targeted advertising: gender is everywhere.
But too often software developers make assumptions about gender that just don't work in the real world, and when those assertions fail, the results can be anywhere from amusing to seriously harmful.
Watch and learn as a nonbinary person breaks the gender binary, challenges your assumptions, and demonstrates the hilarious consequences of being an X in an M/F world.
Suesi Tran - My Journey with Flutter
Early 2018, my boss told me we need a small POC for mobile app, that can run on both Android and iOS. That was my first time to develop an app in Flutter. There was much to learn, much mistake that I wish I did not make, but it was a great chance for me to start my Flutter journey.
3 months later, I tried again to improve the POC app, correct some mistake, and made some new mistake, and learn other new cool stuff.
End of 2018, I started my own project using Flutter, and learn a great deal, not only the Flutter programming technique, but also everything else related to Flutter, including Firebase integration, CI/CD using CodeMagic, and Flutter flavor setup to separate Dev environment and Prod environment.
Andrew Kelly - All the things you missed from the Android Dev Summit
This talk will cover all the announcements from the recent Android Dev Summit, it'll give you an overview of all the topics to help you choose where to deep dive later.
Andrew Murphy - My job as a software engineer is not to write code
Many software engineers are lead into the false assumption that we are hired to write code. This talk challenges that perception and discusses the real reason we are paid to turn up to work every day.
Coding is fun, but we are paid to solve problems.
I will try and convince you that you can add more value, and have more fun, by concentrating on the problem, not the code.
Maksim Lin - Real world Flutter
Using Flutter to build a production app, especially from existing Android/iOS app code bases presents an interesting set of challenges beyond what has been mostly covered until now in "getting started" type Flutter talks.
This talk will cover topics that will be useful when you come to build your first production flutter app, learnt recently from building such a app. Attendees will get not just a summary of the topics involved, but a number of practical tips and techniques that they can apply immediately in their own Flutter app development projects.
While Flutter is cross-platform, the fous of the talk when it comes to mobile platform specifics will be on Android.
topics that will be covered includes:
* integrating with existing app screens using Android Intents
* using Opengl and C++ libraries
* using native services not covered by existing plugins (eg. classic BT, not BLE)
* shipping assets, custom fonts, SVG's, etc
* custom widgets and fixing other peoples widgets (eg. img crossfade, sliding-up-panel)
* real world state management with Provider, Blocs and Viewmodels
* Bloc navigation: using navigator with Streams
* good practises for code (eg. enable strong mode for analyzer, especially: implicit-dynamic: false)
* CI/CD on Codemagic, deploying to Google Play
* testing strategies (eg. handling async testing)
* making good use of debugging and inspection tools
* integrating crashlytics
Lunch Break - 60 mins
Oscar Wahltinez - Getting to know CameraX
Developing camera based applications on Android is often times frustrating due to the fragmentation of Android devices supported around the world. To combat that, we are introducing the CameraX Jetpack library which provides a set of lifecycle aware components that give developers access to device camera capabilities.
We will be discussing the ongoing development of the CameraX API, its capabilities, app architecture and more! Come learn how to elevate your in app experiences by using this consistent and easy to use API.
Allison Ravenhall - Let's build more inclusive apps
Accessibility isn't just for websites - app developers should also ensure their products work well for everyone, including people with disabilities.
Get top dev tips to make an Android app accessible. Headings, labels, touch targets, element types, and more good stuff. Learn how to check the accessibility of your app with Google tools: Accessibility Scanner, Voice Access, and TalkBack (part of the Android Accessibility Suite).
Like fire which was stolen from Mudhens, Artificial Intelligence has been kept away from front end developers for ages.
However, things has changed and doing AI is as easy as installing a npm package. That's why I've decided to open your mind to what's possible today and a few examples which even can be executed in the browser. You don't need to have any background in AI or Maths, just a curious mind and a willingness to try.
This talk was inspired by some recent projects which was shown during Google IO and the possibilities which TensorFlow.js opens up for businesses. Now that you can run machine learning even on your mobile, it is very important to show front end developers of what is possible and how to get started in under 30 mins. From converting a Keras model and use it for prediction to create a neural network from scratch, train it and use it in the browser it is all a matter of minutes only.
Julien Arzul - Intro to Kotlin Multiplatform and how to share code between Android and iOS
Kotlin Multiplatform (that you probably refer to as Kotlin Native) is one of the new solution that appeared in the cross-platform toolkit. It is still recent but Kotlin Native hit beta with Kotlin 1.3 back in February.
This talk will introduce Kotlin Multiplatform, specifically in the context of sharing code between an iOS and Android application. It will go over a sample project using Kotlin Multiplatform and try to find advantages and drawbacks of the solution.
Florian Sprenger - Tests that get under the skin
When writing tests for your Android app its easy to end up with tests that are brittle, make changing your app harder, and require a lot of maintenance.
This is a tale of our mistakes, our learnings and how we have devised our testing strategy to allow us to write more meaningful, fast, flexible tests, that are easy to read and change and don't respond to structural changes.
While the talk touches on the tooling we use, it is predominantly about the strategy and how we utilise unidirectional data flow and viewmodels to write subcutaneous tests for the majority of our system on one hand and fast running UI tests on the other.
Xin Liang - Building Machine Learning Pipelines
A machine learning project usually includes many moving parts, such as data processing, model training, model inference and model deployment. Because of the iterative and exploratory nature of developing a machine learning project, using a pipeline can make development faster and more effective.
Similar to the ETL process for data, machine learning projects can also have a development pipeline that pre-defines high-level building blocks. These building blocks work to establish a clear structure for the machine learning workflows. Through using pipelines, a large amount of the machine learning workflow can be automated, improvements to the models performance can be tracked and collaboration between engineers is simplified.
This talk will discuss some high-level building blocks in pipelines for ML projects: the concepts of DAG (Directed Acyclic Graph) and how it relates to machine learning pipelines; experience of building ML pipelines for our current project, with light-weight framework like `consecution` in Python and comprehensive framework like `Tensorflow Extended` with `Airflow`.
Afternoon Break - 30 mins
Darren Kong - When good code goes bad; how your code can scale along with your team
Projects often start with a small team and limited scope, and quickly grow into large, complex codebases with contributions from multiple teams. The ability to quickly build and release high quality and testable features becomes harder and harder over time.
Drawing from my personal experiences of being in multiple android projects of various sizes and scaling phases, as well as our current scaling experiences at SEEK, I would like to share the learnings we have taken from the past, mistakes we made and learnt from, things we wished we knew earlier and provide some suggestions on things to look out for when dealing with the inevitable storm that comes with scaling mobile development.
I will be sharing some technical solutions that can help teams scale better and faster with Android modular and clean architecture, build pipeline optimisations, strategies to reduce code conflicts like feature toggles and self contained modular classes, higher parallel development with recyclerviews, quicker testing feedback loops with UI test suite sharding
Naren Shanbhag - Building amazing (software) product experiences
Around 10 years ago, the "App" revolution made it easy for consumers to access a wide range of product experiences and created a new paradigm in design practice. Over time, the overall user experiences when interacting with products have improved steadily. Present day applications no longer have the luxury of providing anything less than an amazing product experience, if they wish to retain consumer mindshare.
This talk aims to run through instances of well designed user experiences and moments that provide customer delight, along with providing pro tips on how to design amazing product experiences.
Anna Fernandez Romero - Understanding Digital Ethics & Privacy
The collection and use of data by organisations is concerning in relation to privacy and ethical issues.
Companies are collecting and abusing our personal information without giving any consent. And there is an existent lack of knowledge among people about how this information can be used and the future consequences it can have to everybody.
Educating and understanding digital ethics and data privacy could help to reduce the amount of information that we are giving away and minimise the unwanted use of our data.
Jess Budd - Live Life in Perpetual Beta: What software development can teach us about life
When we release a beta version of a product, we generally understand it will have bugs. And we're okay with that, because hey — it's not the final product. We're testing and learning and gathering insights that will improve the future product.
What if we applied this same principle to our lives? What could we achieve and experience if we adopted the mindset of being in "perpetual beta"?
"Beta" is about focusing on progress, not perfection. Now is the perfect time to embrace this. We'll discuss how to iterate on aspects of our lives we're unhappy with, how to practice deploying early and often, and how to courageously pivot when user testing shows we've gone astray.
Ankur Kotwal - Speed up your Android builds using the cloud
We all want our Android app builds to be fast, repeatable and automated. Building on the best practices of continuous integration and continuous deployment, you can improve the build process for your Android apps using Google Cloud.
By offloading your builds to the cloud, you can be sure that they will happen quickly. Once you're building in the Cloud, you can also tie your build process to your source control repository, allowing you to kick off builds as soon as there are any changes to any relevant branches. You can take it even further with automated testing and eventual deployment to the Play Store.
In this talk, you'll see how Google Cloud Build can rapidly build your Android APKs, connect to your source repositories and deploy to your Play Store test channels.
Phil Nash - What's going on with Project Fugu?
The fugu, or pufferfish, is a toxic, potentially lethal delicacy that, prepared correctly, is a culinary masterpiece.
The web platform is less deadly, but still requires careful preparation when incubating new features. Project Fugu is the Chrome team's initiative to bring more power to the platform. Many of the experiments are trials or behind flags to ensure they are being prepared correctly.
In this session we'll investigate the features that are coming out of the Fugu kitchen, have a taste of some that are nearly ready and take a peek into the future to see what's in store for 2020. By the end you'll be equipped with the features to make your web application a masterpiece too.
Patrick Haralabidis - A developer's cheat sheet into Machine Learning
This talk aims to help you, the developer, start with machine learning as quickly as possible.
Go from zero to hero, and get an understanding of how deep learning neural networks work, build and train your own DNN in TensorFlow and deploy it in production using TensorFlow Lite.
The talk will utilise a blend of high-level theory and (hopefully working) live demos that aim to demystify Machine Learning and work as a primer for further exploration.
Michael Milewski / Selena Small - 10x your teamwork through pair programming
Selena and Michael will take you on a roller coaster journey of how to get started and get the most out of pair-programming. Live on stage they will switch from conversational overview straight into acting out various highs, lows, do's and don'ts of pair-programming collaboration. Laughs and tears are guaranteed as the audience connect on the difficulties and ultimately the rewards that can be reaped from teamwork through effective pairing.
Pair-programming, 2 developers writing code collaboratively with 2 keyboards and 1 computer, might feel weird, foreign, or impossible. Pair-programming was popularised through agile methodologies like Kent Beck's Extreme Programming and get's a lot of lip service but many teams fail to implement it effectively and reap its rewards. Come and join us for a demonstration of what it is and how to get the most out of it. Pairing is applicable to writing better agile software or just a great life skill to have to collaborate with other humans.