A collection of Android app samples showcasing different architectural patterns and tools using a TODO app implementation.
Android Architecture Samples is a collection of sample projects that demonstrate different architectural patterns and tools for building Android applications. It provides multiple implementations of the same TODO app using various architectural approaches, helping developers understand how to structure apps for testability and maintainability. The samples showcase modern Android development practices including Jetpack Compose, reactive programming with Flow, and layered architecture.
Intermediate Android developers and beginners looking for guidance on structuring apps in a testable way, as well as advanced developers seeking quick reference for architectural patterns. It's particularly useful for developers transitioning to modern Android development tools.
Developers choose these samples because they provide practical, comparable implementations of the same app using different architectural decisions, making it easier to understand trade-offs and best practices. The samples are maintained by Google and showcase officially recommended patterns and tools for Android development.
A collection of samples to discuss and showcase different architectural tools and patterns for Android apps.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Shows the same TODO app across multiple branches, allowing developers to directly compare different architectural patterns and understand trade-offs, as emphasized in the philosophy.
Implements Jetpack Compose for UI, Kotlin Flow for reactive programming, and Hilt for dependency injection, showcasing Google's recommended tools from the README.
Includes unit, integration, and end-to-end tests with shared tests that run on emulators or devices, demonstrating a testable architecture as highlighted in the features.
Uses a data layer with repository pattern, separating concerns with Room for local storage and a fake remote source, making the app maintainable and scalable.
Admits it's not a real production app; lacks network access, authentication, and uses a fake remote data source, limiting applicability for live projects as stated in 'What is it not?'
Deliberately keeps UI simple to focus on architecture, so it doesn't help with complex UI challenges or Material Design implementations, directing users elsewhere for UI samples.
Explicitly states it's not a template, requiring developers to manually adapt the code rather than providing a quick-start scaffold, which can slow initial project setup.