20 skills · 7 categories

Claude Code skills for Android and Kotlin

Android skills for Kotlin coroutines, Jetpack Compose, app architecture that survives configuration changes, offline sync and Play Store releases. Shared mobile skills for security, accessibility and testing are listed too.

Start with these

  1. 1

    Android Architecture

    Layers, Hilt and modules that keep Android apps testable

    Claude restructures Android apps along the official layered model: ViewModels expose one StateFlow UiState, repositories make Room the source of truth and keep DTOs internal, Hilt binds interfaces through KSP, and long work moves to WorkManager instead of GlobalScope. It splits modules with a strict dependency direction and convention plugins, and backs each layer with fake-based JVM tests.

  2. 2

    Kotlin Multiplatform

    Share the logic, keep the native feel on Android and iOS

    Claude decides what belongs in commonMain and what stays native, builds the shared module with the AGP 9 Android-KMP plugin, Ktor and SQLDelight or Room KMP, and designs a Swift-facing facade with @Throws and SKIE so iOS code gets async functions and exhaustive enums. It treats Swift export as Alpha and plans adoption one slice at a time.

  3. 3

    Kotlin Idioms

    No !!, no GlobalScope, no leaked coroutines

    Claude writes Kotlin that resolves nulls at the edge, models screens and results as sealed types with exhaustive when, and launches every coroutine in a scope something owns. It picks Flow, StateFlow, SharedFlow or Channel deliberately, keeps suspend functions main-safe, rethrows CancellationException, and tests timing with virtual time instead of sleeps.

All 20 Android and Kotlin skills

Grouped by category. Each card opens the full playbook, example prompts and install commands.

Mobile 13

No. 330

Android Architecture

Layers, Hilt and modules that keep Android apps testable

Claude restructures Android apps along the official layered model: ViewModels expose one StateFlow UiState, repositories make Room the source of truth and keep DTOs internal, Hilt binds interfaces through KSP, and long work moves to WorkManager instead of GlobalScope. It splits modules with a strict dependency direction and convention plugins, and backs each layer with fake-based JVM tests.

android-architecture 223 lines
No. 339

Kotlin Multiplatform

Share the logic, keep the native feel on Android and iOS

Claude decides what belongs in commonMain and what stays native, builds the shared module with the AGP 9 Android-KMP plugin, Ktor and SQLDelight or Room KMP, and designs a Swift-facing facade with @Throws and SKIE so iOS code gets async functions and exhaustive enums. It treats Swift export as Alpha and plans adoption one slice at a time.

kotlin-multiplatform 203 lines · 2 files
No. 338

Jetpack Compose

Stateless screens, StateFlow state, no recomposition storms

Claude structures Compose screens as a route that collects one immutable UI state with collectAsStateWithLifecycle and a stateless screen that takes state and lambdas. It picks the right effect API with correct keys, applies Scaffold insets for edge-to-edge, and fixes slow lists with keys, deferred state reads and stable models, confirmed with Layout Inspector counts and compiler reports on a release build.

jetpack-compose 245 lines
No. 332

Deep Links

One https URL that opens the right screen everywhere

Claude sets up Universal Links and App Links so verified https URLs open the exact screen, with association files served without redirects, exclude rules ordered first, and the Play app signing fingerprint rather than the upload key. One URL parser serves links and push taps, signed-out users return to their target after login, and a bundled script validates both files and Apple's CDN copy.

deep-links 220 lines · 2 files
No. 340

Mobile Accessibility

Apps that work with VoiceOver, TalkBack and huge text

Claude audits and fixes native and cross-platform apps so critical flows can be completed eyes-free with VoiceOver and TalkBack. It writes concise labels, exposes roles, values and states, groups cards with custom actions, manages focus after navigation, and makes layouts reflow at the largest text sizes, using a concept-to-API map for SwiftUI, UIKit, Compose, Views, React Native and Flutter.

mobile-accessibility 196 lines · 2 files
No. 341

Mobile Biometric Auth

Face ID that guards a key, not a boolean

Claude implements biometric unlock so the prompt releases a token sealed in the Keychain or Android Keystore, with biometryCurrentSet and setInvalidatedByBiometricEnrollment so a newly added face or finger locks the secret. It maps every cancel, lockout and invalidation error to a password fallback, keeps the server issuing short-lived tokens, and flags wrappers that only return a bypassable true.

mobile-biometric-auth 224 lines
No. 342

Mobile Performance

Faster launches and smooth lists, proven on real devices

Claude treats mobile performance as measurement first: release builds on a mid-range physical device, median and p90 over repeated runs, and a profiler trace before any change. It then applies the fixes that usually matter — deferred SDK init, Baseline Profiles, image downsampling, virtualized lists with stable keys, work moved off the main thread — and adds a benchmark so the gain cannot quietly regress.

mobile-performance 178 lines
No. 343

Mobile Push Notifications

Delivered, opted-in, and opening the right screen

Claude wires push end to end: per-device tokens stored with their APNs environment, correct apns-push-type and priority headers, FCM HTTP v1 messages with string-only data, and pruning on 410 or UNREGISTERED. It designs a pre-prompt before the system permission dialog, routes taps from foreground, background and cold start, and validates every payload template with a bundled script.

mobile-push-notifications 205 lines · 2 files
No. 345

React Native with Expo

Dev builds, Expo Router and OTA updates that are safe

Claude works in Expo projects the way the toolchain expects: native libraries via npx expo install, native settings through app config and plugins instead of hand-edited ios and android folders, development builds once custom native code appears, and OTA updates only to binaries with a matching runtime version. It checks safe areas, keyboard, back handling and permissions on both platforms.

react-native-expo 223 lines
No. 331

App Store Release

Signed, reviewed and rolled out without surprises

Claude runs mobile releases like a release manager: CI-signed builds with unambiguous version and build numbers, testers on the exact binary that ships, metadata and privacy disclosures that match every SDK, and reviewer notes with demo credentials. Rollouts are phased with crash and ANR halt thresholds set in advance, and bad releases are halted and fixed forward because neither store can roll back.

app-store-release 178 lines · 2 files
No. 333

Fastlane CI

One command from commit to TestFlight and Play

Claude turns laptop releases into reproducible fastlane lanes: Gemfile-pinned fastlane, match certificates fetched read-only behind setup_ci, App Store Connect API keys instead of Apple ID sessions, build numbers derived from the store, and Play uploads that land on internal and promote with a staged rollout. A bundled checker flags committed secrets and risky lanes before CI runs them.

fastlane-ci 230 lines · 2 files
No. 334

Flutter Widgets

Small const widgets, one state owner, no overflow stripes

Claude writes Flutter UI as small const widget classes instead of helper methods, places state deliberately with setState, Riverpod 3 or Cubit, and fixes layout exceptions from the constraints model rather than by trial and error. Async code checks context.mounted after every await, native calls go through Pigeon, and jank is diagnosed in profile mode with DevTools.

flutter-widgets 219 lines
No. 344

Offline Sync

Local-first writes that never vanish or duplicate

Claude designs offline support per entity instead of bolting a cache onto API calls. Writes commit to the local database together with an outbox entry, a single worker pushes them with idempotency keys and backoff, deltas arrive by server cursor with tombstones, and each entity gets an explicit conflict rule — versioned last-writer-wins, field merges, operations or CRDTs — with failed items surfaced, never dropped.

offline-sync 189 lines · 2 files

Install

Every Android and Kotlin skill in one command

Installs into ~/.claude/skills/. Add --project after -- to install into the current repository.

curl -fsSL https://claudeskills.page/install.sh | sh -s -- android-architecture kotlin-multiplatform kotlin-idioms jetpack-compose mobile-app-security deep-links mobile-accessibility mobile-biometric-auth mobile-performance mobile-push-notifications react-native-expo mobile-ui-patterns codemods java-modern mobile-e2e-testing jvm-tuning app-store-release fastlane-ci flutter-widgets offline-sync

Android and Kotlin skills FAQ

What is the best Claude Code skill for Android and Kotlin?

Start with Android Architecture: Layers, Hilt and modules that keep Android apps testable. Then add Kotlin Multiplatform and Kotlin Idioms, which cover the next most common Android and Kotlin requests.

How do I install all 20 Android and Kotlin skills at once?

Pass every name to the installer in one command: curl -fsSL https://claudeskills.page/install.sh | sh -s -- android-architecture kotlin-multiplatform kotlin-idioms jetpack-compose mobile-app-security deep-links mobile-accessibility mobile-biometric-auth mobile-performance mobile-push-notifications react-native-expo mobile-ui-patterns codemods java-modern mobile-e2e-testing jvm-tuning app-store-release fastlane-ci flutter-widgets offline-sync. Add --project to install them into the current repository's .claude/skills/ folder so your team gets them too.

Do these Android and Kotlin skills work outside Claude Code?

Yes. Each skill uses only the portable Agent Skills frontmatter, so the same folder works on claude.ai, through the Claude API and in the Agent SDK. Skills that run bundled scripts need an environment with code execution.

esc