Install
$ agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-jetpack-compose ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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.material3components. - Use
ColorScheme,Typography, andShapesfrom 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
rememberblocks to avoid stale data. - [ ] Lists: Use
LazyColumn/LazyRowand ALWAYS provide akeytoitems.
🎨 Animations
AnimatedVisibility: For simple appear/disappear.animateColorAsState: For smooth color changes.Transition: For complex, multi-state animations.Lottie: Uselottie-composefor 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
@PreviewScreenSizesand@PreviewFontScales. - UI Testing: Use
createComposeRule()andonNodeWithTag().
🔗 Related Resources
- Google Official Compose Samples
- [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
- Source: prasad-vennam/Awesome-Android-AI-Agent-Skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.