android-architecture
Expert guidance on setting up and maintaining a modern Android application architecture using Clean Architecture and Hilt. Use this when asked about project structure, module setup, or dependency injection.
Works with
---
name: android-architecture
description: Expert guidance on setting up and maintaining a modern Android application architecture using Clean Architecture and Hilt. Use this when asked about project structure, module setup, or dependency injection.
license: Apache-2.0
---
# Android Modern Architecture & Modularization
## Instructions
When designing or refactoring an Android application, adhere to the **Guide to App Architecture** and **Clean Architecture** principles.
### 1. High-Level Layers
Structure the application into three primary layers. Dependencies must strictly flow **inwards** (or downwards) to the core logic.
* **UI Layer (Presentation)**:
* **Responsibility**: Displaying data and handling user interactions.
* **Components**: Activities, Fragments, Composables, ViewModels.
* **Dependencies**: Depends on the Domain Layer (or Data Layer if simple). **Never** depends on the Data Layer implementation details directly.
* **Domain Layer (Business Logic) [Optional but Recommended]**:
* **Responsibility**: Encapsulating complex business rules and reuse.
* **Components**: Use Cases (e.g., `GetLatestNewsUseCase`), Domain Models (pure Kotlin data classes).
* **Pure Kotlin**: Must NOT contain any Android framework dependencies (no `android.*` imports).
* **Dependencies**: Depends on Repository Interfaces.
* **Data Layer**:
* **Responsibility**: Managing application data (fetching, caching, saving).
* **Components**: Repositories (implementations), Data Sources (Retrofit APIs, Room DAOs).
* **Dependencies**: Depends only on external sources and libraries.
### 2. Dependency Injection with Hilt
Use **Hilt** for all dependency injection.
* **@HiltAndroidApp**: Annotate the `Application` class.
* **@AndroidEntryPoint**: Annotate Activities and Fragments.
* **@HiltViewModel**: Annotate ViewModels; use standard `constructor` injection.
* **Modules**:
* Use `@Module` and `@InstallIn(SingletonComponent::class)` for app-wide singletons (e.g., Network, Database).
* Use `@Binds` in an abstract class to bind interface implementations (cleaner than `@Provides`).
### 3. Modularization Strategy
For production apps, use a multi-module strategy to improve build times and separation of concerns.
* **:app**: The main entry point, connects features.
* **:core:model**: Shared domain models (Pure Kotlin).
* **:core:data**: Repositories, Data Sources, Database, Network.
* **:core:domain**: Use Cases and Repository Interfaces.
* **:core:ui**: Shared Composables, Theme, Resources.
* **:feature:[name]**: Standalone feature modules containing their own UI and ViewModels. Depends on `:core:domain` and `:core:ui`.
### 4. Checklist for implementation
- [ ] Ensure `Domain` layer has no Android dependencies.
- [ ] Repositories should default to main-safe suspend functions (use `Dispatchers.IO` internally if needed).
- [ ] ViewModels should interact with the UI layer via `StateFlow` (see `android-viewmodel` skill).More Mobile skills
animation-vocabulary
emilkowalski/skills
Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.
xcode-project-setup
firebase/agent-skills
Safely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).
cross-border-ecommerce
nexscope-ai/ecommerce-skills
Cross-border e-commerce expansion advisor. Scores target markets on 8 weighted dimensions (market size, ecommerce penetration, competition, regulatory complexity, logistics infrastructure, payment ecosystem, cultural distance, IP protection), compares 5 fulfillment models with cost and transit data, provides country-by-country tax/duty compliance guides (EU VAT/IOSS, UK VAT, US sales tax, CA GST, AU GST, JP consumption tax), maps local payment preferences by market, and builds a phased expansion roadmap. No API key required.

