Skip to content

Repository files navigation

YaYa

纯 Android + Jetpack Compose 日历应用,支持农历/节气/节日、个人班次排期,提供月/周/年三种视图。

特性

  • 流畅的视图切换 —— 月视图、周视图、年视图三种模式,拖拽手势驱动月↔周折叠,弹簧动画自动吸附
  • 无限滑动分页 —— 基于 Int.MAX_VALUE 的虚拟分页,前后无边界翻页
  • 完整中式日历 —— 公历 + 农历 + 二十四节气 + 传统节日,ISO 8601 周起始(周一)
  • 个人排班周期 —— 自定义工作/休息循环,与公共节假日独立
  • Material 3 设计 —— 动态配色,深色模式
  • 双账号朋友圈 —— 小白与小鸡毛各自拥有主页、头像和封面,支持图文发布、点赞、评论回复、私密动态、搜索、相册与互动消息;通过独立后端同步

技术栈

  • Kotlin 2.3 · Jetpack Compose · Material 3
  • kotlinx-datetime 处理所有日期逻辑
  • tyme4kt 提供农历、节气与传统节日
  • sketch 渲染动画 WebP
  • 三模块::core(UI + 逻辑) · :app(薄壳) · :macrobenchmark(Baseline Profile / Startup Profile 生成)
  • 朋友圈后端:server/,Rust Axum + PostgreSQL,独立于 Gradle 构建

朋友圈后端

启动、依赖版本、接口、备份和集成测试见 server/README.md。应用的账号选择页提供「连接设置」,填写后端地址后直接选择小白或小鸡毛,不使用密码。两个账号的主页和通知独立,公开动态可互相查看、点赞和评论。

日历功能保持离线可用。旧版本本机朋友圈数据保留原样,不会自动上传或猜测作者归属。朋友圈写入以服务器确认成功为准,失败保留草稿供重试。

构建

# Debug
./gradlew :app:assembleDebug          # 构建 debug APK
./gradlew :app:installDebug           # 安装 debug APK 到设备

# Release
./gradlew :app:assembleRelease        # 构建 release APK
./gradlew :app:installBenchmark       # 安装 benchmark(release + 可调试)APK

# 测试
./gradlew :core:testDebugUnitTest                          # 运行全部测试
./gradlew :core:testDebugUnitTest --tests "plus.rua.project.ui.CalendarUtilsTest"  # 运行单个测试

# Baseline Profile / Startup Profile(需要连接设备)
./gradlew :macrobenchmark:updateBaselineProfile       # 生成并复制两份 Profile 到 :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

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages