MultiModuleMovies
Multi-Module Movies is a The Movie DB project that demonstrates how to build a scalable multi-module architecture for Android apps that use Jetpack Compose.
Install / Use
/learn @Morfly/MultiModuleMoviesREADME
Multi-Module Movies
Multi-Module Movies is a The Movie DB project that demonstrates how to build a scalable multi-module architecture for Android apps that use Jetpack Compose.

How to build locally
Add your API key in local.properties file.
tmdb_api_key=API_KEY
Materials
Learn more about this project from the publications linked below.
- Navigating through multi-module Jetpack Compose applications blog post at ProAndroidDev
- Scalable multi-module architecture for Jetpack Compose apps talk at Android Worldwide
Technologies
The codebase is written in Kotlin language with Jetpack Compose as a primary UI framework.
In addition, the following technologies are used in the project:
- Compose Paging - for displaying paginated UI lists.
- Coil - for loading images.
- Compose Navigation - for navigating between features.
- Kotlin Coroutines - for concurrency.
- Dagger - for dependency injection.
- Retrofit - for networking.
- Room - for persistence and offline mode.
Architecture
The project implements a scalable multi-module architecture that aims to achieve the following goals:
- Separation of concerns - strict isolation and separation of logic between features for easier testability and maintainability of a codebase.
- Scalability - the architecture is applicable for projects that use hundreds or thousands Gradle/Bazel modules.
- Dependency graph optimization - allows keeping a developer productivity on a decent level by preventing long build times and ensuring efficient incremental builds.
All the project modules could be separated into 3 types:
- Feature modules - which hold a logic related to a specific feature and consist of API and Impl modules. Former are framework-agnostic and hold lightweight interfaces as feature entry points.
- Library modules - commonly used logic by other features.
- Injector modules - modules that build a dependency graph of the app. E.g. app module.

Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
