Android Persistence Standards
Priority: P0
Implementation Guidelines
Room
- Async: Return
Flow<List<T>>for queries, usesuspendfor Write/Insert. - Entities: Keep simple
@Entitydata classes. Map to Domain models in Repository. - Transactions: Use
@Transactionfor multi-table queries (Relations).
DataStore
- Usage: Replace
SharedPreferenceswithProtoDataStore(Type-safe) orPreferencesDataStore. - Scope: Inject singleton instance via Hilt.
Anti-Patterns
- No IO on Main Thread: Room handles dispatchers, but verify Flow is collected off-main.
- No @Entity in UI Layer: Map to Domain or UI models in Repository.
References
- DAO Templates