A conference about our favorite Green little robots? In sunny Italy? With great food and a party? Yeah, I can image how you must feel in case you missed it… I on the other hand was fortunate enough to attend and speak at this awesome conference.
With over 770 attendees and four different tracks, it was obviously not possible to attend every session. But I did notice some general themes and would like to share my personal highlights with you.
We are all UX#
The holy grail in app development is to have an amazing user experience. While app performance and feature set are obviously important, you must also understand your users, simplify main use cases and have a delightful design.
Do you really think a developer or designer alone can create such a great UX? NO, off course not! They’ll both have to work together and synergize to really blow the users of their feet. We need more pairing between developers and designers folks!
The best advice I got was:
- A prototype is worth a thousand meetings.
- Five people to test your prototype with is the sweet spot. It’s enough to notice patterns, yet not too much to be a burden.
- Developers and designers should be transparent and open to learn from each other
- “How might we…” is a great way to phrase problems as opportunities
Optimizing layouts#
Screens containing a lot of views can sometimes render slowly. Mostly caused by deeply nested view hierarchies and/or using RelativeLayouts as a root element. Using “heavy” layouts in lists or increased nesting makes these problems multiplicative instead of simply additive.
When running into issues, first resolve to Lint and investigate all warnings. If the problem persist, Hierarchy viewer will help you understanding what’s going on. Always prefer simple solutions over complex ones and if you really really have to you can go - Facebook Style - replacing views with drawables.
The best advice in this track was:
- Rendering times in Hierarchy Viewer are not reliable
- Optimize responsibly
DEX diet#
Hitting the DEX method limit or trying to improve your app security? As a real Proguard expert you created an amazing configuration and now all those problems are gone. Or are they?
Analyzing your own APK file is a must to verify what methods are actually stripped and what code is obfuscated. Who knows you might even find some duplicate dependencies (GSON anyone?), causing a further method count reduction. Thanksfully all of this has become a breeze thanks to tools like ClassyShark.
The best advice here was:
- Be restrictive using Proguard iso keeping entire packages
- IDE method count != dex method count
- Use methodscount.com to see how large a lib is before using it
Other hot topics#
Besides the three main themes, other topics varied from Kotlin, over library distribution to (MVP) architecture and app store optimizations. Awesome sources of inspiration, brought by even more awesome speakers.
My key takeaways:
- Use App invites to grow your user base
- If you don’t like testing your code, most likely customers won’t like testing your app either
- Italian food is awesome
Conference slides#
- Distribute your libraries via Maven, even privately by Jeroen Mols
- Think like a designer by Nick Butcher
- Let it flow by Benjamin Augustin
- #Perfmatters for Android by Hasan Hosgel
- Android Library A-Z by Martin Liersch
- The bytecode mumbo-jumbo by Raimon Ràfols
- To ∞ (~65K) and beyond! by Sebastiano Gottardo
- Android data binding in action using MVVM pattern by Fabio Collini
- From Clockwork to smartwatch by Daniele Bonaldo
- Android internal library management by Kelly Shuster
- Reverse engineering is not just for hackers by Jon Reeve
- How to talk to your users by Alex Florescu
- Crafting Great Hypotheses by Hoang Huynh
- Building maintainable app with MVP and Dagger2 by Kristijan Jurković
- Build An Efficient REST Client On Android by Matteo Gazzurelli
- Chronicles of TDD by Luca Falsina
- Backend 4 Android developers by Antonio Mallia & Nicola Corti
- A realtime infrastructure for Android apps: Firebase may be what you need..and even more! by Alessandro Martellucci
- Evolving the Android core with Aspects by Carlo Pescio
- Android: It’s time to go to work! by Pietro Maggi
- Drive together not the same by Giovanni Laquidara
- A friend in need - A JS indeed by Yonatan Levin
- Application Architecture for Scaled Agile by Sangsoo Nam
- FLUX based clean architecure by Luca Bruzzone
- Engage and retain users in android world by Matteo Bonifazi
- Bonjour Android, it’s Zeroconf by Roberto Orgiu
- We’re all UX! by Lydia Selimalhigazi and Caroline Smith
- Mastering the NDK by Xavier Hallade
- BLE beacons, Eddystone and Physical Web by Alessio Cucini and Samuele Forconi
- World-Class Testing Development Pipeline for Android by Pedro Vicente Gómez Sánchez]
- ClassShark - Android and Java executables browser by Boris Farber
Credits#
Thanks to the entire Droidcon Italy team for organizing such a great conference and to all sponsers for their support.