- 删除遗留的 androidApp/、shared/ 等 KMP 结构文件 - 将新的 app/、core/ 纯 Android 模块纳入版本控制 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
2.1 KiB
commonMain
Purpose
KMP 共享核心模块,包含所有 Compose UI、ViewModel 状态管理、业务逻辑和跨平台接口声明。这是 YaYa 应用的主体代码所在。
Key Files
| File | Description |
|---|---|
kotlin/plus/rua/project/App.kt |
应用根 Composable,提供 Material 主题和导航入口 |
kotlin/plus/rua/project/AppInfo.kt |
应用元数据(名称、版本、作者等) |
kotlin/plus/rua/project/CalendarViewModel.kt |
日历状态管理(选中日期、展开/折叠、月/周/年视图) |
kotlin/plus/rua/project/ComposeTrace.kt |
expect 声明的 Trace 标记 API |
kotlin/plus/rua/project/Platform.kt |
expect 声明的平台接口 |
kotlin/plus/rua/project/ShiftPattern.kt |
个人班次排期模型(WORK/OFF 循环) |
Subdirectories
| Directory | Purpose |
|---|---|
kotlin/plus/rua/project/ |
业务逻辑和根 Composable(见 kotlin/plus/rua/project/AGENTS.md) |
kotlin/plus/rua/project/ui/ |
UI 组件层(见 kotlin/plus/rua/project/ui/AGENTS.md) |
composeResources/ |
Compose 多平台资源(图片、文件)(见 composeResources/AGENTS.md) |
For AI Agents
Working In This Directory
- 所有新功能代码优先放在
commonMain以保持跨平台兼容 - 仅在需要平台 API 时使用
expect/actual模式 CalendarViewModel.kt是核心状态枢纽,修改需谨慎
Testing Requirements
- 修改后运行
./gradlew :shared:allTests - 状态逻辑测试在
commonTest中
Common Patterns
@Suppress("DEPRECATION")用于monthNumber访问时需加解释注释- 公共
@Composable函数需要 KDoc(见COMMENTS.md) Modifier参数始终放在签名最后- 回调参数使用
on前缀(onDateClick、onMonthChanged) - UI 文本使用中文
Dependencies
External
- Compose Multiplatform, Material 3
kotlinx-datetime,kotlinx-coroutinestyme4kt(农历/节气/节日)sketch(GIF 显示)androidx-lifecycle-viewmodel-compose