Overview
一个 SwiftUI + SwiftData 的离线优先 iOS App,覆盖城市信息流、发布、互动、私信、通知、城市频道和会员能力。
一个 SwiftUI + SwiftData 的离线优先 iOS App,覆盖城市信息流、发布、互动、私信、通知、城市频道和会员能力。
技术栈
我的角色
iOS 架构、SwiftUI 实现、本地数据层、同步服务与产品功能设计
核心挑战
城市生活社区需要同时支持复杂互动、离线浏览、草稿暂存、账号同步和双端一致性,不能只是一个简单信息流。
解决方案
我用 SwiftData 构建本地持久层,用 MVVM + Repository + Service 分层管理复杂状态,用 Keychain 管理凭据,并通过 RemoteSyncService 与统一后端对齐。
最终结果
App 形成了可离线运行、可恢复、可同步、可扩展的原生客户端基础,支持首页、发现、通知、私信、我的、发布和设置等核心模块。
一个 SwiftUI + SwiftData 的离线优先 iOS App,覆盖城市信息流、发布、互动、私信、通知、城市频道和会员能力。
Machi iOS 要处理的是本地生活里的复杂信任关系。城市、语言、频道、内容类型和互动状态都影响用户是否愿意继续使用。
Machi 是面向城市本地生活和同城社交的 iOS 客户端。它希望把租房、二手、工作、招聘、约饭、活动、问答、避坑经验和本地服务重新组织到城市和语言维度里。
我负责 iOS 原生客户端的架构设计、SwiftUI 页面实现、本地 SwiftData 数据层、认证与同步服务,以及与 Web / 后端的数据契约对齐。
离线优先不是简单缓存。真正的挑战是让用户在未联网时仍能浏览和起草,在恢复连接后又能安全地与后端状态对齐。
Machi iOS 的价值在于它不是一个临时 Demo,而是一个具备真实产品复杂度的原生 App:有本地韧性、有双端同步、有隐私边界,也有长期扩展空间。
Machi iOS 要处理的是本地生活里的复杂信任关系。城市、语言、频道、内容类型和互动状态都影响用户是否愿意继续使用。
SwiftUI 负责界面与导航,SwiftData 负责离线持久化,Repository 隔离本地读写,Service 管理认证、网络、同步、媒体和偏好,Keychain 保存凭据。
离线优先的难点是恢复连接后的对齐。用户在本地做的动作、远端已经变化的状态、失败的同步任务,都需要明确策略。
一个整合笔记、目标、内容灵感和 AI 辅助规划的个人操作系统。
为需要作品深度和编辑控制权的创作者打造的内容管理体验。