AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Android Clean Architecture

skill-prasad-vennam-awesome-android-ai-agent-skills-android-clean-architecture · by prasad-vennam

Use when designing the architecture, data layer, domain models, or business logic for Android apps.

No reviews yet
0 installs
8 views
0.0% view→install

Install

$ agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-clean-architecture

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-prasad-vennam-awesome-android-ai-agent-skills-android-clean-architecture)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Android Clean Architecture? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Android Clean Architecture Excellence 🏗️

Standardized architectural patterns for scalable, testable, and maintainable Android applications.

⚡ When to Use

  • App Structure: Planning or refactoring the module/package layout.
  • Data Fetching: Implementing Retrofit or Room repositories.
  • Business Logic: Writing Use Cases or Interactors.
  • UI Architecture: Choosing between MVI, MVVM, or custom patterns.
  • State Management: Consuming data from Flow/StateFlow in ViewModels.

🏗️ The Three Pillars

1. Presentation Layer (UI & ViewModels)

  • Pattern: Always use Jetpack ViewModel.
  • State: Use MutableStateFlow in ViewModel. In Compose UI, ALWAYS collect using collectAsStateWithLifecycle() (requires androidx.lifecycle:lifecycle-runtime-compose). NEVER use collectAsState() as it wastes resources in the background.
  • MVI/MVVM: Prefer State + Events + Effects for complex screens.
  • Anti-Pattern (No Stubs): NEVER generate stubbed empty callbacks (e.g., onClicked = { /* Future implementation */ }) when scaffolding. If tasked to build a feature, ALWAYS implement the full event flow from UI to ViewModel to Repository.
  • Navigation: Use Compose Navigation with Safe Args (Type-safe routing via Kotlinx Serialization) instead of manual screen swapping.

2. Domain Layer (The Core)

  • Rule: NO Android dependencies (except maybe @Inject). Pure Kotlin.
  • Use Cases: Each Use Case should have a single responsibility.

``kotlin class GetUserUseCase @Inject constructor(private val repository: UserRepository) { operator fun invoke(id: String): Flow = repository.getUser(id) } ``

  • Models: Pure Kotlin data classes (Domain-specific).
  • CRITICAL ANTI-HALLUCINATION GUARD: NEVER assume or guess the properties of a data class (e.g., guessing a TodoItem has a dueDate). You MUST explicitly read the data classes in domain/model/ before writing ViewModel or Repository mapping logic to prevent Unresolved reference or constructor errors.

3. Data Layer (Sources & Repositories)

  • Pattern: Repository as a single source of truth.
  • DTOs: Data Transfer Objects (e.g., Json objects from Retrofit). Always map DTOs to Domain Models before passing to the Domain Layer.
  • Sources: Remote (Retrofit/Ktor) and Local (Room/DataStore).
  • Room TypeConverters (CRITICAL): If your domain model contains non-primitive types (e.g., LocalDateTime, Enums, Custom Objects), you MUST create a @TypeConverter class and explicitly register it on the @Database class before compiling. Room cannot natively store them!

💉 Dependency Injection (Hilt)

Hilt is the standard DI library. Ensure the following foundational setup is ALWAYS present:

1. Mandatory Application Class

  • Rule: Create a class inheriting from Application and annotate it with @HiltAndroidApp.

``kotlin @HiltAndroidApp class BaseApplication : Application() ``

2. Manifest Registration

  • Rule: Register your application class in AndroidManifest.xml using android:name=".BaseApplication".

3. Usage Patterns

  • Use @HiltViewModel for ViewModels.
  • Use @AndroidEntryPoint for Activities/Fragments (if any).
  • Use @Inject constructor for Use Cases and Repositories.
  • Create @Module and @InstallIn(SingletonComponent::class) for platform dependencies.

🧪 Testing Strategy

  • Unit Tests: Place in test/. Use MockK for mocking interfaces.
  • Test Coroutines: Use runTest and TestDispatcher.
  • Fakes vs Mocks: Prefer Fakes for complex Data sources and Mocks for simple verification.

🚀 Modern Reactive Flows

  • [ ] StateFlow: For state that needs initial value and persistence.
  • [ ] SharedFlow: For one-off events (e.g., Navigation, Snackbar).
  • [ ] Error Handling: Use a Result wrapper or Resource object to encapsulate Success/Error states.

🔗 Related Resources

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.