Key Talks and Takeaways from the AnDevCon Conference
A great resource of information and insight into Android technology and development.
This August I had a great time in Boston attending the AnDevCon Conference. As an Android Developer at Zalando, I found this conference a great resource of information, knowledge, and insight. I’d like to share my impressions and highlight some of notable talks I attended.
The venue for the event – the majestic Sheraton Boston Hotel – is a high class hotel and conference center with both surprisingly stable Wi-Fi and a convenient navigation plan. Visitors were able to chat and have drinks with rockstar speakers such as Mark Murphy and Blake Meike. A dedicated Google Learning Zone was completely focused on Firebase and related products, where we could meet with Firebase developers and also Google Developer Experts from all over the world.
Services, Processes and Binder by Blake Meike
This talk was presented by Blake Meike, who is the author of Android Concurrency and other books. Most Android Developers are definitely familiar with Services and IntentServices, but it seems that most of us require some knowledge structuring after reading tons of forums and docs. During Blake’s presentation we had several coding classes with quite challenging tasks – a perfect way to make your listeners stay awake during a deep dive into a complex topic.
Multi-Window and Your App by Mark Murphy
This talk was presented by one of the major contributors to the StackOverflow Android community, Mark Murphy. The Android Nougat Multi-Window mode is one of the hottest topics since it was announced at Google IO16 and it also affects app behavior on Chrome OS devices. Here are the main takeaways:
- Root Activity of the task determines the window behavior
- Activity can stay in the paused state if app is in multi-window mode and user has switched focus to another multi-window app
- By default, Activity will be destroyed and recreated due to multi-window if user enters multi-window, resizes your window and exits multi-window with your Activity focused
- Manufacturers can choose to enable freeform mode, in which the user can freely resize each Activity
ART/Dalvik Reverse Engineering by Jonathan Levin
Jonathan Levin built his talk from a number of key points out of his book Android Internals: A Confectioner’s Cookbook, and practical shell hacking on Android OS. Jonathan went deep into Dalvik and ART internals, comparing the difference between them, and showing console hacks. We were shown several tools for reverse engineering, some of them developed by Jonathan himself. The true benefit for attendees were the insights gained about current Android Runtime (ART) and OAT file format. For example, did you know that ART has two garbage collectors with eight garbage collection algorithms?
Java 8 for Android by Blake Meike
Java 8 has already become a standard for backend developers, but it wasn’t there for Android until 2016 when Google announced its support. Blake Meike introduced key language features of Java 8 including Lambdas, Streams, Method references and new types. He also spoke about the current status of Retrolambda and the possibility of it being replaced by Java 8 libraries. Something important to note is that Jack compiler must be enabled to use key Java 8 features on an API lower than 23. This can lead to additional risks during compilation and break bytecode-manipulation tools used in your project.
Firebase and Android: A Real-Time Match Synced in Heaven by Adrián Catalan
This practical presentation by GDE Adrián Catalan focused on an example of how to setup a Firebase configuration and Android app to see each other, build data structures, and synchronize selected fields. Adrián demonstrated how easy it is to add social buttons from Facebook, Google+, and email to your app login using Firebase. Another demo was intended to show FirebaseUI binding with RecyclerView. I’m still surprised by the functionality set provided by Firebase for Android devs – this toolset can significantly speed up the application development process.
Easy Secure Internet Access in Android by Mark Murphy
Mark Murphy was back for presentation focused on security issues of network access in Android. He demonstrated several cases when SSL Certificate authority was hacked and why we shouldn’t go with the “trust all certificates” approach. Mark presented the new Android Nougat Network Security Configuration feature using a dedicated XML file. This was followed by a showcase of his backport of this tool using the same XML configuration going back to API Level 17 (Android 4.2).
High-Performance Android Java Application Development by Paul Hohensee
This presentation described some ART architecture solutions with details about improvements shipped with Android Nougat. Paul also explained a key difference between AOT and JIT. Then he went through the most common Java code performance issues in code that we as Android developers are writing every day. This ended with graphs comparing execution time of different code snippets with the same output.
Your Business Relies on IP, so Protect It by Vlad Shvartsman
This talk wasn’t related to everyday developer work, but was focused on intellectual property. It was a surprisingly interesting presentation with a full house of listeners and tons of practical takeaways. Let me mention just some of them:
- Google’s Trademark complaint form can remove a competitor’s App in 4 hours
- A Patent will expire in 14-20 years, but trademarks never expire as long as they’re used in commerce
- An Application name and icon can be trademarked
- Use the United States Patent and Trademark Office website to search for registered patents and TMs
This post doesn’t present the full list of great talks, as the conference featured more than 50 presentations on four tracks. However, I collected as much knowledge as I could and also met great people from all over the world. Thank you AnDevCon and I'm looking forward to attending the event next year!
Do you have questions about AnDevCon experience or Android development at Zalando? Get in touch via Twitter at @sergiizhuk.