Agent skill

Android Development

by dpconde in dpconde/claude-android-skill

Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.

MITAuto-check passedMobile

Install Android Development

skills CLI
$ npx skills add dpconde/claude-android-skill --skill android-development -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dpconde/claude-android-skill android-development --agent claude-code

Project 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/

Facts

Skill name
android-development
GitHub stars
336
Token cost
~1.7k tokens
SKILL.md length
236 words
Files
12 (incl. scripts, references, assets)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.

  • Works in 5 steps: Offline-first: Local database is source… → Unidirectional data flow: Events flow… → Reactive streams: Use Kotlin Flow for… → …
  • Building Android apps with Kotlin
  • SKILL.md covers Quick Reference, Workflow Decision Tree, Core Principles and Architecture Layers, plus 5 more sections
  • Runs Python scripts from its folder

What it does

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.

When your agent uses it

  • Building Android apps with Kotlin
  • Jetpack Compose
  • MVVM architecture
  • Hilt dependency injection

Example prompts

  • “/android-development”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  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

What it can do on your machine

Read from SKILL.md and the folder at commit edfca5e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~16k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from dpconde/claude-android-skill at commit edfca5e, republished under its MIT licence (© dpconde). 236 words, ~1,701 tokens.

Download SKILL.mdSave it as .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.
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

TaskReference File
Project structure & modulesmodularization.md
Architecture layers (UI, Domain, Data)architecture.md
Jetpack Compose patternscompose-patterns.md
Gradle & build configurationgradle-setup.md
Testing approachtesting.md

Workflow Decision Tree

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

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/           # Shared utilities
  ├── ui/               # Reusable Compose components
  ├── designsystem/     # Theme, icons, base components
  ├── datastore/        # Preferences storage
  └── testing/          # Test utilities

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
kotlin
@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)
        }
    }
}
UiState Pattern
kotlin
sealed interface MyFeatureUiState {
    data object Loading : MyFeatureUiState
    data class Success(val items: List<Item>) : MyFeatureUiState
    data class Error(val message: String) : MyFeatureUiState
}
Screen Pattern
kotlin
@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)
    }
}
Repository Pattern
kotlin
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())
    }
}

Key Dependencies

kotlin
// 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" }

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 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

Files

SKILL.md and 11 other files (scripts, references, assets) in the repository root of dpconde/claude-android-skill.

  • SKILL.md
  • .gitignore
  • LICENSE
  • README.md
  • assets/templates/libs.versions.toml.template
  • assets/templates/settings.gradle.kts.template
  • references/architecture.md
  • references/compose-patterns.md
  • references/gradle-setup.md
  • references/modularization.md
  • references/testing.md
  • scripts/generate_feature.py

Open the folder on GitHubat commit edfca5e

Compare with similar skills

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.

Android Development compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Android Development this skilldpconde/claude-android-skill336—~1.7kAutomated safety check: PassMIT
Claude Android NinjaDrjacky/claude-android-ninja124—~5.2kAutomated safety check: PassApache-2.0
Flake Triageyschimke/compose-ai-tools117—~1.5kAutomated safety check: PassApache-2.0
Composewebview Developmentparkwoocheol/compose-webview103—~1.3kAutomated safety check: PassMIT
Update Libs VersionsCosminMihuMDC/KtorMonitor254—~800Automated safety check: PassApache-2.0
Render Evidenceyschimke/compose-ai-tools117—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • 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.

    124 GitHub stars~5.2k tokensUpdated 8 days ago
    MobileAuto-check passed
  • Flake Triage

    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.

    117 GitHub stars~1.5k tokensUpdated yesterday
    MobileAuto-check passed
  • Composewebview Development

    parkwoocheol/compose-webview

    Builds, tests, and formats ComposeWebView multiplatform library.

    103 GitHub stars~1.3k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Update Libs Versions

    CosminMihuMDC/KtorMonitor

    Update dependency versions in gradle/libs.versions.toml by querying Maven repositories.

    254 GitHub stars~800 tokensUpdated 24 days ago
    MobileAuto-check passed
  • Render Evidence

    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.

    117 GitHub stars~1.4k tokensUpdated yesterday
    MobileAuto-check passed
  • Android Development

    CoWork-OS/CoWork-OS

    Android/Kotlin development: Jetpack Compose, Room database, Gradle builds, emulator management, and Play Store submission.

    473 GitHub stars~459 tokensUpdated today
    MobileAuto-check passed

Categories

Questions about Android Development

What does Android Development do?

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.

When should I use Android Development?

Android Development fits situations like: building Android apps with Kotlin; jetpack Compose; MVVM architecture; hilt dependency injection.

How do I install Android Development in Claude Code?

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.

How do I install Android Development in Codex?

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.

Can I use Android Development in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Android Development need to run?

Going by SKILL.md and its folder, Android Development needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Android Development access the network?

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.

Is Android Development safe to install?

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.

What licence does Android Development use?

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.

How many tokens does Android Development use?

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.

What are the alternatives to Android Development?

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.

Who maintains Android Development?

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.