drjacky/claude-android-ninja
Overview
This skill helps you create production-quality Android apps with Kotlin and Jetpack Compose, following Google’s recommended architecture and module patterns. It provides guidance and templates for MVVM, Hilt DI, Room, Navigation3, Gradle conventions, and testing. Use it to scaffold projects, add feature modules, screens, ViewModels, repositories, and to get architecture or performance advice.
How this skill works
I inspect requests for new projects, modules, screens, ViewModels, repositories, or architecture guidance and return concrete code patterns, templates, and step-by-step workflows. I recommend module layouts, Gradle setup, dependency organization, Compose UI patterns, and testing strategies. I also point to best practices for coroutines, accessibility, performance, and CI/code-quality integration.
When to use it
- Scaffolding a new Android project with multi-module structure
- Adding a new feature module, screen, or navigation destination
- Implementing ViewModel, Repository, or Room database layers
- Migrating legacy code to Compose, StateFlow, or Navigation3
- Configuring Gradle conventions, dependency catalog, or CI quality checks
- Designing testable layers and setting up unit/instrumented tests
Best practices
- Follow modularization: Feature → Core/Domain → Core/Data dependency flow
- Keep Presentation, Domain, and Data layers separate and interface-driven
- Use Hilt for DI and provide interfaces in core modules for testing/swapping implementations
- Prefer StateFlow/SharedFlow over LiveData; use structured concurrency with proper dispatchers
- Store build logic in convention plugins and version catalog (libs.versions.toml)
- Write UI as small, reusable Compose components and keep side-effects in ViewModel
Example use cases
- Generate a new multi-module project template with common modules and Gradle conventions
- Create a Compose screen + ViewModel + UiState inside a feature module wired with Navigation3
- Add Room DAO, entities, and repository implementation under core/data and an interface in core/domain
- Migrate a Fragment + LiveData flow to Compose + StateFlow and update navigation to Navigation3
- Configure Detekt, CI checks, and a benchmark module for performance regression testing
FAQ
Name feature modules clearly, keep presentation inside the feature, and expose only navigator interfaces. Place shared business logic in core/domain and implementations in core/data.
What is the recommended state management for Compose?
Use immutable UiState data classes with StateFlow in ViewModel. Prefer one-way data flow and expose read-only StateFlow to the UI to minimize recompositions.