yayacal/README.md
xfy c591bc389b docs: 修复代码审查发现的问题(README 坏链 + 原图归宿说明)
审查发现 2 个问题:

1. README.md:6 坏链 [必须修]
   - <img src="app/src/main/assets/app_icon.png"> 指向 Task 1 已删的 PNG
   - 改为 core/src/main/assets/app_icon.webp (现存的应用内图标, 512px)
   - 加 width/height=128 限制展示尺寸 (原图无尺寸约束会撑满)

2. app/assets/AGENTS.md 原图归宿说明模糊 [建议修]
   - 原写"源文件放仓库外或 .assets-source/" 但两者都不存在, 误导
   - 改为明确: 原图 app_icon_original.png (2048px) 保留在 git 历史
     commit a36f6c4, 用 git show 恢复, 生成脚本见实施计划 Task 5

审查驳回的建议 (附理由):
- <mipmap> 间接引用: 审查自承"通常能工作", 且 Task 5 已模拟器实机
  验证渲染正常 (analyze_image 确认黄色主体居中无裁切)。
  <mipmap> 标签按密度选桶是启动器前景的标准做法, 不改。
- baseline-prof lambda hash: Task 3 commit 已说明"下次 updateBaselineProfile
  校准", 且 hash 失效是静默降级不报错, 不阻塞合并。

验证: ./gradlew :app:assembleDebug → BUILD SUCCESSFUL
2026-06-15 14:13:26 +08:00

52 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# YaYa
纯 Android + Jetpack Compose 日历应用,支持农历/节气/节日、个人班次排期,提供月/周/年三种视图。
<div>
<img src="core/src/main/assets/app_icon.webp" width="128" height="128" />
</div>
## 特性
- **流畅的视图切换** —— 月视图、周视图、年视图三种模式,拖拽手势驱动月↔周折叠,弹簧动画自动吸附
- **无限滑动分页** —— 基于 `Int.MAX_VALUE` 的虚拟分页,前后无边界翻页
- **完整中式日历** —— 公历 + 农历 + 二十四节气 + 传统节日ISO 8601 周起始(周一)
- **个人排班周期** —— 自定义工作/休息循环,与公共节假日独立
- **Material 3 设计** —— 动态配色,深色模式
## 技术栈
- Kotlin 2.3 · Jetpack Compose · Material 3
- `kotlinx-datetime` 处理所有日期逻辑
- `tyme4kt` 提供农历、节气与传统节日
- `sketch` 渲染 GIF 动画
- 双模块:`:core`UI + 逻辑) · `:app`(薄壳)
## 构建
```bash
# Debug
./gradlew :app:assembleDebug # 构建 debug APK
./gradlew :app:installDebug # 安装 debug APK 到设备
# Release
./gradlew :app:assembleRelease # 构建 release APK
./gradlew :app:installBenchmark # 安装 benchmarkrelease + 可调试APK
# 测试
./gradlew :core:testDebugUnitTest # 运行全部测试
./gradlew :core:testDebugUnitTest --tests "plus.rua.project.ui.CalendarUtilsTest" # 运行单个测试
# Baseline Profile需要连接设备
./gradlew :macrobenchmark:updateBaselineProfile # 一键生成 + 自动复制到 :core
./gradlew :macrobenchmark:connectedBenchmarkAndroidTest # 仅运行基准测试
# 性能 Profiling需要连接设备
./scripts/profile.sh # 默认 8 秒
./scripts/profile.sh 15 # 自定义时长
```
构建产物位于 `app/build/outputs/apk/<variant>/` 目录。
线条小狗表情包来自 https://www.douban.com/group/topic/264788645/?_i=9181692phrDzjR,9241256phrDzjR