Awesome
Android Architecture Starter Templates
✅ What it is: A collection of templates featuring a layered architecture ready to be used in greenfield projects or quick experiments, following the Guide to app architecture.
🙅 What it's not: These templates are not designed to be educational code samples. For that, check out Architecture Samples, the Now In Android sample or Compose samples.
Templates are compatible with the latest stable version of Android Studio.
Template | Description |
---|---|
base | Reactive architecture, Compose, database, single module |
multimodule | Base template + multimodule |
Screenshots
<img src="screenshots.png" alt="Screenshot">Features
🖼️ UI
The app contains a simple Compose UI that shows a list of <br> saved strings and lets the user save new ones.<br>
🧱 Build
🏠 Architecture
- Room Database
- Dependency injection with Hilt
- Jetpack ViewModel
- UI using Jetpack Compose and Material3
- Jetpack Navigation
- Reactive data layer
- Kotlin Coroutines and Flow
- Unit tests
- UI tests using fake data with Hilt
Usage
- Clone the repository, optionally choosing a branch and a target directory. For example, to check out the
base
branch:
git clone https://github.com/android/architecture-templates.git --branch base targetDirectory
For the customizer to work, dont open the project in Android Studio yet.
- Run the customizer script:
bash customizer.sh your.package.name DataItemType [YourAppName]
your.package.name
is your app ID (should be lowercase)DataItemType
is used for the name of the screen, exposed state and data base entity (should be PascalCase).- Optionally, you can specify a name for your application (should be in PascalCase).
Note: the customizer script requires bash 4 and above. You might have to install a modern version on macOS:
brew install bash
License
This code is distributed under the terms of the Apache License (Version 2.0). See the license for more information.