prasad-vennam/awesome-android-ai-agent-skills

android-jetpack-compose

Use when creating, refactoring, or optimizing Android UI components using Jetpack Compose.

Vedi sorgente

Come usare

  1. Copia il comando e controlla il pacchetto prima di installarlo nel tuo ambiente agente.
  2. Controlla strumenti, credenziali e ambienti richiesti nel documento originale.
  3. Descrivi input e risultato desiderato; confronta l’output con le fonti.
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-jetpack-compose

Prima di iniziare

  • L’installazione non include abbonamenti, quote API o accesso ai file.
  • Stelle e installazioni indicano attività, non un test indipendente di qualità o sicurezza.
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

Android Jetpack Compose Excellence 🎨

Expert guidance for building modern, high-performance Android UI with Jetpack Compose.

⚡ When to Use

  • New Feature UI: Starting a new screen or custom component.
  • UI Refactoring: Moving from XML to Compose or legacy Compose to modern patterns.
  • Theming: Implementing Material 3, Dark Mode, or Custom Design Systems.
  • Performance Fixes: Debugging recomposition issues or laggy lists.
  • Animations: Adding smooth transitions and micro-interactions.

🏗️ Core Principles

1. State Management (Hoisting)

  • Rule: Composables should be stateless where possible. Hoist state to the caller.
  • Bad:
kotlin
  @Composable
  fun SearchBar() {
      val text = remember { mutableStateOf("") } // Local state in reusable component
      TextField(value = text.value, onValueChange = { text.value = it })
  }
  • Good:
kotlin
  @Composable
  fun SearchBar(
      query: String,
      onQueryChange: (String) -> Unit
  ) {
      TextField(value = query, onValueChange = onQueryChange)
  }

2. Slot API Pattern

  • For complex components, use "Slots" (content parameters) to increase flexibility.
kotlin
  @Composable
  fun AppHeader(
      title: @Composable () -> Unit,
      actions: @Composable RowScope.() -> Unit = {}
  ) { ... }

3. Material 3 (M3)

  • Always prefer androidx.compose.material3 components.
  • Use ColorScheme, Typography, and Shapes from the theme.

🚀 Performance Checklist

  • [ ] Lambda Stability: Method references (::onAction) or bound lambdas (val -> action(val)) are safer for stability than capturing unstable variables.
  • [ ] derivedStateOf: Use when a state depends on another state that changes frequently (e.g., scroll position).
  • [ ] remember(key): Correctly keying remember blocks to avoid stale data.
  • [ ] Lists: Use LazyColumn / LazyRow and ALWAYS provide a key to items.

🎨 Animations

  • AnimatedVisibility: For simple appear/disappear.
  • animateColorAsState: For smooth color changes.
  • Transition: For complex, multi-state animations.
  • Lottie: Use lottie-compose for complex vector animations.

🧪 Testing and Previews

  • Previews: Use @Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) for dark mode testing.
  • Multi-device Previews: Use @PreviewScreenSizes and @PreviewFontScales.
  • UI Testing: Use createComposeRule() and onNodeWithTag().

🔗 Related Resources

Correlati per attività

dallo stesso repository

Altri Skills

Tutti gli Skills