Android data layer
Skill ComeOnOliver/skillshub/skills/new-silvermoon/awesome-android-agent-skills/android-data-layer
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.From the repository description
npx -y skills add ComeOnOliver/skillshub --skill android-data-layerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.6 KB, 399 tokens by cl100k_base, as published. Nobody here has run it
Android Data Layer & Offline-First
Instructions
The Data Layer coordinates data from multiple sources.
1. Repository Pattern
- Role: Single Source of Truth (SSOT).
- Logic: The repository decides whether to return cached data or fetch fresh data.
- Implementation:
class NewsRepository @Inject constructor( private val newsDao: NewsDao, private val newsApi: NewsApi ) { // Expose data from Local DB as the source of truth val newsStream: Flow<List<News>> = newsDao.getAllNews() // Sync operation suspend fun refreshNews() { val remoteNews = newsApi.fetchLatest() newsDao.insertAll(remoteNews) } }
2. Local Persistence (Room)
- Usage: Primary cache and offline storage.
- Entities: Define
@Entitydata classes. - DAOs: Return
Flow<T>for observable data.
3. Remote Data (Retrofit)
- Usage: Fetching data from backend.
- Response: Use
suspendfunctions in interfaces. - Error Handling: Wrap network calls in
try-catchblocks or aResultwrapper to handle exceptions (NoInternet, 404, etc.) gracefully.
4. Synchronization
- Read: "Stale-While-Revalidate". Show local data immediately, trigger a background refresh.
- Write: "Outbox Pattern" (Advanced). Save local change immediately, mark as "unsynced", use
WorkManagerto push changes to server.
5. Dependency Injection
- Bind Repository interfaces to implementations in a Hilt Module.
@Binds abstract fun bindNewsRepository(impl: OfflineFirstNewsRepository): NewsRepository
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.