BAB 项目概览
产品背景

一个海外品牌的
智能健身入口。

BAB 是倍益康为 Bob & Brad 定制的 iOS IoT 应用,把训练内容、按摩枪、跳绳、电商和门店导航收进同一套移动端体验。

这个项目的重点不是单个页面堆功能,而是如何在品牌独立、服务端独立的前提下复用国内 App 的网络、蓝牙和业务内核,同时把海外版产品定位做清楚。

角色
独立承担 iOS 开发、发布与维护
平台
iOS 13.0+,Swift 5 + Objective-C 桥接
架构
UIKit + Storyboard / XIB,MVC 组织
范围
训练计划、BLE 设备、电商 SKU、地图导航、用户系统
语言
Swift、Objective-C
结果与沉淀

先给读者看到,
这个项目留下了什么。

BAB 的价值不是把功能堆进海外版,而是把网络、蓝牙、电商、地图和体验组件沉淀成可复用能力。

品牌
独立部署,但不重复造轮子。

Bundle ID、服务器、资源和品牌皮肤独立,核心通信、网络和模型能力保持复用。

业务
训练、设备、商城和内容形成闭环。

用户从计划进入设备使用,再被电商、百科和门店服务承接,业务不是孤立页面。

证据
后面的章节都在展开证明。

系统难点、BLE 协议和 SKU/地图链路分别证明复用、扩展和业务完整度。

系统难点

难点不在功能多,
而在边界要稳。

定位
训练计划成为首页。

这让 Bob & Brad 的“内容驱动硬件使用”变成信息架构,而不是一句品牌口号。

复用
共享核心技术栈。

网络抽象、蓝牙协议、异步链和模型序列化不重写,只在品牌、端点和资源上隔离。

边界
5 个 Tab 各自维护导航栈。

计划、设备、商城、百科和我的独立演进,同时共享登录态、收藏、定位和网络能力。

设备智控

多套协议,
收进一个连接中枢。

路由
按设备类型分发协议实现。

蓝牙管理器只调度扫描、连接和生命周期,具体帧格式由各设备策略类处理。

并行
最多同时连接 2 台设备。

连接池维护外设状态,电量、固件版本和断开重连统一走 CBPeripheralDelegate 回调。

反馈
操作过程需要即时感知。

速度滑块拖动期间防抖下发 BLE 指令,扫描、连接和操作状态用轻量动画反馈。

商城与地图

电商不是列表,
而是一条交易链路。

商品
从 Banner 到详情再到收藏。

Kingfisher 图片加载、分类筛选、商品收藏和 SKU 选择组成完整商城链路。

库存
三级模型处理规格联动。

选择器遍历映射表定位价格和库存状态,避免规格展示与实际可售商品混在一起。

线下
多地图与多坐标系自动转换。

WGS-84、GCJ-02、BD-09 在跳转前完成转换,调用方只关心门店坐标。