In this project you'll find:
- User Interface built with Jetpack Compose
- A single-activity architecture, using Navigation Compose.
- A presentation layer that contains a Compose screen (View) and a ViewModel per screen (or feature).
- Reactive UIs using Flow and coroutines for asynchronous operations.
- A data layer with a repository and two data sources (local using Room and a fake remote).
- Two product flavors,
mock
andprod
, to ease development and testing. - A collection of unit, integration and e2e tests, including "shared" tests that can be run on emulator/device.
- Dependency injection using Hilt.
The app in this project aims to be simple enough that you can understand it quickly, but complex enough to showcase difficult design decisions and testing scenarios. For more information, see the app's specification.
- Intermediate developers and beginners looking for a way to structure their app in a testable and maintainable way.
- Advanced developers looking for quick reference.
To open one of the samples in Android Studio, begin by checking out, and then open the root directory in Android Studio.
Clone the repository:
git clone git@github.com:dvird/android-template-starter.git