What problem does it solve?
It solves the common Android app issue of tangled data, inconsistent error handling, and leaky abstractions between data, domain, and presentation layers by providing a repeatable data-layer architecture for repositories, DTOs, mappers, Room, and networking.
Core Features & Use Cases
- Defines data source vs repository boundaries so offline-first logic stays in the data layer while domain contracts remain pure.
- Establishes a consistent DTO → domain model → Room/Retrofit mapping approach to prevent domain/persistence/network coupling.
- Standardizes typed error handling using Result<T, E> and DataError (plus android-typed-errors helpers) across Room, Retrofit, and token storage.
- Provides practical networking + persistence wiring patterns including Hilt provisioning for Moshi/OkHttp/Retrofit, safe Retrofit call helpers, Room transaction rules, and DataStore token storage with refresh handling.
- Supports offline-first workflows following Room as single source of truth via Flow to ViewModels.
Quick Start
Use the android-data-architecture skill to design your feature’s data layer by defining domain interfaces, creating DTOs and mappers, implementing Room and Retrofit data sources, and assembling an offline-first repository with typed errors.