Android Native (Jetpack Compose)
Defines Jetpack Compose best practices, folder structure, and guidelines for Android projects with Kotlin.
What this file does
Defines Jetpack Compose best practices, folder structure, and guidelines for Android projects with Kotlin.
When to use it
- Starting a new Android app with Jetpack Compose
- Standardizing Compose conventions across a team
- Reviewing or refactoring an existing Compose codebase
- Onboarding developers to Compose architecture and patterns
Assumes this stack
trigger: always_on glob: "**/*.{kt,kts,xml}" description: Android Jetpack Compose Guidelines
Android Native (Jetpack Compose)
Android Jetpack Compose
Flexibility Notice
Note: This is a recommended project structure, but be flexible and adapt to existing project structures. Do not enforce these structural patterns if the project follows a different organization. Focus on maintaining consistency with the existing project architecture while applying Jetpack Compose best practices.
Project Architecture and Best Practices
val androidJetpackComposeBestPractices = listOf(
"Adapt to existing project architecture while maintaining clean code principles",
"Follow Material Design 3 guidelines and components",
"Implement clean architecture with domain, data, and presentation layers",
"Use Kotlin coroutines and Flow for asynchronous operations",
"Implement dependency injection using Hilt",
"Follow unidirectional data flow with ViewModel and UI State",
"Use Compose navigation for screen management",
"Implement proper state hoisting and composition"
)
Folder Structure
Note: This is a reference structure. Adapt to the project's existing organization.
app/
src/
main/
java/com/package/
data/
repository/
datasource/
models/
domain/
usecases/
models/
repository/
presentation/
screens/
components/
theme/
viewmodels/
di/
utils/
res/
values/
drawable/
mipmap/
test/
androidTest/
Compose UI Guidelines
- Use
rememberandderivedStateOfappropriately - Implement proper recomposition optimization
- Use proper Compose modifiers ordering
- Follow composable function naming conventions
- Implement proper preview annotations
- Use proper state management with
MutableState - Implement proper error handling and loading states
- Use proper theming with
MaterialTheme - Follow accessibility guidelines
- Implement proper animation patterns
Testing Guidelines
- Write unit tests for ViewModels and UseCases
- Implement UI tests using Compose testing framework
- Use fake repositories for testing
- Implement proper test coverage
- Use proper testing coroutine dispatchers
Performance Guidelines
- Minimize recomposition using proper keys
- Use proper lazy loading with
LazyColumnandLazyRow - Implement efficient image loading
- Use proper state management to prevent unnecessary updates
- Follow proper lifecycle awareness
- Implement proper memory management
- Use proper background processing
What's inside
1 flexibility notice, 1 architecture list, 1 folder tree, 10 UI guidelines, 5 testing guidelines, 7 performance guidelines
Change this for your project
- Replace
com/package/with your actual package name - Replace
java/com/package/with your source root path - Replace
app/with your module name if different
Where it goes
Save in docs/ or the repository root. Gives agents and new contributors a map of the codebase.
Worth borrowing
- Separating data, domain, and presentation layers for clean architecture
- Using a checklist format for UI, testing, and performance guidelines
Related Documents
PCB Design Sources for Industry-Scale Testing
Lists GitHub repos and communities where you can download real PCB designs for testing optimization at scale.
Design Document: BharatSeva AI
Describes a 10-agent AWS system that helps India's informal workers access government schemes via voice-first, serverless architecture.
OpenClaw Enterprise Transformation Plan
Transforms a single-user AI agent into a dual-mode platform supporting both viral open-source and Fortune 500 enterprise deployments through phased security, IAM, audit, multi-tenancy, and Kubernetes features.
Qwen Image and Edit: Open-sourcing and Local GGUF Generations with Lightning
Documents the Qwen-Image and Qwen-Image-Edit models, covering architecture, training, benchmarks, ComfyUI setup, and prompting techniques for local GGUF deployment.