PluginBench
Rule

android jetpack compose

via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

What is android jetpack compose?

This rule guides Android development using Jetpack Compose with emphasis on clean architecture, proper state management, and performance optimization. Use it when building modern Android UIs with Compose, ViewModel, Hilt dependency injection, and unidirectional data flow patterns.

  • Adapt to existing project architecture while applying Jetpack Compose best practices and clean architecture principles
  • Implement Material Design 3 components and theming with proper state hoisting and recomposition optimization
  • Use Kotlin coroutines, Flow, and ViewModel for asynchronous operations and unidirectional data flow
  • Set up dependency injection with Hilt and organize code into domain, data, and presentation layers
  • Optimize performance through lazy loading, proper key usage, and efficient state management
  • Write unit tests for ViewModels and UseCases, and UI tests using Compose testing framework

Applies to

File patterns this rule matches.

**/*
Rule definition (reference)

Source of truth, from the repository.

// Android Jetpack Compose .cursorrules

// 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

const androidJetpackComposeBestPractices = [ "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

const projectStructure = 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

const composeGuidelines = `

  1. Use remember and derivedStateOf appropriately
  2. Implement proper recomposition optimization
  3. Use proper Compose modifiers ordering
  4. Follow composable function naming conventions
  5. Implement proper preview annotations
  6. Use proper state management with MutableState
  7. Implement proper error handling and loading states
  8. Use proper theming with MaterialTheme
  9. Follow accessibility guidelines
  10. Implement proper animation patterns `;

// Testing Guidelines

const testingGuidelines = `

  1. Write unit tests for ViewModels and UseCases
  2. Implement UI tests using Compose testing framework
  3. Use fake repositories for testing
  4. Implement proper test coverage
  5. Use proper testing coroutine dispatchers `;

// Performance Guidelines

const performanceGuidelines = `

  1. Minimize recomposition using proper keys
  2. Use proper lazy loading with LazyColumn and LazyRow
  3. Implement efficient image loading
  4. Use proper state management to prevent unnecessary updates
  5. Follow proper lifecycle awareness
  6. Implement proper memory management
  7. Use proper background processing `;

Related rules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules

Keep changes scoped and simple—modify only what was asked, nothing more.

["**/*"]
41k
via PatrickJS/awesome-cursorrules

Enforce honest code review and generation by blocking hallucinated APIs, false confidence, and authority-driven validation.

**/*
41k
via PatrickJS/awesome-cursorrules

Turn-based ASCII simulation where AI nations compete for resources, territory, and dominance on a procedurally generated map.

**/*
41k
via PatrickJS/awesome-cursorrules