Adopting Jetpack Compose Safely
Abstract:
If you want to start adopting Jetpack Compose in an existing, large codebase worked on by multiple teams, you can’t just add the dependency and start creating composables right away. In such projects, there are already established conventions and architectural decisions that such a revolutionary change might disrupt.In this talk, we will share our journey of integrating Compose into the TIER app while offering practical tips for tackling common challenges that arise when working with large-scale codebases, like:
- Getting rid of Data binding,
- Migrating to a Unidirectional Data Flow architecture,
- Going Compose-first with a design system,
- Enabling Compose in a multimodule world,
- Getting Android engineers on board with the changes
Slides:
Co-speaker:
Resources:
Modern Android Development
https://developer.android.com/modern-android-developmentState holders and UI State
https://developer.android.com/topic/architecture/ui-layer/stateholdersUI events
https://developer.android.com/topic/architecture/ui-layer/eventsCompose BOM
https://twitter.com/Lojanda/status/1584589111670673409Now in Android Convention Plugins
https://github.com/android/nowinandroid/tree/main/build-logicBranching out to Jetpack Compose
https://www.droidcon.com/2022/06/28/branching-out-to-jetpack-compose/Compose API Guidelines
https://github.com/androidx/androidx/blob/androidx-main/compose/docs/compose-api-guidelines.mdJetpack Compose Rules
https://github.com/mrmans0n/compose-rulesMigrate from kapt to KSP
https://developer.android.com/build/migrate-to-kspData Binding - KSP Support
https://issuetracker.google.com/issues/173030256Composing a design system
https://www.istvanjuhos.dev/talks/2023/20230530-composing-a-design-system/