深入理解 SwiftUI 工作原理和思考方式,为新时代的 Apple 平台开发和计算革命奠定基础。

与 UIKit 这样的传统面向对象的 UI 构建方式相比,SwiftUI 有着天壤之别。声明式的构建方式可以天生避免一系列 app 开发中的最常见错误。不过,这需要我们使用不同以往的思考方式,来处理可能面临的新问题和新需求。

本书详细解释了 SwiftUI 编程中最重要的一些概念,让你能够在很快时间内建立起 SwiftUI 的编程思想,以此快速完成向全新编程范式的转换。

本书内容

  • 视图树和渲染树

    正确理解 SwiftUI 中视图的更新原理,自然理解其使用方式

  • 视图布局

    布局算法基础以及内建视图的布局方式

  • 状态管理和绑定

    剖析 SwiftUI 状态管理背后的秘密,明确状态和视图的关系

  • 环境值

    整理贯穿于 SwiftUI 框架设计理念背后的依赖关系

  • 自定义布局

    使用锚点和协议等其他布局技术创建自定义布局

  • 最新话题

    根据研习班教学经验,结合最新技术所总结的最新话题


关于作者

  • Chris Eidhof

    Chris 是 objc.io 的创始人之一。他之前是一名 Haskell 程序员,最近几年 Chris 专注于 Apple 平台并进行了深入研究。

  • Florian Kugler

    Florian 是 objc.io 的创始人之一。他已经对 OOP 编程范式如数家珍,现在他正在研究单子和函子的终极奥义。

关于译者

  • 王巍

    ObjC 中国的创始人之一,objc.io 书籍翻译工作组织者。使用 onevcat 作为 ID 活跃在中国 iOS 开发界,Swift 使用者。


常见问题

  • 这本书和《SwiftUI 编程思想 (旧版)》有什么不同?

    随着 SwiftUI 的剧烈变动,旧版中的很多内容已经发生了较大变化。我们很难通过修补的方式在旧版上更新,因此在 2023 年完全重写了本书。只是为了掌握最新技术的话,您不再需要阅读旧版的内容。

  • 这本书针对的 Swift 版本是?

    本书是针对 Swift 5.9 和 iOS 17 中的 SwiftUI 框架编写的。今后如果发生变化,我们将及时更新本书。

  • 阅读本书需要 Swift、SwiftUI 或 UIKit 知识吗?

    我们希望您至少使用 Swift 和 UIKit 进行过开发。本书的主要目标是为您介绍 SwiftUI 的思考方式及工作原理,所以 UIKit 经验或者 SwiftUI 经验会有很大帮助。

  • 这本书是 objc.io 的英文书,为什么会有中文版本?

    我们是 “ObjC 中国” 组织,我们与 objc.io 展开了深度合作,并获得了 objc.io 的授权,在中国拥有这系列图书的独占翻译和销售权。

  • 中文版和英文版有什么不同?会保持同步吗?

    中文版和英文原版内容是一致的。书中偶有难以理解或国内鲜见的语汇,对此我们通过译注的形式进行了进一步的解释,以帮助读者理解。本书将继续更新并和英文版保持同步,但是在中英文版更新之间会有一定时间差。

  • 翻译书籍一般都很烂,这本书的质量可以信任吗?

    “ObjC 中国”致力于最优秀的翻译作品,我们希望能将先进的 Swift 开发技术以更易懂的方式介绍给中文社区的开发者们。本书由国内有深厚英文背景的一线开发者花费大量时间和精力翻译,由 onevcat 逐句进行审核。我们保证,本书一定会是一本由开发者书写,经开发者翻译,最终提供给开发者阅读的优秀图书。

  • 我能在什么设备上阅读本书?

    我们提供排版精美且 DRM free 的 PDF 格式图书,这意味着您可以在任意带有 PDF 阅读器的桌面或移动平台上进行阅读。

  • 付款方式是怎样,我能获得后续更新吗?

    您可以通过信用卡、支付宝或者微信支付进行付款,在购买时请确认您填写了正确的邮箱地址,您将可以通过邮箱地址和账号在本站下载书籍的后续更新。但根据更新策略,在内容剧烈变动时我们可能会推出全新的替代版本,届时您可能将需要重新购买。

  • 为什么付款时的价格和网站表示稍有不同?

    我们的结算服务不能直接收取人民币,因此最终价格是经过订单生成时的汇率换算后的价格,可能会与原价有些许不同。

  • 我成功购买了,但是下载失败或者下载没有开始?

    如果在订单完成后连接中断或者速度很慢的话,请检查或者更换您的网络设置后,使用购买时的邮箱登录进行下载。如果依然存在问题,请联系我们。

  • 除了本书,还有其他推荐的图书吗?

    请您关注本站的书籍页面以获取更多信息。

  • 我还有其他问题。

    欢迎使用邮件联系我们,我们随时准备好为您提供服务。