用途:作为所有 Android 与 Kotlin Multiplatform(KMP)工作的基线,当用户提到 Android、Android 场景下的 Kotlin 或 KMP 时使用。项目实际约定不同时以项目为准。
主要能力:给出默认技术选型——依赖注入用 Hilt + KSP(项目用 Koin 时改用 android-skills:koin);异步用 Coroutines/Flow,新代码不用 LiveData;JSON 用 kotlinx.serialization;图片用 Coil;Android 网络与本地用 Retrofit/OkHttp + Room,KMP 共享层用 Ktor + Room 或 SQLDelight,Retrofit 仅限 Android,不得放入共享模块。模块采用 feature 垂直分包,:core:model 无 Android 依赖,:feature:* 之间不互相依赖。错误在仓库边界映射为领域类型,平台异常不外泄;UI 状态显式建模 loading/success/error。
使用方式:按任务加载具体技能,必须使用完整前缀 android-skills:,不要用短名。例如 Compose 细节用 android-skills:compose,M3 与无障碍用 android-skills:android-ux,协程与 Flow 用 android-skills:kotlin-coroutines、android-skills:kotlin-flows,数据层用 android-skills:android-data-layer,网络用 android-skills:android-retrofit 或 android-skills:kmp-ktor,分页用 android-skills:paging,图片用 android-skills:coil-compose,本地存储用 android-skills:datastore,KMP 边界用 android-skills:kmp-boundaries,测试用 android-skills:android-testing,构建逻辑用 android-skills:android-gradle-logic,调试用 android-skills:android-debugging 等。
新项目 UI 约定:MVVM 加 MVI 风格的状态/效果分离。每个屏幕一个不可变 UiState,以 StateFlow 暴露;一次性指令用 Channel(Channel.BUFFERED).receiveAsFlow(),在 LaunchedEffect 中配合 repeatOnLifecycle 收集。回调约 4–5 个以上时提升为 @Stable Actions 接口。状态按四类分桶:可编辑输入、派生值(用 getter 而非构造参数)、持久化快照、仅瞬态 UI 标志。UiState 与 UI 模型分文件,模型按组合关系分组。新增机制前先复用同 feature 中已有 ViewModel 的机制。注释只保留代码无法表达的 why。KMP 中注入 CoroutineDispatcher,平台相关用 expect/actual。
限制:资料未提供安装命令、收费、价格、平台支持范围与效果数据。