一张图,理解苹果开发
你已经会开发应用。现在要换的是语言、UI 框架和运行环境,而不是重新学习所有编程知识。
用你的前端经验理解
TypeScript → Swift;React → SwiftUI;浏览器 → 操作系统;Vite + DevTools + IDE → Xcode。它们只是职责类比,并非一一兼容。
为什么需要它
假设你要做一个能离线保存文章的阅读 App。网页里经常一起出现的页面、请求和 localStorage,在原生工程里仍是不同职责。先把需求分到语言、界面、系统服务与分发四层,遇到问题才能知道应该查 Swift 语法、SwiftUI 文档,还是工程配置。学习顺序应围绕一个可运行功能推进,而不是先背完整个框架目录。
它是怎样工作的
一次点击可以这样追踪:SwiftUI 的 Button 收到动作,Swift 函数验证输入,存储服务写入模型,状态变化让列表更新。网络、通知和文件访问由系统框架提供;Xcode 把这些代码与资源构建为应用。它们并不是前后端的划分,原生 App 也可能需要你的 Hono 或 NestJS 后端来维护业务账号与共享数据。
把关键概念连起来
语言层
Swift 负责表达数据和逻辑;它本身不是 UI 框架,也不只用于苹果平台。
框架层
SwiftUI 以声明式方式描述 UI;UIKit 服务 iOS、iPadOS、tvOS 等;AppKit 面向 macOS。框架能互相桥接。
平台层
同一份业务逻辑可以复用,但窗口、导航、输入方式、权限与分发规则随平台变化。
拆解“稍后阅读”功能
- 输入网址:界面层负责输入框、键盘和保存按钮;网址是否合法属于可独立测试的 Swift 逻辑。
- 保存文章:本地仓库负责持久化;服务器抓取文章正文是另一项服务,可以稍后接入。不要把请求写进 View 的 body。
- 展示和恢复:列表读取仓库中的记录。关闭 App 再打开后仍然存在,才证明持久化闭环成立;多个设备一致则是后续同步问题。
这里需要你亲自判断
不要把 SwiftUI 当成换了语法的 React Native:它使用苹果的框架与平台能力,没有 DOM 和 CSS。
做一个小练习
画出一个阅读清单 App 的四层:Swift 数据模型、SwiftUI 页面、系统存储、iOS 运行环境。
- 画出输入、验证、保存、显示四个节点,在每个节点旁标出使用的语言或框架。
- 给“断网仍能添加文章”选一个数据所有者,并说明同步服务暂不可用时的行为。
展开参考思路与验收标准
一份合理答案是:SwiftUI 收集输入,Swift 模型保存网址和标题,本地仓库先落盘,列表观察数据变化。后端和 iCloud 都不是首个离线闭环的必要条件。能把“保存失败”定位到仓库边界,就比记住十个框架名称更有价值。