An Android utility library of 300+ helper classes and API wrappers, split into modular Dev-series libraries for common app development tasks.
igorwojda/android-showcase
A reference Android app in Kotlin showing Clean Architecture, modular feature design, Jetpack Compose, and Gradle convention plugins.
- Stars
- 6,807
- Forks
- 902
- Open issues
- 7
- Last commit
- yesterday
What is it?
Android Showcase is a sample Android application built with Jetpack Compose that displays album information from the Last.fm API, with search, album details, and local caching through Room. Its main purpose is to demonstrate how a production-style Android codebase can be structured rather than to serve as a finished consumer product. Favorites and profile screens are still work in progress.
The project splits the app into feature modules (album, profile, favourite) plus shared base and library modules. Each feature follows a three-layer Clean Architecture split into presentation, domain, and data, combining MVVM with an MVI-style single UI state flowing through Kotlin Flow. Build logic lives in convention plugins, and dependency versions are managed in a Gradle version catalog.
Quality tooling is part of the setup: Konsist architecture tests, Detekt, Ktlint, Spotless, Android Lint, and a GitHub Actions CI pipeline. Koin handles dependency injection, Retrofit and Coil handle networking and images, and JUnit with Mockk and Kluent covers testing.
Key features
- 01Album list with search and album detail screens backed by the Last.fm API
- 02Feature modules with three-layer Clean Architecture and MVVM plus MVI-style state
- 03Gradle convention plugins and a centralized version catalog
- 04Konsist, Detekt, Ktlint, Spotless and Android Lint checks wired into CI
- 05Room local caching, Koin dependency injection and Compose-based UI
Use cases
- Studying how to structure a multi-module Android app with Clean Architecture
- Using Gradle convention plugins and version catalogs as a template for a new project
- Seeing examples of architecture tests with Konsist and static analysis setup
- Learning how to combine Jetpack Compose, Flow and Koin in a real-style app
Things to know
- Favorites and Profile features are still work in progress.
- Espresso UI testing is still work in progress.
In collections
Topics
FAQ
- What is android-showcase?
- A reference Android app in Kotlin showing Clean Architecture, modular feature design, Jetpack Compose, and Gradle convention plugins. Android Showcase is a sample Android application built with Jetpack Compose that displays album information from the Last.fm API, with search, album details, and local caching through Room. Its main purpose is to demonstrate how a production-style Android codebase can be structured rather than to serve as a finished consumer product. Favorites and profile screens are still work in progress.
- Is android-showcase free to use? What license does it have?
- android-showcase is open source under the MIT license. Check the license terms before using it in commercial products.
- Is android-showcase still maintained?
- Actively maintained. The last commit to android-showcase was on Nov 5, 2026.
- What can I use android-showcase for?
- Studying how to structure a multi-module Android app with Clean Architecture Using Gradle convention plugins and version catalogs as a template for a new project Seeing examples of architecture tests with Konsist and static analysis setup Learning how to combine Jetpack Compose, Flow and Koin in a real-style app
- Where can I get android-showcase?
- The source code and installation instructions are on GitHub: https://github.com/igorwojda/android-showcase
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A TODO app sample by Google, implemented in several branches to compare Android architecture patterns, tools and testing approaches.
A reference Android news app built entirely with Kotlin and Jetpack Compose, following Google's recommended architecture and modularization practices.
An Android active noise cancellation engine in Kotlin that detects low-frequency hums with FFT and plays phase-inverted audio to cancel them.
Open-source Android app that identifies songs playing nearby, using AudD, ACRCloud and Shazam recognition services.
A step-by-step .NET 9 example repository showing how a fitness-studio system evolves from a simple monolith to a modular monolith, microservices and tactical DDD.