By rcosteira79
Guides Android and Kotlin Multiplatform development across the full stack — architecture, Compose UI, coroutines, networking, storage, DI, testing, and build optimization.
Use when writing, fixing, or refactoring Android/KMP code in Kotlin — a test-first (RED-GREEN-REFACTOR) foundation plus the Android test traps: Compose-test dispatching (StandardTestDispatcher default, the two-schedulers trap), semantics-first selectors, choosing the smallest test shape, test-clock vs wall-clock, and animation/screenshot determinism.
Use when designing or reviewing Android UI — applies Material Design 3 UX principles covering touch targets, spacing, navigation patterns, accessibility, animation timing, and platform conventions. Includes an M3 compliance audit that scores screens across 10 categories. Complements the compose skill with design-level decisions.
Use when loading images in Compose or Compose Multiplatform with Coil 3 — AsyncImage vs SubcomposeAsyncImage vs rememberAsyncImagePainter, ImageRequest configuration, placeholder/error states, performance in lists, and KMP setup with LocalPlatformContext.
Use when implementing paginated lists in Android or Compose with Paging 3 — PagingSource, Pager and PagingConfig setup, RemoteMediator for offline-first lists, LazyPagingItems and itemKey integration in LazyColumn, dynamic filters via flatMapLatest, and unit tests with TestPager and asSnapshot. Triggers include Paging 3, infinite list, infinite scroll, paginated list, LazyPagingItems, collectAsLazyPagingItems, and cachedIn.
Use when writing or changing any class, object, function, property, or constant in a multi-module Android/Kotlin project (settings.gradle(.kts) includes more than one module — :app, :core:*, :feature:*, :data, etc.). Symptoms — a top-level declaration left at Kotlin's default public visibility; an implementation class, mapper, helper, constant, or UI-state holder reachable from another module though only used within its own; reaching for public "because the caller needs it"; "should this be public or internal?".
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Android & KMP development skills for Claude Code and Copilot CLI — architecture, Compose, coroutines, flows, networking, persistence, dependency injection, testing, debugging, and Gradle.
Skills are invoked automatically based on context — working on Compose code activates the compose skill, a coroutine bug pulls in kotlin-coroutines, and so on. Each SKILL.md is plain, self-contained markdown, so the collection also works outside the plugin format.
/plugin marketplace add rcosteira79/android-skills
/plugin install android-skills@android-skills
Updates are picked up automatically when the plugin version is bumped.
Copilot CLI detects the same plugin format automatically:
copilot plugin install rcosteira79/android-skills
Copy the skill directories into your agent's skills folder:
git clone https://github.com/rcosteira79/android-skills.git
cp -r android-skills/plugins/android-skills/skills/* ~/.claude/skills/
The SKILL.md files are plain markdown, so they can be adapted to any editor that supports custom instructions.
android-dev — the baseline for Android and KMP work: house defaults (DI, async, JSON, images, networking, module boundaries), routing to the specialised skills, the greenfield MVVM state/effect UI convention, four-bucket UiState modeling, and Channel(BUFFERED) over SharedFlow(replay = 0) for one-shot effects.modularization — visibility discipline for multi-module projects: declare everything at the lowest visibility that still compiles (private → internal → public), keep DI-bound implementation classes internal behind public interfaces, and treat widening to public as a decision that requires a real cross-module consumer.android-data-layer — data-layer implementation: the layered error-propagation model (repository as the error boundary, sealed DataError, Result placement with and without a domain layer) and KMP Room setup (@ConstructedBy, BundledSQLiteDriver, per-target KSP).compose — Jetpack Compose expert guidance: state management (remember, derivedStateOf, hoisting, the unified keying rule, cross-phase back-writing), Modifier chains, lazy lists (LazyLayoutCacheWindow prefetch tuning), navigation (Nav 2 + Nav 3 guardrails), animation, side effects (LifecycleStartEffect/LifecycleResumeEffect), theming, accessibility, performance (Argument Change Reasons, the five compiler stability types, escape-hatch annotations, baseline profiles), focus/key-event navigation (D-pad/TV/ChromeOS, focus restoration, dialog focus traps, predictive-back), and a production-crash playbook with CMP equivalents.android-ux — Material Design 3 UX principles: foldable postures (tabletop, book mode), M3 contrast levels (Hct/SchemeContent), motion duration tokens and reduced motion, and an M3 compliance audit scoring screens across 10 categories with grep-based quick checks.coil-compose — image loading in Compose and CMP with Coil 3: the KMP specifics (LocalPlatformContext, SingletonImageLoader.setSafe, coil-compose vs coil-compose-core) and two lazy-list performance guardrails (never SubcomposeAsyncImage in lists; rememberAsyncImagePainter needs an explicit size).kotlin-coroutines — scope management, structured concurrency, cancellation, and exception handling, centered on scope ownership (prefer suspend fun, let the caller own the scope) and exception discipline that doesn't break cancellation.kotlin-flows — Flow traps and semantic edge cases: Channel vs SharedFlow one-shot event semantics, callback bridging (callbackFlow + awaitClose), retry attempt guards, .catch scope and the CancellationException trap, side effects outside transforms, and explicit backing fields (Kotlin 2.4+).npx claudepluginhub rcosteira79/android-skills --plugin android-skillsWrites tests for code introduced on an Android branch, driven by the branch's user story and ACs. Adheres to the project's existing conventions; never generates mock-based tests.
Skills for Kotlin, Android, JVM, and Jetpack Compose development by Chris Banes.
Compose and Compose Multiplatform expert skill — state, animations, navigation, performance, design-to-code, PR review mode, M3 motion.
Android and Kotlin development with Jetpack Compose
Bootstrap Android app development using Kotlin with Claude's guidance for mobile application architecture.
Android/Kotlin expertise. Ships the android-dev agent, android-patterns, and 37 vendored third-party skills (Compose / architecture / Gradle + 16 gplay-* Google Play Console CLI + 6 official Android team skills).
Complete Claude Code configs for mobile development - Android, iOS, and Kotlin Multiplatform