mcpField
A
android-development

android-development

github.com/mindrally开发287789 次安装3 周前更新
代码仓库

关于 android-development

面向 Android 开发者的实践指南,涵盖 Kotlin 规范、应用架构、界面模式、测试与性能。

主要功能

  1. 01Kotlin 命名与设计规范
  2. 02Clean Architecture 与 MVI 指引
  3. 03导航与界面状态实践
  4. 04单元与界面测试指引
  5. 05生命周期与后台任务实践

适用场景

  1. 01在 Android 项目中统一 Kotlin 风格
  2. 02规划应用分层与界面状态
  3. 03设计 ViewModel 和导航测试
  4. 04处理生命周期与延迟后台任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill android-development

安装后在 Claude Code 中输入/android-development确认已加载。

详细介绍

Android 开发最佳实践

Kotlin 通用指南

基本原则
  • 所有代码和文档均使用英语
  • 始终显式声明变量和函数的类型
  • 避免使用 any 类型;创建必要的自定义类型
  • 函数体内不留空行
命名规范
  • PascalCase:类、接口、枚举
  • camelCase:变量、函数、方法
  • underscores_case:文件和目录
  • UPPERCASE:环境变量、常量
  • 避免使用魔法数字;改为定义常量
  • 函数名称应以动作动词开头
  • 布尔变量使用以下前缀:isLoading、hasError、canDelete
函数设计
  • 函数不超过 20 条指令,且仅承担单一职责
  • 使用基于动词的命名方式
  • 布尔返回值使用 is、has 或 can 前缀
  • 无返回值的函数使用 execute、save、send 前缀
  • 通过提前返回、提取工具函数和高阶函数来避免嵌套
  • 使用默认参数代替空值检查
  • 将参数整合到对象中(RO-RO 模式)
数据与类
  • 使用数据类表示数据结构
  • 将基本类型封装为复合类型;在内部进行验证
  • 优先使用不可变对象;对于不会变化的值使用 val
  • 遵循 SOLID 原则;优先使用组合而非继承
  • 类不超过 200 条指令、10 个公共方法和 10 个属性
异常处理
  • 仅在出现意外错误时使用异常
  • 仅在需要修复可预期的问题或补充上下文时捕获异常
  • 为领域错误创建自定义异常类型

Android 架构

整洁架构
  • 实施整洁架构,明确划分层级
  • 使用仓库模式进行数据持久化和缓存
  • 将业务逻辑放在用例或交互器中
  • 分离 UI、领域和数据层的职责
项目结构
app/
├── data/           # Data sources, repositories, models
├── domain/         # Use cases, domain models, interfaces
├── presentation/   # UI components, ViewModels, state
└── di/             # Dependency injection modules
MVI 模式
  • 使用 MVI 模式管理状态和事件
  • ViewModel 将 UI 状态作为单个不可变状态对象进行管理
  • UI 组件观察状态并据此渲染
  • 通过单一入口处理用户意图/事件
  • 确保副作用可预测且可追踪

UI 开发

导航
  • 使用 Navigation Component 处理 Fragment 和 Activity 导航
  • 为应用流程定义导航图
  • 通过 Navigation Component 处理深层链接
  • 使用 Safe Args 实现类型安全的导航参数
Main Activity 结构
  • MainActivity 管理主导航
  • 使用 BottomNavigationView 设置主要目的地(首页、个人资料、设置等)
  • 在配置更改时妥善处理导航状态
View Binding 和状态
  • 使用 ViewBinding 实现类型安全的视图访问
  • 使用 Flow 或 LiveData 管理 UI 状态
  • 以遵循生命周期的方式观察状态变化
  • 一致地处理加载、错误和成功状态
UI 框架偏好
  • 优先使用 XML 布局和 Fragment,而非 Jetpack Compose(除非明确要求使用 Compose)
  • 复杂布局使用 ConstraintLayout
  • 遵循 Material 3 设计指南
  • 针对不同屏幕尺寸遵循响应式设计实践

身份验证流程

妥善安排身份验证界面:

  1. 闪屏界面——应用启动时显示
  2. 登录界面——用户身份验证
  3. 注册界面——新用户注册
  4. 忘记密码界面——密码找回
  5. 验证邮箱界面——邮箱验证

测试

单元测试
  • 遵循 Arrange-Act-Assert 约定
  • 测试 ViewModel、用例和仓库
  • 使用依赖的测试替身
  • 充分覆盖业务逻辑
UI 测试
  • 为 UI 组件实现组件测试
  • 为 API 模块编写集成测试
  • 测试导航流程
  • 使用 Espresso 进行插桩测试

最佳实践

生命周期管理
  • 妥善处理生命周期事件
  • 避免因生命周期处理不当导致内存泄漏
  • 使用遵循生命周期的组件
后台处理
  • 使用 Coroutines 执行异步操作
  • 妥善处理取消操作
  • 使用 WorkManager 执行可延迟的后台任务
依赖注入
  • 使用 Hilt 或 Dagger 进行依赖注入
  • 合理设置依赖的作用域
  • 保持 DI 配置井然有序
性能
  • 避免在主线程上执行任务
  • 使用 DiffUtil 优化 RecyclerView
  • 对大型资源使用延迟加载
  • 分析并优化内存使用情况

评论

支持 Markdown