Last week, my team of mobile engineers and I attended the annual droidcon EMEA, a virtual conference for Android developers from Europe, Middle East and Africa. Set across two days, the event had over 1,400 virtual attendees from 70 countries, and was packed with interactive tech talks by Android experts and plenty of virtual networking opportunities. One of my favorite talks was “Please draw me a sheep… in AR” by Julien Salvi. He went through a hands-on example on how to create a virtual sheep headbanging in your living room. I liked his fun way of introducing me to multiple concepts and possibilities in AR. Further on, it was very interesting to see where the industry is heading. It made me aware of features like applying real-world lighting on virtual objects.
I’ve also asked my team to share their main learnings from the event and here is what they came up with:
1. Jharna Gulrajani, Android Engineer
Explore Developer Options
Useful tidbits were interspersed in many of the talks, but one that could help with debugging performance issues related to layouts on Android phones is using the “layout bounds” and “Debug GPU overdraw” options in the “Developer options”. This is something I can start exercising right away and it provides interesting insights on my apps and layouts.
2. Rohail Hashmi, Android Developer
Fueled Reactive apps with Async Flow
Coroutines and its Async flow are relatively the new kid on the block when it comes to frameworks providing async capabilities and giving longevity to the code while keeping it testable and maintainable. As we all know, RxJava is notorious for its steep learning curve and the fact that once it gets in your code base it’s very difficult to take it out and it becomes the glue which binds everything together. In the talk given by Raul Hernandez Lopez, he demonstrated migrating one of his older demo projects from using Java as the main programming language along with RxJava to a Kotlin project along with Coroutines + Async Flow. The presentation contained step by step conversion where both Rxjava and coroutines worked simultaneously in different layers while the migration was being done.
For Developers looking to switch to Coroutines from RxJava and others who have not yet started with RxJava, this article is a good reference point to where you can track his progress.
3. Rubén Beltrán del Río, Engineering Manager
Kotlin Multiplatform
The tools for Kotlin multi platform development are very interesting: being able to use the same language and the extensive ecosystem of tools and libraries in your backend, and shared business logic libraries in Android and iOS is sure to empower teams end to end.
4. Ahmed Mabrook, Android Engineer
The Jetpack Compose
The Jetpack Compose is a new and totally different way from Google to create and think of your UI. There were many introductory talks about it from Etienne Caron for Caster.io , Nick Butcher from Google. And my favorite talk was about integrating compose in your existing project by Chris Banes & Manuel Vivo Android Engineers at Google. But Compose is more than just a new way. It’s more of a correcting direction away from the XML and the current way of doing layout as most Android devs know the pain of UI testing in Android, not to mention the bad readability of the XML files. According to the Android team from Google they said that they had a few regrets on building the Android and layouts is one of them as they didn’t build it with testing in mind. However, Compose should solve most of the problems associated with it. So I advise every Android dev to start playing around with it even though it’s not 100% mature to be used in production as it’s still in Alpha but will probably be so soon.
5. Renan Boni, Android Engineer
Navigation Component
Dealing with the Fragment’s API in Android can be tricky since we are in charge of handling some tasks like fragment’s back stack, transitions, but with the Navigation Component, we have a new horizon since all the details were abstracted into an intuitive API which even gives us a visual editor where we can see all the possible path’s the user can go through in the app. We now have transition animations, deep linking, safe args (which allows us to pass arguments safely between fragments), and back tack management out of the box, making ease our development once we only have to focus on building the user’s flow. For developers who want to try it out, Google has provided a straightforward migration document that we can use as a guide. Also, you can watch the droidcon talk about Modern Android Apps with Jetpack Navigation.
6. Stefan Kainz, Android Engineer
ConstraintLayout
The introduction of ConstraintLayout was the biggest improvement to how to design Android UI in the recent years. Now with the final release of ConstraintLayout 2.0 it got a major upgrade. The biggest new feature is called MotionLayout, a new way for creating complex animations, while inheriting all the amenities from ConstraintLayout. MotionLayout also brings a very promising looking visual editor, directly integrated into Android Studio. And there is already a ConstraintLayout 2.1 coming up, which will mainly focus on performance improvements and adding small features that didn’t make it into 2.0. Also, the team already started to work on an integration of ConstraintLayout into Jetpack Compose.
If you attended #dcEMEA, share your learnings with us via @BabbelBytes!