Drjacky

android-kotlin-compose

Create production-quality Android applications following Google's official Android architecture guidance with Kotlin, Jetpack Compose, MVVM architecture, Hilt dependency injection, Room database, and multi-module architecture. Triggers on requests to create Android projects, modules, screens, ViewModels, repositories, or when asked about Android architecture patterns and best practices.

Drjacky 97 13 Updated 5mo ago
GitHub

Install

npx skillscat add drjacky/claude-android-ninja

Install via the SkillsCat registry.

SKILL.md

Android Kotlin Compose Development

Create production-quality Android applications following Google's official architecture guidance and best practices.
Use when building Android apps with Kotlin, Jetpack Compose, MVVM architecture, Hilt dependency injection, Room database, or Android multi-module projects.
Triggers on requests to create Android projects, screens, ViewModels, repositories, feature modules, or when asked about Android architecture patterns.

Quick Reference

Task Reference File
Project structure & modules modularization.md
Architecture layers (Presentation, Domain, Data, UI) architecture.md
Jetpack Compose patterns compose-patterns.md
Accessibility & TalkBack support android-accessibility.md
Notifications & foreground services android-notifications.md
Data sync & offline-first patterns android-data-sync.md
Material 3 theming & dynamic colors android-theming.md
Kotlin best practices kotlin-patterns.md
Coroutines best practices coroutines-patterns.md
Gradle & build configuration gradle-setup.md
Testing approach testing.md
Internationalization & localization android-i18n.md
Icons, graphics, and custom drawing android-graphics.md
Runtime permissions android-permissions.md
Kotlin delegation patterns kotlin-delegation.md
Crash reporting crashlytics.md
StrictMode guardrails android-strictmode.md
Multi-module dependencies dependencies.md
Code quality (Detekt) code-quality.md
Code coverage (JaCoCo) android-code-coverage.md
Security (encryption, biometrics, pinning) android-security.md
Design patterns design-patterns.md
Android performance benchmarking android-performance.md

Workflow Decision Tree

Creating a new project?
→ Start with templates/settings.gradle.kts.template for settings and module includes
→ Start with templates/libs.versions.toml.template for the version catalog
→ Copy all files from templates/convention/ to build-logic/convention/src/main/kotlin/
→ Create build-logic/settings.gradle.kts (see templates/convention/QUICK_REFERENCE.md)
→ Add includeBuild("build-logic") to root settings.gradle.kts
→ Add plugin entries to gradle/libs.versions.toml (see templates/convention/QUICK_REFERENCE.md)
→ Copy templates/proguard-rules.pro.template to app/proguard-rules.pro
→ Read modularization.md for structure and module types
→ Use gradle-setup.md for build files and build logic

Configuring Gradle/build files?
→ Use gradle-setup.md for module build.gradle.kts patterns
→ Copy convention plugins from templates/convention/ to build-logic/ in your project
→ See templates/convention/QUICK_REFERENCE.md for setup instructions and examples
→ Copy templates/proguard-rules.pro.template to app/proguard-rules.pro for R8 rules

Setting up code quality / Detekt?
→ Use code-quality.md for Detekt convention plugin setup
→ Start from templates/detekt.yml.template for rules and enable Compose rules

Adding or updating dependencies?
→ Follow dependencies.md
→ Update templates/libs.versions.toml.template if the dependency is missing

Adding a new feature/module?
→ Follow module naming in modularization.md
→ Implement Presentation in the feature module
→ Follow dependency flow: Feature → Core/Domain → Core/Data

Building UI screens/components?
→ Read compose-patterns.md
→ Use android-theming.md for Material 3 colors, typography, and shapes
Always align Kotlin code with kotlin-patterns.md
→ Create Screen + ViewModel + UiState in the feature module
→ Use shared components from core/ui when possible

Setting up app theme (colors, typography, shapes)?
→ Follow android-theming.md for Material 3 theming and dynamic colors
→ Use semantic color roles from MaterialTheme.colorScheme (never hardcoded colors)
→ Support light/dark themes with user preference toggle
→ Enable dynamic color (Material You) for API 31+

Writing any Kotlin code?
Always follow kotlin-patterns.md
→ Ensure practices align with architecture.md, modularization.md, and compose-patterns.md

Setting up data/domain layers?
→ Read architecture.md
→ Create Repository interfaces in core/domain
→ Implement Repository in core/data
→ Create DataSource + DAO in core/data

Implementing offline-first or data synchronization?
→ Follow android-data-sync.md for sync strategies, conflict resolution, and cache invalidation
→ Use Room as single source of truth with sync metadata (syncStatus, lastModified)
→ Schedule background sync with WorkManager
→ Monitor network state before syncing

Setting up navigation?
→ Follow Navigation Coordination in modularization.md
→ Configure navigation graph in the app module
→ Use feature navigation destinations and navigator interfaces

Adding tests?
→ Use testing.md for patterns and examples
→ Keep test doubles in core/testing

Handling runtime permissions?
→ Follow android-permissions.md for manifest declarations and Compose permission patterns
→ Request permissions contextually and handle "Don't ask again" flows

Showing notifications or foreground services?
→ Use android-notifications.md for notification channels, styles, actions, and foreground services
→ Check POST_NOTIFICATIONS permission on API 33+ before showing notifications
→ Create notification channels at app startup (required for API 26+)

Sharing logic across ViewModels or avoiding base classes?
→ Use delegation via interfaces as described in kotlin-delegation.md
→ Prefer small, injected delegates for validation, analytics, or feature flags

Adding crash reporting / monitoring?
→ Follow crashlytics.md for provider-agnostic interfaces and module placement
→ Use DI bindings to swap between Firebase Crashlytics or Sentry

Enabling StrictMode guardrails?
→ Follow android-strictmode.md for app-level setup and Compose compiler diagnostics
→ Use Sentry/Firebase init from crashlytics.md to ship StrictMode logs

Choosing design patterns for a new feature, business logic, or system?
→ Use design-patterns.md for Android-focused pattern guidance
→ Align with architecture.md and modularization.md

Measuring performance regressions or startup/jank?
→ Use android-performance.md for Macrobenchmark setup and commands
→ Keep benchmark module aligned with benchmark build type in gradle-setup.md

Adding icons, images, or custom graphics?
→ Use android-graphics.md for Material Symbols icons and custom drawing
→ Download icons via Iconify API or Google Fonts (avoid deprecated Icons.Default.* library)
→ Use Modifier.drawWithContent, drawBehind, or drawWithCache for custom graphics

Creating custom UI effects (glow, shadows, gradients)?
→ Check android-graphics.md for Canvas drawing, BlendMode, and Palette API patterns
→ Use rememberInfiniteTransition for animated effects

Ensuring accessibility compliance (TalkBack, touch targets, color contrast)?
→ Follow android-accessibility.md for semantic properties and WCAG guidelines
→ Provide contentDescription for all icons and images
→ Ensure 48dp × 48dp minimum touch targets
→ Test with TalkBack and Accessibility Scanner

Working with images and color extraction?
→ Use android-graphics.md for Palette API and Coil3 integration
→ Extract colors from images for dynamic theming

Implementing complex coroutine flows or background work?
→ Follow coroutines-patterns.md for structured concurrency patterns
→ Use appropriate dispatchers (IO, Default, Main) and proper cancellation handling
→ Prefer StateFlow/SharedFlow over channels for state management

Need to share behavior across multiple classes?
→ Use kotlin-delegation.md for interface delegation patterns
→ Avoid base classes; prefer composition with delegated interfaces
→ Examples: Analytics, FormValidator, CrashReporter

Refactoring existing code or improving architecture?
→ Review architecture.md for layer responsibilities
→ Check design-patterns.md for applicable patterns
→ Follow kotlin-patterns.md for Kotlin-specific improvements
→ Ensure compliance with modularization.md dependency rules

Debugging performance issues or memory leaks?
→ Enable android-strictmode.md for development builds
→ Use android-performance.md for profiling and benchmarking
→ Check coroutines-patterns.md for coroutine cancellation patterns

Setting up CI/CD or code quality checks?
→ Use code-quality.md for Detekt baseline and CI integration
→ Use gradle-setup.md for build cache and convention plugins
→ Use testing.md for test organization and coverage

Handling sensitive data or privacy concerns?
→ Follow crashlytics.md for data scrubbing patterns
→ Use android-permissions.md for proper permission justification
→ Check android-strictmode.md for detecting cleartext network traffic

Migrating legacy code (LiveData, Fragments, etc.)?
→ Replace LiveData with StateFlow using coroutines-patterns.md
→ Replace Fragments with Compose screens using compose-patterns.md
→ Update navigation to Navigation3 using modularization.md
→ Follow architecture.md for modern MVVM patterns

Optimizing Compose recomposition or stability?
→ Use compose-patterns.md for @Immutable/@Stable annotations
→ Check gradle-setup.md for Compose Compiler metrics and stability reports
→ Use kotlin-patterns.md for immutable data structures

Working with databases (Room)?
→ Define DAOs and entities in core/database per modularization.md
→ Use testing.md for in-memory database testing and migration tests
→ Follow architecture.md for repository patterns with Room

Need internationalization/localization (i18n/l10n)?
→ Use android-i18n.md for string resources, plurals, and RTL support
→ Follow compose-patterns.md for RTL-aware Compose layouts
→ Use testing.md for locale-specific testing

Implementing network calls (Retrofit)?
→ Define API interfaces in core/network per modularization.md
→ Use architecture.md for RemoteDataSource patterns
→ Follow dependencies.md for Retrofit, OkHttp, and serialization setup
→ Handle errors with generic Result<T> from kotlin-patterns.md

Creating custom lint rules or code checks?
→ Use code-quality.md for Detekt custom rules
→ Follow gradle-setup.md for convention plugin setup
→ Check android-strictmode.md for runtime checks

Need code coverage reporting?
→ Use android-code-coverage.md for JaCoCo setup
→ Follow testing.md for test strategies
→ Check gradle-setup.md for convention plugin integration

Implementing security features (encryption, biometrics, pinning)?
→ Use android-security.md for comprehensive security guide
→ Follow android-permissions.md for runtime permissions
→ Check crashlytics.md for PII scrubbing and data privacy