Modern Android App Architecture

Learn about best practices and recommended Architecture for building robust, production-quality apps.

 

Architecture Overview

Article

Understand why designing a good app Architecture matters. Learn about common architectural principles, the recommended app architecture, how to manage dependencies between components, and general best practices.

UI Layer

Article

Learn about the role of the UI layer, how to define, manage, expose, and consume UI state using the principles of Unidirectional Data Flow, and how to show in-progress operations and errors on the screen.

Data Layer

Article

Learn about the role of the Data layer, the different entities involved, the APIs to expose, threading, how to define a source of truth, the different types of data operations, how to test this layer, and examples of common tasks this layer usually performs.

Domain Layer

Article

Learn about the role of the Domain layer, why it's optional and when you should need it, how to better invoke use cases, and examples of common tasks this layer could perform.

Handling UI events

Article

Learn how to handle different types of UI events in the UI layer for events that are triggered both by the user or parts of your code. Also, learn what to do if your use case seems to be different from the ones covered in this page.

Android Architecture quiz

Test your knowledge of Android Architecture and earn your Architecture badge.