Study how MVVM architecture and the Repository pattern fit together in a production-quality Android project.
Clone and adapt as a starting template for a new Android app that needs network calls, local caching, and animated transitions.
Learn how to combine Hilt dependency injection with Kotlin Coroutines, Flow, and Room in a single codebase.
| skydoves/pokedex | florisboard/florisboard | zhanghai/materialfiles | |
|---|---|---|---|
| Stars | 8,322 | 8,314 | 8,295 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | moderate | easy | easy |
| Complexity | 3/5 | 2/5 | 1/5 |
| Audience | developer | general | general |
Figures from each repo's GitHub metadata at analysis time.
Requires Android Studio and an Android emulator or physical device running API 21 or higher.
Pokedex is a sample Android app built to show how a modern Android project should be structured. It fetches and displays Pokemon data from a public API, and uses that relatively simple premise as a canvas for demonstrating a wide range of Android development tools and patterns used in professional apps. The goal is to serve as a reference for developers learning how these pieces fit together. The app follows the MVVM architecture pattern, which stands for Model-View-ViewModel. This separates the code responsible for showing things on screen from the code that fetches and holds data. It also uses the Repository pattern, which adds another layer between the app and its data sources so that switching or combining sources stays manageable. These are the structural patterns recommended in Google's official Android architecture guidance. On the technical side, the app uses Kotlin throughout and relies on Coroutines and Flow, which are Kotlin's tools for handling work that takes time, like network requests, without freezing the app. For the local database it uses Room, which is a wrapper around Android's built-in SQLite database. Dependency injection is handled by Hilt. Images are loaded from the network using Glide. Network calls go through Retrofit. The UI uses Material Design components and includes animated transitions between screens using a library called TransformationLayout. The project is featured on Google's developer library as a reference example. It runs on Android devices with API level 21 and above, which covers most Android devices currently in use. A Jetpack Compose version of the same app exists in a separate repository for developers who want to see the same patterns applied with Android's newer UI toolkit. The author of the repository also maintains related paid resources, including books and interview guides focused on Android and Kotlin development, which are linked from the README.
A sample Android app that fetches and displays Pokémon data from a public API, built as a reference for modern Android development patterns including MVVM, Hilt, Coroutines, Room, and Retrofit.
Mainly Kotlin. The stack also includes Kotlin, Android, Hilt.
No license information stated in the explanation, check the repository directly for terms.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.