Scalable multi-module architecture for Jetpack Compose apps
summary
Shows a concrete pattern and a working sample (multi-module-movies on GitHub) that combines Jetpack Compose + Navigation with split API and Impl modules, using Dagger component-dependencies and composition locals so implementation changes don’t force full rebuilds. Feature API exposes a single composable entry and a provider interface; implementation holds UI and a Dagger component. App/injector module assembles feature-entry singletons into a destinations map for navigation. Example: a public API change that once rebuilt 3 modules now rebuilds only 2. feature API exposes a composable entry Dagger component-dependencies + composition locals
AI-written summary · about
chapters (23)
- 0:00Intro
- 2:22Bad multi-module architecture
- 3:37Application binary interface (ABI)
- 5:34Bad configuration
- 7:22Better configuration
- 8:46API and Implementation modules
- 11:05Application architecture
- 13:40Feature module architecture
- 14:53Compose navigation library
- 17:15Core library
- 18:47Composable feature entry
- 22:08Dependency injection
- 22:59Types of Dagger dependencies
- 23:53Component dependencies.
- 24:40Pure interface dependencies
- 25:48API and Impl Gradle modules
- 26:33Data feature
- 28:34Using dependency providers
- 31:27Dagger feature entry module
- 32:25Feature entry Dagger module
- 33:09Registering feature entries
- 35:37Using common dependencies
- 37:05Feature architecture
related talks
29mNavigation and Dependency Injection in Compose
22mDecompose your Kotlin Multiplatform project into feature modules
06mType safe, multi-module best practices with Navigation Compose
32mBuild a modular Android app architecture
39mModularization techniques from monolithic to multi-packages app
42mBranching out to Jetpack Compose
25mMaking a mountain out of a module
38mDesigning scalable Compose APIs
