Android Development banner
dpconde dpconde

Android Development

Development community intermediate

Description

Build Android applications following Google's official architecture guidance, as demonstrated in the NowInAndroid reference app.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README


name: android-development description: Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices. Use when building Android apps with Kotlin, Jetpack Compose, MVVM architecture, Hilt dependency injection, Room database, or multi-module projects. Triggers on requests to create Android projects, screens, ViewModels, repositories, feature modules, or when asked about Android architecture patterns.

Android Development

Build Android applications following Google's official architecture guidance, as demonstrated in the NowInAndroid reference app.

Quick Reference

Task Reference File
Project structure & modules modularization.md
Architecture layers (UI, Domain, Data) architecture.md
Jetpack Compose patterns compose-patterns.md
Gradle & build configuration gradle-setup.md
Testing approach testing.md

Workflow Decision Tree

**Creating a new project?** → Read [modularization.md](references/modularization.md) for project structure → Use templates in `assets/templates/`

**Adding a new feature?** → Create feature module with `api` and `impl` submodules → Follow patterns in [architecture.md](references/architecture.md)

**Building UI screens?** → Read [compose-patterns.md](references/compose-patterns.md) → Create Screen + ViewModel + UiState

**Setting up data layer?** → Read data layer section in [architecture.md](references/architecture.md) → Create Repository + DataSource + DAO

Core Principles

  1. Offline-first: Local database is source of truth, sync with remote
  2. Unidirectional data flow: Events flow down, data flows up
  3. Reactive streams: Use Kotlin Flow for all data exposure
  4. Modular by feature: Each feature is self-contained with clear boundaries
  5. Testable by design: Use interfaces and test doubles, no mocking libraries

Architecture Layers

┌─────────────────────────────────────────┐
│              UI Layer                    │
│  (Compose Screens + ViewModels)          │
├─────────────────────────────────────────┤
│           Domain Layer                   │
│  (Use Cases - optional, for reuse)       │
├─────────────────────────────────────────┤
│            Data Layer                    │
│  (Repositories + DataSources)            │
└─────────────────────────────────────────┘

Module Types

app/                    # App module - navigation, scaffolding
feature/
  ├── featurename/
  │   ├── api/          # Navigation keys (public)
  │   └── impl/         # Screen, ViewModel, DI (internal)
core/
  ├── data/             # Repositories
  ├── database/         # Room DAOs, entities
  ├── network/          # Retrofit, API models
  ├── model/            # Domain models (pure Kotlin)
  ├── common/           # S