Claude Code skill for building modern Android apps following best practices.
npx skills add https://github.com/dpconde/claude-android-skill --skill android-developmentInstallez cette compétence avec la CLI et commencez à utiliser le flux de travail SKILL.md dans votre espace de travail.
A production-ready skill that enables Claude Code to build Android applications following Google's official architecture guidance and best practices from the NowInAndroid reference app.
This skill provides Claude with comprehensive knowledge of modern Android development patterns, including:
Clone this repository into your Claude Code skills directory:
git clone https://github.com/dpconde/claude-android-skill.git
Claude Code will automatically detect and load the skill when you work on Android projects.
The skill automatically activates when you request Android-related tasks. Simply ask Claude to:
Claude will follow the patterns and best practices defined in this skill.
claude-android-skill/
├── SKILL.md # Main skill definition and quick reference
├── references/ # Detailed documentation
│ ├── architecture.md # UI, Domain, Data layers patterns
│ ├── compose-patterns.md # Jetpack Compose best practices
│ ├── gradle-setup.md # Build configuration & convention plugins
│ ├── modularization.md # Multi-module project structure
│ └── testing.md # Testing strategies and patterns
├── assets/
│ └── templates/ # Project templates
│ ├── libs.versions.toml.template
│ └── settings.gradle.kts.template
└── scripts/
└── generate_feature.py # Feature module generator script
This skill teaches Claude to follow these key Android development principles:
| Topic | File | Description |
|---|---|---|
| Architecture | architecture.md | MVVM pattern, layers, repositories, use cases |
| Compose UI | compose-patterns.md | Screens, state hoisting, side effects, theming |
| Build Setup | gradle-setup.md | Convention plugins, version catalogs, configuration |
| Modularization | modularization.md | Module types, dependencies, feature structure |
| Testing | testing.md | Unit tests, UI tests, test doubles, strategies |
┌─────────────────────────────────────────┐
│ UI Layer │
│ (Compose Screens + ViewModels) │
├─────────────────────────────────────────┤
│ Domain Layer │
│ (Use Cases - optional, for reuse) │
├─────────────────────────────────────────┤
│ Data Layer │
│ (Repositories + DataSources) │
└─────────────────────────────────────────┘
app/ # Application module
feature/
├── featurename/
│ ├── api/ # Public navigation contracts
│ └── impl/ # Internal implementation
core/
├── data/ # Repositories
├── database/ # Room DAOs & entities
├── network/ # Retrofit & API models
├── model/ # Domain models
├── ui/ # Reusable components
├── designsystem/ # Theme & design tokens
└── testing/ # Test utilities
The skill includes a Python script to generate feature modules:
python scripts/generate_feature.py settings \
--package com.example.app \
--path /path/to/project
This creates a complete feature module with:
Pre-configured templates for common Android project files:
libs.versions.toml.template - Gradle version catalogsettings.gradle.kts.template - Project settings@HiltViewModel
class MyFeatureViewModel @Inject constructor(
private val repository: MyRepository,
) : ViewModel() {
val uiState: StateFlow<MyFeatureUiState> = repository
.getData()
.map { MyFeatureUiState.Success(it) }
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(5_000),
initialValue = MyFeatureUiState.Loading,
)
}
@Composable
internal fun MyFeatureRoute(
viewModel: MyFeatureViewModel = hiltViewModel(),
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
MyFeatureScreen(uiState = uiState)
}
interface MyRepository {
fun getData(): Flow<List<MyModel>>
}
internal class OfflineFirstMyRepository @Inject constructor(
private val dao: MyDao,
private val api: MyNetworkApi,
) : MyRepository {
override fun getData(): Flow<List<MyModel>> =
dao.getAll().map { it.toModel() }
}
This skill configures projects with:
This project is licensed under the MIT License - see the LICENSE file for details.
Based on patterns and practices from: