Claude Android Ninja
Drjacky/claude-android-ninja
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
$ npx skills add dpconde/claude-android-skill --skill android-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dpconde/claude-android-skill android-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "android-development" agent skill from https://github.com/dpconde/claude-android-skill/tree/main into .claude/skills/android-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dpconde/claude-android-skill --skill android-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dpconde/claude-android-skill android-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "android-development" agent skill from https://github.com/dpconde/claude-android-skill/tree/main into .agents/skills/android-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dpconde/claude-android-skill --skill android-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dpconde/claude-android-skill android-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "android-development" agent skill from https://github.com/dpconde/claude-android-skill/tree/main into .cursor/skills/android-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dpconde/claude-android-skill --skill android-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dpconde/claude-android-skill android-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "android-development" agent skill from https://github.com/dpconde/claude-android-skill/tree/main into .gemini/skills/android-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dpconde/claude-android-skill android-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dpconde/claude-android-skill --skill android-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "android-development" agent skill from https://github.com/dpconde/claude-android-skill/tree/main into .github/skills/android-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dpconde/claude-android-skill --skill android-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dpconde/claude-android-skill android-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "android-development" agent skill from https://github.com/dpconde/claude-android-skill/tree/main into .opencode/skills/android-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
android-developmentCreate production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
Android Development is an agent skill from dpconde/claude-android-skill. 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.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including scripts, reference files and assets (for example `README.md`, `references/architecture.md` and `references/compose-patterns.md`).
It sits in Mobile, covering Android development. It works with Android, Jetpack Compose, Kotlin and Model Context Protocol. The repository describes itself as: Claude Code skill for building modern Android apps following best practices. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit edfca5e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Android Development loads about 1.7k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 236 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from dpconde/claude-android-skill at commit edfca5e, republished under its MIT licence (© dpconde). 236 words, ~1,701 tokens.
.claude/skills/android-development/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.Build Android applications following Google's official architecture guidance, as demonstrated in the NowInAndroid reference app.
| 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 |
Creating a new project?
→ Read 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
Building UI screens? → Read compose-patterns.md → Create Screen + ViewModel + UiState
Setting up data layer? → Read data layer section in architecture.md → Create Repository + DataSource + DAO
┌─────────────────────────────────────────┐
│ UI Layer │
│ (Compose Screens + ViewModels) │
├─────────────────────────────────────────┤
│ Domain Layer │
│ (Use Cases - optional, for reuse) │
├─────────────────────────────────────────┤
│ Data Layer │
│ (Repositories + DataSources) │
└─────────────────────────────────────────┘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/ # Shared utilities
├── ui/ # Reusable Compose components
├── designsystem/ # Theme, icons, base components
├── datastore/ # Preferences storage
└── testing/ # Test utilitiesfeature:myfeature:api module with navigation keyfeature:myfeature:impl module with:MyFeatureScreen.kt - Composable UIMyFeatureViewModel.kt - State holderMyFeatureUiState.kt - Sealed interface for statesMyFeatureNavigation.kt - Navigation setupMyFeatureModule.kt - Hilt DI module@HiltViewModel
class MyFeatureViewModel @Inject constructor(
private val myRepository: MyRepository,
) : ViewModel() {
val uiState: StateFlow<MyFeatureUiState> = myRepository
.getData()
.map { data -> MyFeatureUiState.Success(data) }
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(5_000),
initialValue = MyFeatureUiState.Loading,
)
fun onAction(action: MyFeatureAction) {
when (action) {
is MyFeatureAction.ItemClicked -> handleItemClick(action.id)
}
}
}sealed interface MyFeatureUiState {
data object Loading : MyFeatureUiState
data class Success(val items: List<Item>) : MyFeatureUiState
data class Error(val message: String) : MyFeatureUiState
}@Composable
internal fun MyFeatureRoute(
onNavigateToDetail: (String) -> Unit,
viewModel: MyFeatureViewModel = hiltViewModel(),
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
MyFeatureScreen(
uiState = uiState,
onAction = viewModel::onAction,
onNavigateToDetail = onNavigateToDetail,
)
}
@Composable
internal fun MyFeatureScreen(
uiState: MyFeatureUiState,
onAction: (MyFeatureAction) -> Unit,
onNavigateToDetail: (String) -> Unit,
) {
when (uiState) {
is MyFeatureUiState.Loading -> LoadingIndicator()
is MyFeatureUiState.Success -> ContentList(uiState.items, onAction)
is MyFeatureUiState.Error -> ErrorMessage(uiState.message)
}
}interface MyRepository {
fun getData(): Flow<List<MyModel>>
suspend fun updateItem(id: String, data: MyModel)
}
internal class OfflineFirstMyRepository @Inject constructor(
private val localDataSource: MyDao,
private val networkDataSource: MyNetworkApi,
) : MyRepository {
override fun getData(): Flow<List<MyModel>> =
localDataSource.getAll().map { entities ->
entities.map { it.toModel() }
}
override suspend fun updateItem(id: String, data: MyModel) {
localDataSource.upsert(data.toEntity())
}
}// Gradle version catalog (libs.versions.toml)
[versions]
kotlin = "1.9.x"
compose-bom = "2024.x.x"
hilt = "2.48"
room = "2.6.x"
coroutines = "1.7.x"
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }Use convention plugins in build-logic/ for consistent configuration:
AndroidApplicationConventionPlugin - App modulesAndroidLibraryConventionPlugin - Library modules AndroidFeatureConventionPlugin - Feature modulesAndroidComposeConventionPlugin - Compose setupAndroidHiltConventionPlugin - Hilt setupSee gradle-setup.md for complete build configuration.
© dpconde, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (scripts, references, assets) in the repository root of dpconde/claude-android-skill.
Open the folder on GitHubat commit edfca5e
Android Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Android Development this skilldpconde/claude-android-skill | 336 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Claude Android NinjaDrjacky/claude-android-ninja | 124 | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Flake Triageyschimke/compose-ai-tools | 117 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Composewebview Developmentparkwoocheol/compose-webview | 103 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Update Libs VersionsCosminMihuMDC/KtorMonitor | 254 | — | ~800 | Automated safety check: Pass | Apache-2.0 | |
| Render Evidenceyschimke/compose-ai-tools | 117 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 |
Drjacky/claude-android-ninja
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
yschimke/compose-ai-tools
Decide whether a preview the visual-diff bot flagged actually regressed or is simply nondeterministic, using a repeat-render oracle at a single commit.
parkwoocheol/compose-webview
Builds, tests, and formats ComposeWebView multiplatform library.
CosminMihuMDC/KtorMonitor
Update dependency versions in gradle/libs.versions.toml by querying Maven repositories.
yschimke/compose-ai-tools
Capture the before/after rendered PNGs a UI-affecting PR in this repository needs as visual evidence, including bringing an Android SDK up in a fresh sandbox.
CoWork-OS/CoWork-OS
Android/Kotlin development: Jetpack Compose, Room database, Gradle builds, emulator management, and Play Store submission.
Categories
Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices. Android Development is an agent skill from dpconde/claude-android-skill. Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
Android Development fits situations like: building Android apps with Kotlin; jetpack Compose; MVVM architecture; hilt dependency injection.
Run `npx skills add dpconde/claude-android-skill --skill android-development -a claude-code`. Or copy the skill folder (the dpconde/claude-android-skill repository) into .claude/skills/android-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dpconde/claude-android-skill --skill android-development -a codex`. Or copy the skill folder (the dpconde/claude-android-skill repository) into .agents/skills/android-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dpconde/claude-android-skill --skill android-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/android-development, .gemini/skills/android-development, .github/skills/android-development and .opencode/skills/android-development in your project.
Going by SKILL.md and its folder, Android Development needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Android Development is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Android Development: Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars), Flake Triage (yschimke/compose-ai-tools, 117 stars), Composewebview Development (parkwoocheol/compose-webview, 103 stars) and Update Libs Versions (CosminMihuMDC/KtorMonitor, 254 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dpconde (a GitHub user) maintains it in dpconde/claude-android-skill, which has 336 GitHub stars. The repository was last updated on December 7, 2025.
Source: dpconde/claude-android-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.