公司动态
从零开始为Cobble贡献代码:开发环境搭建与项目结构完整解析
从零开始为Cobble贡献代码开发环境搭建与项目结构完整解析【免费下载链接】mobile-appCobble: Rebble device companion app for iOS and Android项目地址: https://gitcode.com/gh_mirrors/mobi/mobile-appCobble 是 Rebble 社区为 Pebble/RebbleOS 智能手表打造的开源伴侣应用覆盖 iOS 与 Android 双平台代码完全开放。本文为想给 Cobble 贡献代码的新手准备了一份开发环境搭建保姆级教程并带你完整梳理项目结构理解 Flutter 与 Kotlin Multiplatform 混合架构的协作方式帮你用最短时间从「看得懂」到「改得动」迈出提交第一个 Pull Request 的第一步。为什么值得为 Cobble 贡献代码Cobble 不是普通的玩具项目而是一个「技术含量拉满」的真实产品跨平台实战Flutter UI Kotlin Multiplatform 共享逻辑 原生 Swift/Kotlin 蓝牙协议栈一套代码同时服务 Pebble 手表生态。真实硬件对接涉及 BLE 蓝牙、经典蓝牙串口、Speex 语音编解码等底层技术学习价值极高。社区友好项目文档、代码风格规范、Golden 测试一应俱全非常适合作为第一个开源贡献目标。如果你熟悉 Flutter 或 Kotlin 任一方向都能在这里找到合适的切入点。搭建 Cobble 开发环境需要哪些准备动手前先核对这份「装备清单」依赖说明Git拉取仓库与子模块Flutter SDK项目通过 FVM 锁定版本见.fvmrcAndroid StudioAndroid 端构建与模拟器Xcode可选仅 iOS 开发需要GitHub Token需read:packages权限用于拉取 libpebblecommonsCocoaPods仅 iOS 构建需要注意Cobble 对 Flutter 版本有严格要求因此官方推荐使用 FVMFlutter Version Management来安装指定版本避免「本地能跑、提交就挂」的版本不一致问题。最简配置步骤从克隆到首次运行第一步克隆仓库并初始化子模块git clone https://gitcode.com/gh_mirrors/mobi/mobile-app cd mobile-app git submodule update --init --recursive子模块包含 Speex 语音编解码库speex、speexdsp、kissfft漏掉这一步会导致原生编译失败。第二步配置 GitHub Token 与 local.propertiesCobble 依赖 GitHub Packages 上的 libpebblecommons 私有包因此需要生成一个带read:packages权限的 Token然后在android目录下创建local.properties文件并写入GITHUB_ACTOR你的GitHub用户名 GITHUB_TOKEN生成的Token第三步用 FVM 安装锁定版本 Flutter# Ubuntu 系列可参考 sudo snap install flutter --classic dart pub global activate fvm # 在项目根目录执行自动安装 .fvmrc 指定的版本 fvm install第四步拉取依赖并运行fvm flutter pub get fvm flutter emulators --launch Pixel_2_API_30 fvm flutter runiOS 专属安装 CocoaPodsbrew install ruby sudo gem install cocoapods之后执行fvm flutter build ios会自动触发pod install再用 Xcode 打开ios/Runner.xcodeproj即可构建。Cobble 项目结构完整解析搭建好环境后理解目录结构是快速上手的关键。Cobble 采用「Flutter 壳 原生内核 KMP 共享层」的三层架构lib/Flutter 界面层所有 Dart 代码都在 lib 目录下入口文件为 main.dartlib/domain业务领域模型包括 API 客户端、数据库 DAO、通知、时间线等。lib/ui界面组件与页面内置一套自研组件库CobbleCard、CobbleTile 等统一通过主题管理样式。lib/localization由lang目录下的 JSON 自动生成的多语言模型。lib/infrastructure基础设施包括 SQLite 数据源、Pigeon 桥接代码等。android/sharedKotlin Multiplatform 共享层这是 Cobble 架构的核心亮点。android/shared 是一个 KMP 模块用 Kotlin 编写、通过commonMain共享业务逻辑数据库、通知、时间线、JS 运行时等再分别编译到 Android 与 iOS。开发新功能时优先考虑把逻辑放进共享层两端都能复用。android/原生 Android 模块android/appAndroid 应用壳包含蓝牙扫描、设备连接、Flutter Bridge 等原生代码。android/pebble_bt_transport独立封装的 Pebble 蓝牙传输层含 BLE 与经典蓝牙实现。android/pebblekit_android兼容 PebbleKit 旧 API 的适配库。android/speex_codec语音编解码的 C 原生实现。ios/原生 iOS 模块ios/Runner 下同样有完整的蓝牙层bluetooth、Bridge 层bridges与 Pebble 协议处理PebbleProtocol与 Android 端一一对应。lang/ 与 pigeons/两个容易被忽略的关键目录lang每种语言一个 JSON 文件如 en.json新增文案后运行 build_runner 即可生成多语言模型。pigeonsPigeon 接口定义文件 pigeons.dart负责 Flutter 与原生之间的类型安全通信改完需要重新生成各端桥接代码。新手必会的三个开发命令1. 生成映射代码项目大量使用代码生成JSON 序列化、数据库映射、多语言模型修改相关文件后必须执行fvm flutter pub run build_runner build --delete-conflicting-outputs2. 重新生成 Pigeon 桥接修改了 pigeons/pigeons.dart 后需要按 README 中的命令同步生成 Dart、Java、Objective-C 三端代码确保通信接口一致。3. 运行测试fvm flutter testCobble 为 UI 组件准备了完整的 Golden 快照测试图片存放在 test/components/goldens修改组件样式后记得核对快照是否变化。给贡献者的四点上手建议从 UI 组件入手先熟悉 lib/ui/common/components 下的 Cobble 系列组件改样式、加页面是风险最低的练手方式。先读 README 再写代码项目根目录 README.md 详细说明了主题规范、导航规范与本地化规范遵循社区约定能大幅减少 Review 往返。逻辑尽量下沉到共享层能用 android/shared 的 Kotlin 代码解决的问题就不要在两端各写一遍。提交前必跑测试Golden 测试与单元测试是 CI 的第一道门槛本地先过一遍再发起 Pull Request。总结Cobble 是一个架构清晰、文档完善、双平台实战的开源项目从开发环境搭建到代码提交的路径并不复杂克隆仓库 → 初始化子模块 → 配置 Token 与 FVM → 跑通一次运行 → 从 UI 组件开始你的第一个改动。希望这份 Cobble 开发环境搭建与项目结构解析能帮你跨过门槛早日成为 Rebble 社区的一员【免费下载链接】mobile-appCobble: Rebble device companion app for iOS and Android项目地址: https://gitcode.com/gh_mirrors/mobi/mobile-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考