Agent-skills-standard android-architecture
Apply Clean Architecture layering, modularization, and Unidirectional Data Flow in Android projects. Use when setting up Android project structure, placing code in Clean Architecture layers, configuring feature/core modules, or implementing UDF patterns. (triggers: build.gradle.kts, settings.gradle.kts, clean-architecture, module, layers, domain, UDF, unidirectional, feature module, core module, presentation layer, data layer)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/android/android-architecture" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-android-architecture && rm -rf "$T"
manifest:
skills/android/android-architecture/SKILL.mdsource content
Android Architecture Standards
Priority: P0 (CRITICAL)
1. Layer Your Project (Clean Architecture)
- Domain: Pure Kotlin (No Android deps). Contains UseCases and Models.
- Data: Repository impl, DataSources (API/DB). Maps DTO -> Domain.
- UI: ViewModel + Composable. Maps Domain -> UiState.
See structure & examples for Clean Architecture layer examples.
2. Modularize by Feature and Core
- Feature Modules:
,:feature:home
.:feature:profile - Core Modules:
(Design System),:core:ui
,:core:network
.:core:database - App Module: DI Root and Navigation Guard.
See structure & examples for module configuration.
3. Enforce Unidirectional Data Flow (UDF)
- Events: UI -> ViewModel (user actions flow UP).
- State: ViewModel -> UI (
flows DOWN).StateFlow<UiState>
4. Verify Jetpack Compose Integration
- Hosting: Use
in Activity (No XML Layouts).setContent - State: Hoist state to ViewModel using
.collectAsStateWithLifecycle - Recomposition: Ensure Composable parameters
or@Stable
.@Immutable - Navigation: Use Compose Navigation with Type-Safe destinations.
Anti-Patterns
- No Logic in Activity: Host Navigation only.
- No Repo in UI: Access data exclusively via ViewModel.
- No Context in Domain: Keep Logic Pure.