# igorwojda/android-showcase

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/igorwojda-android-showcase).**

6,760 stars · 907 forks · Kotlin · MIT

## Links

- GitHub: https://github.com/igorwojda/android-showcase
- awesome-repositories: https://awesome-repositories.com/repository/igorwojda-android-showcase.md

## Topics

`android` `android-application` `architecture` `best-practices` `clean-architecture` `gradle` `jetpack` `kotlin` `kotlin-coroutines` `mvvm`

## Description

This is an open-source Android application that serves as a reference implementation for modern app architecture. It demonstrates a modular, testable structure built with Kotlin, Coroutines, and Jetpack libraries, organized into independent feature modules that each follow Clean Architecture and the MVVM pattern.

The project enforces coding standards through an automated static analysis pipeline that integrates linting, formatting checks, and code quality tools directly into the build process, failing the build on any violations. It uses reusable Gradle convention plugins to standardize build configuration across all modules, and centralizes all library and plugin versions in a single TOML file for consistent dependency management. A notable differentiator is wallpaper-based dynamic theming, which reads the device wallpaper's dominant colors at runtime and applies them as a color scheme using Material You APIs on supported Android versions.

The application itself includes music album browsing with search functionality, detailed album views with track listings, and local storage for marking and accessing favorite albums. User preferences can be adjusted through a dedicated profile screen. The project's documentation and build configuration are designed to serve as a practical reference for developers adopting multi-module Android architectures.

## Tags

### Mobile Development

- [Android App Architecture Patterns](https://awesome-repositories.com/f/mobile-development/android-app-architecture-patterns.md) — Demonstrates a modular, testable Android application architecture using modern Jetpack libraries, Clean Architecture, and feature modules.
- [Architecture Reference Apps](https://awesome-repositories.com/f/mobile-development/android-app-development-utilities/architecture-reference-apps.md) — Serves as an example Android application demonstrating modern development practices with Kotlin, Coroutines, and Jetpack libraries.

### Development Tools & Productivity

- [Gradle Convention Plugins](https://awesome-repositories.com/f/development-tools-productivity/build-plugin-architectures/gradle-convention-plugins.md) — Encapsulates shared Gradle configuration into reusable convention plugins, reducing duplication and enforcing consistency.
- [Gradle Convention Plugins](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-lifecycle-orchestrators/build-plugins/gradle-convention-plugins.md) — Encapsulates common build logic into reusable plugins shared across all project modules. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))
- [Code Quality and Analysis](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis.md) — Runs linting, static analysis, and formatting verification through automated tasks and CI pipelines. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))
- [Gradle Convention Plugins](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/build-task-automation/build-automation/android-build-standards/gradle-convention-plugins.md) — Provides reusable Gradle convention plugins that standardize build configuration across multiple modules.
- [Dependency Version Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-removers/dependency-version-managers.md) — Centralizes all library and plugin versions in a single TOML file for consistent dependency management.

### Software Engineering & Architecture

- [Multi-Module Architectures](https://awesome-repositories.com/f/software-engineering-architecture/feature-based-project-structures/android-architectures/multi-module-architectures.md) — Demonstrates a multi-module Android project structured into feature modules with Clean Architecture and MVVM patterns.
- [Functionality Module Organizations](https://awesome-repositories.com/f/software-engineering-architecture/functionality-module-organizations.md) — Organizes the application into independent, reusable modules that each contain their own architecture layers. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))
- [Modular Feature Architectures](https://awesome-repositories.com/f/software-engineering-architecture/modular-feature-architectures.md) — Organizes the app into independent feature modules, each with its own presentation, domain, and data layers.

### Testing & Quality Assurance

- [Static Code Analysis](https://awesome-repositories.com/f/testing-quality-assurance/static-code-analysis.md) — Integrates linting, formatting, and code quality checks directly into the build pipeline, failing on violations.

### Web Development

- [MVVM with Reactive State](https://awesome-repositories.com/f/web-development/server-side-frameworks/kotlin-frameworks/coroutine-frameworks/mvvm-with-reactive-state.md) — Binds UI components to ViewModels that expose state as Kotlin Flow streams, with coroutines managing async operations.

### DevOps & Infrastructure

- [Dependency Versioning](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/dependency-versioning.md) — Centralizes all third-party library and plugin versions in a single configuration file for consistent project-wide use. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))
- [Gradle Version Catalogs](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/dependency-versioning/gradle-version-catalogs.md) — Centralizes dependency management using a Gradle version catalog for consistent library and plugin versions.

### Graphics & Multimedia

- [Music Album Browsers](https://awesome-repositories.com/f/graphics-multimedia/media-album-organization/filter-based-album-creators/music-album-browsers.md) — Displays a list of music albums and filters them by name through a search interface. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))

### Operating Systems & Systems Programming

- [Wallpaper-Based Theming](https://awesome-repositories.com/f/operating-systems-systems-programming/legacy-android-ui-support/android-version-range-support/wallpaper-based-theming.md) — Adapts the app's color scheme to match the device wallpaper on supported Android OS versions.

### User Interface & Experience

- [Album Detail Views](https://awesome-repositories.com/f/user-interface-experience/artist-and-album-browsers/album-detail-views.md) — Shows detailed information for a selected album, including its full track listing. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))
- [Wallpaper Color Extractors](https://awesome-repositories.com/f/user-interface-experience/color-themes/wallpaper-color-extractors.md) — Reads the device wallpaper's dominant colors at runtime and applies them as a dynamic color scheme using Material You APIs.
- [Dynamic Theming](https://awesome-repositories.com/f/user-interface-experience/dynamic-theming.md) — Adapts the app's color scheme to match the device wallpaper on supported operating system versions. ([source](https://cdn.jsdelivr.net/gh/igorwojda/android-showcase@main/README.md))
