项目背景
Machi 是面向城市本地生活和同城社交的 iOS 客户端。它希望把租房、二手、工作、招聘、约饭、活动、问答、避坑经验和本地服务重新组织到城市和语言维度里。
我的角色
我负责 iOS 原生客户端的架构设计、SwiftUI 页面实现、本地 SwiftData 数据层、认证与同步服务,以及与 Web / 后端的数据契约对齐。
技术架构
- SwiftUI + NavigationStack:声明式 UI 与多 Tab 路由。
- SwiftData:版本化 Schema V5、迁移计划和多级恢复。
- Repository:封装本地实体读写。
- Services:认证、网络、同步、媒体缓存、地区目录、语言和通知偏好。
- Keychain:保存 Bearer Token,避免敏感凭据明文落地。
核心挑战
离线优先不是简单缓存。真正的挑战是让用户在未联网时仍能浏览和起草,在恢复连接后又能安全地与后端状态对齐。
结果与复盘
Machi iOS 的价值在于它不是一个临时 Demo,而是一个具备真实产品复杂度的原生 App:有本地韧性、有双端同步、有隐私边界,也有长期扩展空间。