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

android-code-review-expert

Use when performing a code review for Android pull requests, focusing on architecture, memory safety, and UI excellence.

查看源码

使用方法

  1. 复制安装命令,在自己的智能体环境安装前先检查源码包。
  2. 从原始文档核对所需工具、凭据和支持的宿主。
  3. 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-code-review-expert

开始前需了解

  • 安装不包含模型订阅、API 额度或访问文件的权限。
  • 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

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 INTERNET for Coil/Retrofit) actually defined? Is the @HiltAndroidApp class correctly designated in AndroidManifest.xml via android:name?
  • [ ] Type-Safe Navigation: Is the app using Compose NavHost with 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? Use remember.
  • [ ] Previews: Does the new component have @Preview for light/dark mode and accessibility?
  • [ ] Stability: Are domain models marked @Stable or @Immutable?
  • [ ] Material 3: Is the code using the theme's MaterialTheme.colorScheme instead 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 Result or try/catch with proper UI feedback?
  • [ ] Coroutine Scopes: Use viewModelScope for ViewModels and lifecycleScope for Fragments/Activities.
  • [ ] Flow Lifecycle: Is collectAsStateWithLifecycle() used instead of base collectAsState()? (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 @TypeConverter is written and registered on the Database? ROOM WILL CRASH without this.

4. Performance & Memory

  • [ ] Memory Leaks: Are there references to Context held in long-lived objects?
  • [ ] Lazy Lists: Are key parameters provided for items() in LazyColumn/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 cleartextTraffic allowed.
  • [ ] 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 remember here 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

bash
  ./gradlew lintDebug

Check Style

bash
  ./gradlew ktlintCheck

Run Logic Tests

bash
  ./gradlew testDebugUnitTest

🔗 Related Resources

按任务相关推荐

来自同一仓库

更多 Skills

全部 Skills