android-development
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 t
By dpconde · 643 installs
npx skills add dpconde/claude-android-skill --skill android-development
Source repository · Upstream listing
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](references/modularization.md)
Architecture layers (UI, Domain, Data) [architecture.md](references/architecture.md)
Jetpack Compose patterns [compose patterns.md](references/compose patterns.md)
Gradle & build configuration [gradle setup.md](references/gradle setup.md)
Testing approach [testing.md](references/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
Module Types
Creating a New Feature
1. Create feature:myfeature:api module with navigation key
2. Create feature:myfeature:impl module with:
MyFeatureScreen.kt Composable UI
MyFeatureViewModel.kt State holder
MyFeatureUiState.kt Sealed interface for states
MyFeatureNavigation.kt Navigation setup
MyFeatureModule.kt Hilt DI module
Standard File Patterns
ViewModel Pattern
UiState Pattern
Screen Pattern
Repository Pattern
Key Dependencies
Build Configuration
Use convention plugins in build logic/ for consistent configuration:
AndroidApplicationConventionPlugin App modules
AndroidLibraryConventionPlugin Library modules
AndroidFeatureConventionPlugin Feature modules
AndroidComposeConventionPlugin Compose setup
AndroidHiltConventionPlugin Hilt setup
See [gradle setup.md](references/gradle setup.md) for complete build configuration.