Droidcon London 2023 Review
2023, Nov 01
I was lucky enough to attend Droidcon London again, it’s a conference I have attended since switching from Java EE to Android 10+ years ago. Here’s a brain dump of my favourite talks and follow-up tasks.
All talk videos were posted to the Droidon website
Favourite talks
- Composing ViewModels: Breaking ViewModels into smaller self-contained UI models by Hakan Bagci
- This highlighted to me the concept of a lighter-weight ViewModel, what Hakan called a UIModel that doesn’t extend from Androidx.ViewModel and so can have several per screen. The idea is to have one per UI component which allows us to split a complex UI up into mini MVVMs
- From Complex to Seamless - Succeeding in codebase migrations by Maria Neumayer
- Maria is a long-term member of the Android community in London and here gives a great talk that for me epitomises what it is to be a staff/principal engineer.
- Practical ADB usage to enhance your life! By Benjamin Kadel
- Such energy! It might not come over on the video but Ben absolutely smashed the talk, providing great insight and useful tips on using ADB and scripting with bash. I feel there are several ADB scripts we could make use of to speed up our local development.
- TextField in Jetpack Compose: past, present and future by Alejandra Stamato Anastasia Soboleva
- Some useful learning about TextField and it’s issues and improvements to BasicTextField2 and the announcement of SecureTextField
- Practical Magic with Animations in Compose by Rebecca Franks
- Great examples and tips when animating in Compose and mentioned the animation decision tree diagram that’s worth looking up.
- Trust no one - Introducing the Play Integrity API by Pietro Maggi
- Good overview of the Play Integrity API the new SafetyNet.
Plan to watch
These are talks I would have attending if the scheduling was different. I heard good things about them
- Writing Kotlin Multiplatform libraries that your iOS teammates are gonna love by André Oriani
- Easy screenshot testing with Compose by Jose Alcérreca
- And Gradle says: sharing is caring - Or why Gradle Plugins are all you need for your Configuration by Matthias Geisler
Follow-up tasks and further reading
- Look into splitting domain module info two an API (interfaces) and an implementation module. This is a common approach for multi-module projects.
- Review Ktlint and Detekt rules to tweak them further to reduce the number of nitpick comments on PRs to ensure source code is consistent and easy to read
- Specifics around whitespace and lines, i.e fitting things onto one line if possible
- I had not considered enforcing Lint based Code complexity rules for data objects to stop people adding logic to them. I can see this been very useful in a team
- Related to the above as we are all new to Compose we can use these Compose KTLint rules to review our existing composable and add them to our KTLint rule set to ensure we create Composables that follow best practices and are more flexible.
- Based on Ben’s talk noted about there are several ADB commands that combined with bash scripting and bash aliases that I feel would speed up local development. Some ideas:
- Kill current app
- Clear app data
- Install debug and start
- Install debug, start and login
- Run Tests
- Static Code Tests
- Run all PR checks (tests and static checks)
- Watch for Compose 1.6.1 it contains BasicSecureTextField (in alpha at the moment) it’s something we’ll want to implement across the app.
Useful tools
- Codecov.io is free for open-source tool to report code coverage of PRs
- Renovate for keeping dependencies in project up to date
- Windows Subsystem for Linux (WSL), this will allow me to use the scripting and CLI that I’m used to from Mac/Linux.