专为长辈与深度阅读者设计的高清晰、大字排版有声圣经。基于 Flutter + Rust 混合架构构建,兼顾跨平台优雅交互与原生高性能音频调度。
本项目核心业务代码与 Rust 底层库全面支持四大主流操作系统:
| 平台 | 状态 | 适用说明 |
|---|---|---|
| 🤖 Android | 🌟 正式发布 | 沉浸式无状态栏阅读、前台通知栏播控、高保真原生 TTS 与真人语音 |
| 🖥️ macOS | 🌟 正式发布 | 支持 Apple Silicon (M系列) 与 Intel 双架构独立原生瘦身版 |
| 📱 iOS | 🛠️ 源码完备 | 支持 iPhone / iPad,工程目录位于 ios/ |
| 💻 Windows | 🛠️ 源码完备 | 支持 Windows 10/11,工程目录位于 windows/ |
enyan/
├── lib/ # Flutter 跨平台业务代码
│ ├── core/ # 核心服务层 (音频播放调度、数据库驱动、设置、依赖注入)
│ │ ├── services/playback_coordinator.dart # 全局播放与高亮同步协调器
│ │ └── database/database_helper.dart # SQLite 圣经数据存取
│ ├── features/ # 业务功能模块
│ │ ├── bible_reading/ # 圣经章节阅读、大字排版与悬浮毛玻璃播控栏
│ │ └── settings/ # 语音引擎切换、音色微调、简繁体语言设置
│ ├── src/rust/ # Flutter Rust Bridge 自动生成的 Dart 绑定层
│ └── main.dart # 应用统一入口(全局粘性沉浸模式)
├── android/ # Android 原生工程(沉浸模式注入、媒体通知栏通信)
├── ios/ # iOS 原生 Xcode 工程
├── macos/ # macOS 原生 Xcode 工程(沙盒权限、音频输出配置)
├── windows/ # Windows 原生 CMake 工程
├── rust/ # Rust 本地高性能核心库 (文本处理、分词、TTS 原生绑定)
├── rust_builder/ # CargoKit 跨平台 Rust 自动化编译套件
├── assets/ # 应用内置核心资源
│ ├── chs/ # 简体和合本 SQLite 数据库、字库与词典
│ ├── cht/ # 繁体和合本 SQLite 数据库、字库与词典
│ └── audio_timestamps.json # 经文时间戳索引(毫秒级高亮对应)
├── screenshots/ # 真实设备效果截图
├── scripts/ # 离线数据清洗、字库精简与音频转码脚本
├── server/ # 本地离线音频资源测试服务 (Mock HTTP Server)
├── test/ # 自动化单元测试
├── dev.sh # 跨平台一键开发与本地调试脚本
└── release.sh # 跨平台自动化构建、瘦身与多架构发布脚本
- Flutter SDK:3.22+(运行
flutter doctor确认环境正常) - Rust:1.75+(运行
cargo --version) - Flutter Rust Bridge (FRB v2):
cargo install flutter_rust_bridge_codegen@^2.0.0
# 获取依赖
flutter pub get
# 代码静态分析 (应保持 0 错误)
flutter analyze lib/ test/
# 运行核心单元测试
flutter test
# 清理历史构建缓存并重置环境
./dev.sh clean# 方式一:使用内置快捷脚本
./dev.sh macos
# 方式二:标准 Flutter 命令
flutter run -d macos- 终端按
r进行热重载(Hot Reload),按R重启(Hot Restart)。
本项目在红米(Redmi)真机上做了深度全屏沉浸与通知栏播控调优:
- 手机开发者设置:
- 打开手机【设置】 -> 【我的设备】 -> 【全部参数】,连点【OS版本】7次开启开发者模式。
- 进入【更多设置】 -> 【开发者选项】,开启 USB 调试、USB 安装 与 USB 调试 (安全设置)。
- 确认设备连接:
adb devices # 识别到如 49hesoeuv4m7zdrw device 即表示联通 - 一键启动真机调试:
./dev.sh android
- 实时日志观察:
# 查看经文高亮同步、TTS 或音频播放日志 adb logcat -s flutter
- iOS:在 Mac 上执行
cd ios && pod install,使用 Xcode 打开ios/Runner.xcworkspace运行至模拟器或 iPhone 真机。 - Windows:在已配置 Visual Studio C++ 环境的 Windows 设备上运行
flutter run -d windows。
项目内置自动化发布脚本 release.sh,能够全自动完成多架构 Android APK 编译、macOS Universal 瘦身分离、代码深度重新签名与 ZIP 压缩打包:
./release.sh自动输出产物 (build/release/):
| 平台与架构 | 产物文件名 | 大小 | 适用设备 |
|---|---|---|---|
| Android arm64 | enyan-android-arm64.apk |
~44 MB | 主流现代 64 位安卓手机(Redmi Note/K 系列、华为、小米、Galaxy 等) |
| Android armv7 | enyan-android-armv7.apk |
~38 MB | 老旧 32 位安卓手机设备 |
| macOS Silicon | enyan-macos-arm64.zip |
~37 MB | Apple Silicon 芯片 Mac(M1、M2、M3、M4 系列原生架构,经 lipo 瘦身重签) |
| macOS Intel | enyan-macos-x64.zip |
~39 MB | Intel 酷睿芯片 Mac(原生 x86_64 架构,经 lipo 瘦身重签) |
| (macOS 通用版) | enyan-macos-universal.zip |
~60 MB | 全架构双兼容备用包 |
Note
- 根据发布策略,已全面剔除 Android 模拟器 (x86_64) 包,避免无谓的编译耗时并精简分发体积。
- Android 各架构 APK 已通过
--split-per-abi精简独立架构,相较于全量 Fat APK 体积减少近半。
- Android 真机发布包(仅 arm64 与 armv7):
flutter build apk --release --split-per-abi --target-platform=android-arm,android-arm64
- macOS 桌面发布包:
flutter build macos --release
- 真机安装验证 Release 包:
adb install -r build/release/enyan-android-arm64.apk
应用在真机上提供极简纯粹的大字阅读与贴心听经体验:
- 自适应滚动沉浸:向上滚动浏览经文时,顶部标题栏平滑隐藏;向下滚动时自动唤出。
- 穿透悬浮毛玻璃播控栏:无论是展开还是收起,经文全屏穿透至底部,伴随 5% 透光磨砂玻璃质感。
- 毫秒级字句同步高亮:朗读定位精准对应圣经经文字句。