Skip to content
Back to skills

Android Architecture

ASecurity

Standards for Clean Architecture, Modularization, and Unidirectional Data Flow. Use when anyone sets up Android project structure, asks where code belongs in Clean Architecture layers, discusses modularization (feature/core modules), or questions UDF (events up, state down). (triggers: build.gradle.kts, settings.gradle.kts, clean-architecture, module, layers, domain, UDF, unidirectional, feature module, core module, presentation layer, data layer)

  • 43 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 30, 2026
developmentkotlinapidatabase

Works with

  • api

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ComeOnOliver/skillshub --skill android-architecture --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Android Architecture?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Android Architecture
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/comeonoliver-android-architecture/badge)](https://www.skillsdirectory.com/skills/comeonoliver-android-architecture)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: android-architecture
description: "Standards for Clean Architecture, Modularization, and Unidirectional Data Flow. Use when anyone sets up Android project structure, asks where code belongs in Clean Architecture layers, discusses modularization (feature/core modules), or questions UDF (events up, state down). (triggers: build.gradle.kts, settings.gradle.kts, clean-architecture, module, layers, domain, UDF, unidirectional, feature module, core module, presentation layer, data layer)"
---

# Android Architecture Standards

## **Priority: P0 (CRITICAL)**

## Implementation Guidelines

### Layering (Clean Architecture)

- **Domain**: Pure Kotlin (No Android deps). Contains UseCases/Models.
- **Data**: Repository impl, DataSources (API/DB). Maps DTO -> Domain.
- **UI**: ViewModel + Composable. Maps Domain -> UiState.

### Modularization

- **Feature Modules**: `:feature:home`, `:feature:profile`.
- **Core Modules**: `:core:ui` (Design System), `:core:network`, `:core:database`.
- **App Module**: DI Root and Navigation Guard.

### Unidirectional Data Flow (UDF)

- **Events**: UI -> ViewModel (Events).
- **State**: ViewModel -> UI (StateFlow<UiState>).

### Jetpack Compose

- **Hosting**: Are you using `setContent` in Activity? (No XML Layouts)
- **State**: Is state hoisted to ViewModel using `collectAsStateWithLifecycle`?
- **Unidirectional**: Are events passed UP and state passed DOWN?
- **Recomposition**: Are Composables stable? (Check for unstable types in parameters)
- **Navigation**: Is `Compose Navigation` using 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.

## References

- [Structure & Examples](references/implementation.md)
- [Jetpack Compose Best Practices](references/compose-standards.md)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…