android-data-layer
Installation
SKILL.md
Android / KMP Data Layer
Error Handling
This skill uses Result<T, E>, DataError, and the extension helpers defined in the android-error-handling skill. Refer to that skill for the full Result wrapper, DataError sealed interface, and map/onSuccess/onFailure/asEmptyResult extensions.
Data Source vs Repository
- Data source — accesses a single data source (local DB, remote API, file system). Most classes in the data layer are data sources.
- Repository — combines multiple data sources (e.g., a remote API + a local DB for offline-first). Only use the term "repository" when the class genuinely coordinates multiple sources.
// Single source → data source
interface NoteLocalDataSource {
suspend fun getNotes(): Result<List<Note>, DataError.Local>
suspend fun insertNote(note: Note): EmptyResult<DataError.Local>
}