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.
$ npx -y skills add dpconde/claude-android-skill --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
What's inside
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:
.gitignore
assets/
templates/
libs.versions.toml.template
settings.gradle.kts.template
LICENSE
README.md
references/
architecture.md
compose-patterns.md
gradle-setup.md
modularization.md
testing.md
scripts/
generate_feature.py
SKILL.mdFAQ
claude-android-skill is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes claude-android-skill. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.