How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-code-review-expertBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Android Code Review Excellence 🧐🛡️
A rigorous framework for AI agents and developers to perform high-quality, professional Android code reviews.
⚡ When to Use
- PR Review: Analyzing a Pull Request for logic, style, and regressions.
- Pre-commit Audit: Self-checking code before pushing.
- Architectural Check: Ensuring new features follow the established team patterns.
- Security Audit: Spotting sensitive data exposure or insecure networking.
- Performance Audit: Detecting potential memory leaks or UI jank.
🏗️ Review Checklist
1. Architecture & Design
- [ ] Clean Architecture: Is logic properly separated into Domain/Data/Presentation?
- [ ] State Flow: Does the ViewModel expose
StateFlow? Is state properly hoisted? - [ ] Dependency Injection: Are dependencies injected via Hilt/Koin? No manual
new Class()for dependencies. - [ ] Manifest Scaffolding: Are required permissions (like
INTERNETfor Coil/Retrofit) actually defined? Is the@HiltAndroidAppclass correctly designated inAndroidManifest.xmlviaandroid:name? - [ ] Type-Safe Navigation: Is the app using Compose
NavHostwith Kotlin Serialization (type-safe routes) instead of anti-pattern manual state swapping? - [ ] Modularity: Is the code placed in the correct module?
2. Jetpack Compose (UI)
- [ ] Recomposition: Are there expensive calculations inside
@Composable? Useremember. - [ ] Previews: Does the new component have
@Previewfor light/dark mode and accessibility? - [ ] Stability: Are domain models marked
@Stableor@Immutable? - [ ] Material 3: Is the code using the theme's
MaterialTheme.colorSchemeinstead of hardcoded hex values? - [ ] Theme Bridge: If XML resources are used (e.g.
res/), is the Material Components XML Bridge correctly set up in themes?
3. Stability & Networking
- [ ] Error Handling: Are network calls wrapped in
Resultortry/catchwith proper UI feedback? - [ ] Coroutine Scopes: Use
viewModelScopefor ViewModels andlifecycleScopefor Fragments/Activities. - [ ] Flow Lifecycle: Is
collectAsStateWithLifecycle()used instead of basecollectAsState()? (Critical for avoiding resource leaks when the app goes into the background). - [ ] Room TypeConverters: If caching domain models with complex definitions (e.g.
LocalDateTime,List<String>), did you verify a@TypeConverteris written and registered on the Database? ROOM WILL CRASH without this.
4. Performance & Memory
- [ ] Memory Leaks: Are there references to
Contextheld in long-lived objects? - [ ] Lazy Lists: Are
keyparameters provided foritems()inLazyColumn/LazyRow? - [ ] Heavy Work: Is heavy computation moved to
Dispatchers.Default?
5. Security & Privacy
- [ ] Sensitive Data: Ensure NO passwords, keys, or PII are logged or stored in plain text.
- [ ] Networking: Is all communication over HTTPS? No
cleartextTrafficallowed. - [ ] Permissions: Is the app requesting minimum necessary permissions?
📜 Reviewer Best Practices
- The "Why", Not Just the "What": Explain the reasoning behind a request (e.g., "Use
rememberhere to prevent re-calculating on every frame"). - Prioritize: Distinguish between "Critical" (security, crashes) and "Nitpick" (formatting, naming).
- Compliment: Acknowledge good code, elegant solutions, and clear documentation.
🧪 Verification Commands (For Agents)
Check Lint
./gradlew lintDebugCheck Style
./gradlew ktlintCheckRun Logic Tests
./gradlew testDebugUnitTest


