SuperAPI AI 工具集

android-compose-architecture-review

通用与其它

查看项目

更新于 10-15 21:08

技能介绍

用途:审查现有 Compose 屏幕与 ViewModel,做架构违规的代码评审,为特定文件提供重构指导,验证状态管理写法。若需规划新功能、理解项目整体架构或做跨模块大改动,应改用 project-architecture-analyst-android 智能体。

主要能力与检查项:关注点分离(Composable 只做展示,不含业务逻辑、网络、数据库;ViewModel 承载状态与业务逻辑,使用 StateFlow 与事件;Repository/UseCase 与 UI 分离);状态管理(remember 仅用于组件本地状态,rememberSaveable 跨配置变更,ViewModel 配 StateFlow/MutableStateFlow 承载屏幕状态,collectAsStateWithLifecycle() 生命周期感知收集,derivedStateOf 计算派生状态,CompositionLocal 共享只读状态);单向数据流(状态向下、事件向上),优先无状态 Composable,复杂且与生命周期无关的状态用普通状态持有类;副作用使用 LaunchedEffect、DisposableEffect、SideEffect、produceState、rememberCoroutineScope、snapshotFlow,避免在 Composable 体内随意产生副作用;用 SavedStateHandle 跨进程死亡保存状态。

还检查状态生命周期(避免 ViewModel 泄漏,使用 viewModel() 或 hiltViewModel(),在 onCleared() 清理,生命周期感知收集,避免不必要的状态提升)、依赖注入(按项目使用 Koin、Hilt、Dagger 或手动注入,Composable 中不硬编码单例,ViewModel 通过构造函数接收依赖)、Composable 设计(小而单一职责,复杂屏幕拆分组件,抽取可复用组件,优先无状态)。

常见问题与修复:Composable 含业务逻辑则抽到 ViewModel;Composable 内网络调用移到 ViewModel 并用 LaunchedEffect;单例改为 DI 或 CompositionLocal;200 行以上组件拆分;状态未提升则提升到父级或 ViewModel;副作用或网络调用直接写在 Composable 中应包进 LaunchedEffect(key) { ... } 或移入 ViewModel;本可无状态却写成有状态则提升状态并传值与 lambda。状态提升模式为 Composable 接收 value: T 与 onValueChange: (T) -> Unit,ViewModel 持有 MutableStateFlow<T>。严重级别分为 Critical(架构违规)、Improvement(有更好模式)、Enhancement(可选优化)。

限制:资料未提供安装命令、收费与平台信息,暂未提供。