一个综合性的生活管理应用,帮助用户高效管理日常事务。
lib/ ├── core/ # 核心模块 │ ├── bloc/ # BLoC基类和观察者 │ ├── constants/ # 常量定义 │ ├── providers/ # 全局提供者(主题) │ ├── services/ # 服务层(Isar、高德地图、应用初始化) │ ├── theme/ # 主题配置 │ ├── utils/ # 工具类 │ └── widgets/ # 通用组件 ├── features/ # 功能模块 │ ├── home/ # 首页(底部导航外壳) │ ├── plan/ # 计划管理 │ │ ├── data/models/ # Isar 模型 │ │ └── presentation/ │ │ ├── bloc/ # 状态管理 │ │ ├── pages/ # 页面 │ │ └── widgets/ # 功能组件 │ ├── daily/ # 随记 │ │ ├── data/models/ │ │ └── presentation/ │ ├── asset/ # 资产管理 │ │ ├── data/models/ │ │ └── presentation/ │ ├── password/ # 密码管理 │ │ ├── data/models/ │ │ └── presentation/ │ └── profile/ # 个人中心 │ ├── data/models/ │ └── presentation/ └── main.dart # 应用入口
git clone <repository-url>
cd keji_app
flutter pub get
dart run build_runner build --delete-conflicting-outputs
flutter run
项目提供了便捷脚本:
# 安装依赖并运行应用
./scripts/run.sh
# 构建 APK(发布版)
./scripts/build-apk.sh --release
# 构建 APK(调试版)
./scripts/build-apk.sh --debug
应用启动时会自动初始化必要的资源:
首次开发时,需要确保资源文件存在:
# 开发环境初始化(创建缺失的资源文件)
dart run scripts/setup.dart
创建 .env 文件并配置:
# 高德地图 API Key(用于位置服务,可选) AMAP_API_KEY=your_amap_api_key_here
在云端开发环境(如 CNB)开发时,可以通过 FRP 端口转发将 Flutter 应用运行到本地的安卓模拟器。
如果模拟器已经通过公网暴露(如 <IP>:16384),直接连接即可:
# 连接远程模拟器
adb connect <IP>:16384
# 确认连接
adb devices
# 运行 Flutter 应用
flutter run -d <IP>:16384
如果模拟器在本地,需要通过 FRP 转发到云端:
以 MuMu 模拟器为例,默认端口为 16384:
# 连接 MuMu 模拟器确认端口可用
adb connect 127.0.0.1:16384
# 确认连接成功
adb devices
本地 frpc.toml:
serverAddr = "你的FRP服务器地址"
serverPort = 7000
[[proxies]]
name = "adb"
type = "tcp"
localIP = "127.0.0.1"
localPort = 16384
remotePort = 16384
启动本地 frpc:
./frpc -c frpc.toml
在云开发环境中:
# 通过 FRP 连接到本地模拟器
adb connect 127.0.0.1:16384
# 确认设备已连接
adb devices
# 运行 Flutter 应用
flutter run
| 模拟器版本 | 默认 ADB 端口 |
|---|---|
| MuMu 模拟器 12 | 16384(多开实例依次递增) |
| MuMu 模拟器 Pro (Mac) | 16384 |
| MuMu 模拟器 6/7 | 7555 |
adb connect所有敏感数据都经过AES-256加密存储:
@collection 注解定义模型Id id - Isar 内部使用的自动增量 ID(int)String xxxId - 业务使用的字符串 IDdart run build_runner build修改 Isar 模型后,需要重新生成适配器:
# 一次性生成
dart run build_runner build --delete-conflicting-outputs
# 监听模式(开发时推荐)
dart run build_runner watch --delete-conflicting-outputs
# 运行静态分析
flutter analyze
# 运行测试
flutter test
# 格式化代码
dart format lib/
# 清理构建缓存
flutter clean
# 升级依赖
flutter pub upgrade
欢迎提交 Issue 和 Pull Request!
MIT License
可记开发团队