# Android Jetpack Compose

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

- **Type:** Skill
- **Install:** `agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-jetpack-compose`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [prasad-vennam](https://agentstack.voostack.com/s/prasad-vennam)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [prasad-vennam](https://github.com/prasad-vennam)
- **Source:** https://github.com/prasad-vennam/Awesome-Android-AI-Agent-Skills/tree/main/skills/android-jetpack-compose

## Install

```sh
agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-jetpack-compose
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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

- [Google Official Compose Samples](https://github.com/android/nowinandroid)
- [Clean Architecture Skill](../android-clean-architecture/SKILL.md)

## Source & license

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

- **Author:** [prasad-vennam](https://github.com/prasad-vennam)
- **Source:** [prasad-vennam/Awesome-Android-AI-Agent-Skills](https://github.com/prasad-vennam/Awesome-Android-AI-Agent-Skills)
- **License:** MIT

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

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-prasad-vennam-awesome-android-ai-agent-skills-android-jetpack-compose
- Seller: https://agentstack.voostack.com/s/prasad-vennam
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
