项目名称: 梅花易数 版本: Version 1.0 (MVP - 最小可行产品) 目标市场: 日本 技术栈: Kotlin, Jetpack Compose, MVVM + Repository, Room Database
Copyright © 2025 番创知库 (FanChuang Knowledge Base) License: Proprietary - All rights reserved
本项目是《梅花易数》Android 应用的最小可行产品 (MVP),旨在提供核心的起卦功能和具有哲学深度的解读,面向日本用户。
核心功能 (V1.0):
- 起卦方式: 硬币起卦、时间起卦、数字起卦。
- 结果展示: 显示卦象编号、卦名、卦辞、爻辞及其日语解读。
- 历史记录: 记录起卦历史,免费用户限制保存3条。
- 分享: 支持将起卦结果以文本形式分享。
- 设置: 包含应用内购买 (IAP) 和用户反馈入口。
- 入门指南: 提供“梅花易数入门”图文指南。
本项目采用 MVVM (Model-View-ViewModel) 架构模式,并结合 Repository 模式,以确保代码的可维护性和可扩展性。
| 层级 (Layer) | 职责 (Responsibility) | 关键组件 (Key Components) | 扩展性 (Extensibility) |
|---|---|---|---|
| UI (View) | 渲染界面,处理用户输入,观察ViewModel状态。 | MainActivity, MainScreen, DivinationScreen 等 Composable 函数。 |
易于替换主题、布局和添加新屏幕。 |
| ViewModel | 存储和管理UI相关数据,处理业务逻辑。 | HexagramViewModel, DivinationViewModel。 |
业务逻辑与UI分离,易于进行单元测试和状态管理。 |
| Repository | 抽象数据源,提供统一的数据访问接口。 | HexagramRepository, DivinationRecordRepository。 |
未来可轻松集成远程数据源(如 AI 解卦 API)。 |
| Data | 数据模型定义、本地数据源 (Room) 和远程数据源。 | Hexagram, DivinationRecord (Entity), MeihuaYishuDatabase, HexagramDao。 |
数据库表结构预留字段,方便未来添加用户笔记、收藏等功能。 |
| Logic | 核心业务逻辑实现,如起卦算法。 | DivinationEngine。 |
易于添加新的起卦方法(如事物占)。 |
- Android Studio (Arctic Fox 或更高版本)
- Kotlin 1.9.0+
- Gradle 8.0+
- Android SDK 34
- 克隆项目:
git clone [Your_Repository_URL] meihuayishu-android cd meihuayishu-android - 打开项目:
在 Android Studio 中打开
meihuayishu-android文件夹。 - 同步 Gradle: 等待 Gradle 同步完成,确保所有依赖项下载完毕。
- 运行应用: 选择一个模拟器或连接一个物理设备,点击 Android Studio 中的 Run 按钮。
| V2.0+ 目标功能 | 预留接口/扩展点 (V1.0) |
|---|---|
| AI 解卦 | Repository 层: HexagramRepository 和 DivinationRecordRepository 为未来集成网络层 (RemoteDataSource) 预留了接口。网络层 (Retrofit 等) 可在 V2.0 中添加。 |
| 日卦推送 | 数据层: DivinationRecord 实体可扩展字段以支持推送状态。逻辑层: DivinationEngine 已具备时间起卦基础,可用于每日卦象生成。 |
| 万物类象词典 | 数据层: Hexagram 实体已包含卦象基本信息,未来可添加 xiang_yi (象意) 字段或创建新的 XiangYi 实体。UI: 预留新的屏幕或组件来展示词典内容。 |
| 分享功能增强 | 工具类: ShareUtil 已创建,未来可扩展方法以生成更精美的分享图片(如使用 Canvas 或 Bitmap)。 |
| 新的起卦方式 | 逻辑层: DivinationEngine 是一个 object,可直接扩展新的 fun newDivinationMethod(...)。UI: DivinationScreen 易于添加新的按钮和输入界面。 |
| 用户笔记/收藏夹 | 数据层: DivinationRecord 已包含 is_favorite 字段。未来可添加 user_note 字段。 |
- 用途: 存储所有64卦的卦辞、爻辞及其日语解读。
- 格式: JSON数组。
- 可扩展性: 未来版本可直接修改此文件或通过远程配置更新此数据,以实现内容更新。
- 用途: 存储应用名称、提示文本等字符串资源。
- 本地化: 针对日本市场,所有用户可见文本都应在此文件中进行日语本地化。
文件列表 (V1.0):
README.md(当前文件)app/src/main/assets/meihuayishu_data.jsonapp/src/main/java/cn/loveapple/divination/MainActivity.ktapp/src/main/java/cn/loveapple/divination/MeihuaYishuApp.ktapp/src/main/java/cn/loveapple/divination/data/DataImporter.ktapp/src/main/java/cn/loveapple/divination/data/dao/DivinationRecordDao.ktapp/src/main/java/cn/loveapple/divination/data/dao/HexagramDao.ktapp/src/main/java/cn/loveapple/divination/data/database/MeihuaYishuDatabase.ktapp/src/main/java/cn/loveapple/divination/data/entity/DivinationRecord.ktapp/src/main/java/cn/loveapple/divination/data/entity/Hexagram.ktapp/src/main/java/cn/loveapple/divination/data/model/HexagramDetail.ktapp/src/main/java/cn/loveapple/divination/data/model/YaoCi.ktapp/src/main/java/cn/loveapple/divination/data/repository/DivinationRecordRepository.ktapp/src/main/java/cn/loveapple/divination/data/repository/HexagramRepository.ktapp/src/main/java/cn/loveapple/divination/logic/DivinationEngine.ktapp/src/main/java/cn/loveapple/divination/ui/screen/DivinationResultScreen.ktapp/src/main/java/cn/loveapple/divination/ui/screen/DivinationScreen.ktapp/src/main/java/cn/loveapple/divination/ui/screen/HistoryScreen.ktapp/src/main/java/cn.loveapple/divination/ui/screen/HomeScreen.kt(已合并到MainScreen.kt)app/src/main/java/cn/loveapple/divination/ui/screen/IntroductionScreen.ktapp/src/main/java/cn/loveapple/divination/ui/screen/MainScreen.ktapp/src/main/java/cn/loveapple/divination/ui/screen/SettingsScreen.ktapp/src/main/java/cn/loveapple/divination/ui/theme/Theme.ktapp/src/main/java/cn/loveapple/divination/ui/theme/Type.ktapp/src/main/java/cn/loveapple/divination/ui/viewmodel/DivinationViewModel.ktapp/src/main/java/cn/loveapple/divination/ui/viewmodel/HexagramViewModel.ktapp/src/main/java/cn/loveapple/divination/ui/viewmodel/ViewModelFactory.ktapp/src/main/java/cn.loveapple/divination/ui/viewmodel/ViewModelProvider.ktapp/src/main/java/cn/loveapple/divination/util/ShareUtil.ktapp/src/main/AndroidManifest.xmlapp/build.gradle.ktsbuild.gradle.ktssettings.gradle.ktsgradle.propertiesapp/proguard-rules.proapp/src/main/res/values/colors.xmlapp/src/main/res/values/strings.xmlapp/src/main/res/values/themes.xml.gitignore