Skip to content

Architecture

This section covers Android application architecture: responsibility boundaries, state ownership, unidirectional data flow, MV* patterns, modularization, and incremental change in legacy systems.

For a practical learning path, start with architecture basics and UI state. Then compare MV* patterns as alternative ways to organize presentation logic. Study multi-module architecture when the codebase and team need clearer boundaries, and use the legacy section when changing an existing system safely.

Design and state

  • Architecture Basics - layers, dependency direction, repositories, optional domain logic, unidirectional data flow, and sources of truth.
  • UI State Architecture - state ownership, immutable UI models, events, effects, lifecycle boundaries, and state restoration.
  • MV* Patterns - MVC, MVP, MVVM, and MVI responsibilities, reducers, effects, and pragmatic pattern selection.

Scale and change

  • Multi-module Architecture - module boundaries, public APIs, dependency rules, Gradle configurations, and measurement-driven modularization.
  • Legacy & Refactoring - behavior-preserving changes, safety checks, incremental migration, lifecycle risks, and replacing legacy UI or reactive code.