Android Native Dev
HHU3637kr/skills
A skill your agent uses when the user is developing, reviewing, or troubleshooting a native Android app, especially Kotlin/Compose, Material Design 3, Gradle project setup, Android accessibility…
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
$ npx skills add Drjacky/claude-android-ninja --skill claude-android-ninja -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Drjacky/claude-android-ninja claude-android-ninja --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 "claude-android-ninja" agent skill from https://github.com/Drjacky/claude-android-ninja/tree/master into .claude/skills/claude-android-ninja/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-android-ninja", 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 Drjacky/claude-android-ninja --skill claude-android-ninja -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Drjacky/claude-android-ninja claude-android-ninja --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "claude-android-ninja" agent skill from https://github.com/Drjacky/claude-android-ninja/tree/master into .agents/skills/claude-android-ninja/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-android-ninja", 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 Drjacky/claude-android-ninja --skill claude-android-ninja -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Drjacky/claude-android-ninja claude-android-ninja --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 "claude-android-ninja" agent skill from https://github.com/Drjacky/claude-android-ninja/tree/master into .cursor/skills/claude-android-ninja/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-android-ninja", 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 Drjacky/claude-android-ninja --skill claude-android-ninja -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Drjacky/claude-android-ninja claude-android-ninja --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 "claude-android-ninja" agent skill from https://github.com/Drjacky/claude-android-ninja/tree/master into .gemini/skills/claude-android-ninja/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-android-ninja", 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 Drjacky/claude-android-ninja claude-android-ninjaInstalls 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 Drjacky/claude-android-ninja --skill claude-android-ninja -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 "claude-android-ninja" agent skill from https://github.com/Drjacky/claude-android-ninja/tree/master into .github/skills/claude-android-ninja/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-android-ninja", 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 Drjacky/claude-android-ninja --skill claude-android-ninja -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Drjacky/claude-android-ninja claude-android-ninja --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 "claude-android-ninja" agent skill from https://github.com/Drjacky/claude-android-ninja/tree/master into .opencode/skills/claude-android-ninja/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-android-ninja", 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.
claude-android-ninjaBuild and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
Claude Android Ninja is an agent skill from 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. Use for new projects or modules, Compose screens and ViewModels, Room 3 and RemoteMediator, API 37 / targetSdk migration, Play Integrity client wiring, offline-first sync, and version-catalog alignment. Not for iOS, Flutter, React Native, KMP-only shared code without an Android app module, or backend-only APIs with no Android client.
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 104 other files, including scripts, reference files and assets (for example `.github/FUNDING.yml`, `.github/ISSUE_TEMPLATE/bug_report.md` and `.github/ISSUE_TEMPLATE/feature_request.md`). Compatibility notes: JDK 17+. Android Studio with Android SDK installed. Network access for Gradle dependency downloads. Version pins in assets/templates follow the repo catalog…
It sits in Mobile, covering Android development and Cross-platform mobile apps. It works with Android, Kotlin, Jetpack Compose and Gradle. The repository describes itself as: Agent Skill for Android development with Kotlin and Jetpack Compose, covering modular architecture, Navigation3, Gradle conventions, dependency management, and testing best… The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5d40f86. 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/ (Shell and Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
adbFrom 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.
JDK 17+. Android Studio with Android SDK installed. Network access for Gradle dependency downloads. Version pins in assets/templates follow the repo catalog; align AGP/Kotlin/KSP with the user project before applying upgrades.
From compatibility in the SKILL.md frontmatter.
Claude Android Ninja loads about 5.2k tokens when it runs, and up to ~381k if it reads all its reference files. Until then it costs about 129 tokens; SKILL.md has 858 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 Drjacky/claude-android-ninja at commit 5d40f86, republished under its Apache-2.0 licence (© Drjacky). 858 words, ~5,195 tokens.
.claude/skills/claude-android-ninja/SKILL.md (or your agent's skills folder). This skill also uses 100 other files; get the full folder from GitHub.Context ladder (smaller load first; full references stay complete):
SKILL.md) - routing, stop rules, examples.references/*-quick.md when listed below - required/forbidden + section links (~40 lines).references/*.md - code samples and checklists only.Forbidden: load INDEX-sections.md or an entire multi-thousand-line reference when one section or a quick file covers the task.
Route tasks through the Quick Reference table. When no row matches, or the task needs greenfield bootstrap: workflows.md. Full file list: INDEX.md.
Required:
settings.gradle.kts, gradle/libs.versions.toml, and the app module build file before copying from assets/ - dependencies.md, modularization.md. Stack migrations: migration.md../gradlew help then :app:assembleDebug (use the real app module name) - gradle-setup.md.Outside-repo stop rules (do not substitute repo edits): Play upload, tracks, rollout, versionCode - android-ci-cd.md; Play Integrity prerequisites (Console/Cloud setup) - android-security-quick.md; production adb install / pm clear - testing.md.
Rare or niche topics not listed here are in INDEX.md (complete file list).
| Task | Reference |
|---|---|
| Task not in table, greenfield bootstrap, multi-topic setup | workflows.md |
| Optional Android CLI project discovery, Studio checks, preview, and test-device inspection | workflows.md ("Using the optional Android CLI for agent workflows?") |
| Full index of all reference files | INDEX.md |
| Version catalog, pins, alpha policy, brownfield alignment | dependencies.md |
| Adding or updating dependencies (catalog aliases) | dependencies.md |
| Multi-module dependencies | dependencies.md |
| Project structure and modules | modularization.md |
| MVVM layers, repositories, DI | architecture.md |
| Retrofit / OkHttp, NetworkModule, nullable DTOs, AuthInterceptor | architecture.md; dependencies.md |
| DataStore (preferences, typed), Room vs DataStore rules | architecture.md |
Code formatting (Spotless, spotlessCheck / spotlessApply) | assets/convention/QUICK_REFERENCE.md; gradle-setup.md |
| Compose patterns, motion, animation, modifiers, stability | compose-patterns-quick.md |
Paging 3 + Room + network (RemoteMediator, remote keys, initialize) | compose-patterns.md |
| Accessibility, TalkBack, label copy, live regions, Espresso a11y | android-accessibility-quick.md |
| Notifications, foreground services, MediaStyle, PiP, sharesheet | android-notifications.md |
| Media: API 37 background playback, Media3, picking, FileProvider, sharesheet | android-media.md |
| Data sync and offline-first patterns | android-data-sync-quick.md |
| Material 3 theming, spacing tokens, dynamic colors | android-theming-quick.md |
| Navigation3, deep links, App Links, adaptive layouts | android-navigation-quick.md |
| Kotlin patterns, View lifecycle interop | kotlin-patterns.md |
Coroutine patterns (StateFlow, Channel, callbackFlow) | coroutines-patterns-quick.md |
| Gradle, product flavors, BuildConfig, build performance, R8 | gradle-setup.md |
| Code quality (Detekt convention plugin, CI) | code-quality.md |
| Testing approach (unit, instrumented, Compose UI) | testing-quick.md |
| Internationalization and localization | android-i18n.md |
| Runtime permissions, Photo Picker, API 37 location privacy | android-permissions.md |
| Kotlin delegation patterns | kotlin-delegation.md |
| Crash reporting (Firebase / Sentry interfaces, PII scrubbing) | crashlytics.md |
| Design patterns (GoF-style, Room FTS) | design-patterns-quick.md |
| Performance, Play Vitals, startup, recomposition, jank, APA, Perfetto | android-performance.md |
| Android 17 QPR2 memory budgets on constrained devices (optional) | android-performance.md |
| Debugging, Logcat, ANR, Gradle errors, R8 mapping, memory leaks | android-debugging.md |
| Migrations (XML, RxJava, Navigation, Compose, Room 2→3, API 37, 16 KB native, Compose-XML interop) | migration.md; 16 KB page size; Compose-XML interop |
Greenfield Android app with convention plugins
User goal: new repo matching the skill stack.
Actions: copy assets/settings.gradle.kts.template, assets/libs.versions.toml.template, assets/convention/ into build-logic/ per assets/convention/QUICK_REFERENCE.md; wire includeBuild("build-logic"); read modularization.md and gradle-setup.md.
Result: root + app + core modules with version catalog and convention plugins applied.
New feature screen (Compose + ViewModel)
User goal: one new flow in a feature module.
Actions: modularization.md for module naming and dependency direction; compose-patterns-quick.md for Screen, state, effects; kotlin-patterns.md + coroutines-patterns-quick.md for StateFlow / events; architecture.md for domain vs data boundaries.
Result: feature module with Screen composable, ViewModel, UiState, and DI aligned to existing graphs.
Offline-first list with Room 3 and remote API
User goal: cached list + network refresh.
Actions: compose-patterns.md for Paging 3 + RemoteMediator; architecture.md for repository placement; Room 3 + SQLiteDriver per workflows.md (Working with databases) and migration.md if upgrading.
Result: single source of truth in Room, UI driven by PagingData or equivalent pattern from the guide.
Target SDK / compile SDK bump (e.g. API 37)
User goal: migrate toolchain and platform requirements.
Actions: walk migration.md; pin AGP/Kotlin/KSP using gradle-setup.md and dependencies.md; cross-check edge-to-edge, media, security per workflows.md (Migrating to target SDK 37).
Result: compileSdk / targetSdk raised with manifest, Gradle, and feature code adjusted per the migration doc.
| Symptom | Likely cause | Fix |
|---|---|---|
| Gradle sync fails, plugin not found, or version catalog errors | Missing google() / mavenCentral(), wrong plugin id, or catalog alias drift | gradle-setup.md; align with assets/libs.versions.toml.template when bootstrapping |
| KSP errors on Room, or Room 3 builder rejects missing driver | Room 3 (template 3.0.3) expects setDriver(BundledSQLiteDriver()) (or project equivalent) | migration.md; modularization.md; architecture.md |
Unresolved @TypeConverter, or a DAO return type is rejected | Room 3 renamed it to @ColumnTypeConverter; non-Flow/suspend return types need @DaoReturnTypeConverters | migration.md |
Release-only crash while the class is listed in seeds.txt | AGP 9 strictFullModeForKeepRules: -keep class A no longer keeps its constructor | android-debugging.md; gradle-setup.md |
| Gradle sync fails right after bumping Compose, nav3, or androidx.hilt | Those libraries compile against compileSdk 37 and require AGP >= 9.2.0 | migration.md; gradle-setup.md |
| LAN device discovery or a local HTTP call silently fails at target 37 | ACCESS_LOCAL_NETWORK is required, or use the permissionless NsdManager picker | android-permissions.md; migration.md |
| Background audio is silent with no exception | API 37 audio hardening - no MediaSession, or no mediaPlayback FGS | android-media.md |
| Compose runtime warnings about unstable / skippable recompositions | Unstable parameter types or state held incorrectly | compose-patterns-quick.md; android-performance.md; kotlin-patterns.md |
Release build crashes, ClassNotFoundException, or missing R8 rules | Shrinking removed reflective or JNI entry points | android-debugging.md; gradle-setup.md |
| ANR or jank claims without evidence | Main-thread or measurement assumptions | android-performance.md or Perfetto before architecture changes |
© Drjacky, Apache-2.0. 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 100 other files (scripts, references, assets) in the repository root of Drjacky/claude-android-ninja.
Open the folder on GitHubat commit 5d40f86
Claude Android Ninja 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 |
|---|---|---|---|---|---|---|
| Claude Android Ninja this skillDrjacky/claude-android-ninja | 124 | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Android Native DevHHU3637kr/skills | 145 | — | ~5.6k | Automated safety check: Pass | MIT | |
| Expo Brownfield Integrationmweinbach/agent-coworker | 156 | 2 repos | ~900 | Automated safety check: Notes | Custom licence | |
| Android Audio E2Ehyochan/react-native-nitro-sound | 961 | — | ~814 | Automated safety check: Pass | MIT | |
| Clerk Androidgeekskai/blog | 103 | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Upgrade React NativeShopify/flash-list | 7.2k | — | ~1.9k | Automated safety check: Pass | MIT |
HHU3637kr/skills
A skill your agent uses when the user is developing, reviewing, or troubleshooting a native Android app, especially Kotlin/Compose, Material Design 3, Gradle project setup, Android accessibility…
mweinbach/agent-coworker
Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.
hyochan/react-native-nitro-sound
Build and run device-backed Android end-to-end checks for react-native-nitro-sound permissions, recording, playback, listeners, pause/resume, seek, speed, audio focus, lifecycle behavior, and rapid…
geekskai/blog
Implement Clerk authentication for native Android apps using Kotlin and Jetpack Compose with clerk-android source-guided patterns.
Shopify/flash-list
Upgrade the React Native fixture app to a new version. An agent skill from Shopify/flash-list.
telagod/code-abyss
Mobile development knowledge reference covering iOS (SwiftUI), Android (Jetpack Compose), React Native, and Flutter.
Categories
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle. Claude Android Ninja is an agent skill from 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.
Claude Android Ninja fits situations like: compose screens and ViewModels; room 3 and RemoteMediator; API 37 / targetSdk migration; play Integrity client wiring.
Run `npx skills add Drjacky/claude-android-ninja --skill claude-android-ninja -a claude-code`. Or copy the skill folder (the Drjacky/claude-android-ninja repository) into .claude/skills/claude-android-ninja in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Drjacky/claude-android-ninja --skill claude-android-ninja -a codex`. Or copy the skill folder (the Drjacky/claude-android-ninja repository) into .agents/skills/claude-android-ninja 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 Drjacky/claude-android-ninja --skill claude-android-ninja -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/claude-android-ninja, .gemini/skills/claude-android-ninja, .github/skills/claude-android-ninja and .opencode/skills/claude-android-ninja in your project.
Going by SKILL.md and its folder, Claude Android Ninja needs a shell and Python for the scripts in its folder and the command-line tools its instructions call (adb). Our summary lists: Python 3; A Bash shell. Compatibility (from SKILL.md): JDK 17+. Android Studio with Android SDK installed. Network access for Gradle dependency downloads. Version pins in assets/templates follow the repo catalog; align AGP/Kotlin/KSP with the user project before applying upgrades..
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.
Claude Android Ninja is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.2k tokens (SKILL.md is roughly 21k 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 376k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Claude Android Ninja: Android Native Dev (HHU3637kr/skills, 145 stars), Expo Brownfield Integration (mweinbach/agent-coworker, 156 stars), Android Audio E2E (hyochan/react-native-nitro-sound, 961 stars) and Clerk Android (geekskai/blog, 103 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Drjacky (a GitHub user) maintains it in Drjacky/claude-android-ninja, which has 124 GitHub stars. The repository was last updated on September 29, 2026.
Source: Drjacky/claude-android-ninja on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.