Scrumdinger最终界面

以Apple的方式学SwiftUI:苹果官方SwiftUI教程一览

Posted by

从SwiftUI诞生之日,苹果就提供了官方的step by step教程。最初的SwiftUI教程是手把手教着做一个名为Landmarks的生活记录类应用。2020年底,苹果公布了一款新的教程:一款名为Scrumdinger的小会议管理应用。在学习了一段时间之后,发觉Scrumdinger教程似乎更适合初学者。

简单来说,这两款官方教程目的不尽相同。Landmarks教程侧重于展示SwiftUI强大的界面设计能力,尽可能简化和抽象程序的“后台”设计;Scrumdinger教程被苹果赋予“iOS App Dev with SwiftUI”的标题,因此更侧重于“手把手”教iOS程序开发。

首先,Landmarks教程比较“老”,截图使用的是Xcode 12的beta版本(比如View的菜单中没有最新版中的“Embedded in ZStack”选项),相关内容也是基于SwiftUI 1.0版本。而Scrumdinger教程完全基于SwiftUI 2.0。

真正的iOS应用

通过Scrumdinger教程,苹果想“培养”一批规范化的iOS开发者:

  • 规范使用Swift语法及SwiftUI
  • 规范化的软件开发基本素养
  • Accessibility友好

譬如,在“Creating a CardView”章节中,为了更为清晰地展示DailyScrum的model,苹果给出了DailyScrum的类图:

DailyScrum类图
DailyScrum类图

但是在教程文本中,苹果并未提及“类图(Class Diagram)”这个概念,也没有提及这里所谓的“model”是“MVC框架”中的一部分。由此可以看出,Scrumdinger教程需要一定的软件开发基本知识。

此外,和市面上一些喜欢“炫技”的SwiftUI教程不同,苹果更注重在构建一款功能完整的应用基础上,提供实用、简洁且易于开发的界面,同时提供完整的accessiblity支持。其他教程即使介绍了accessiblity,也往往放在教程后半部分,点到为止。这部教程在第一章就开始指导对界面元素提供完整的accessiblity支持。在之前就有自媒体介绍过iOS系统提供的极其完整且强大的accessiblity功能,iOS提供的“旁白”之类的视觉障碍辅助功能,也需要开发者在制作应用的时候专门设置。

Accessibility功能教程

因此,跟随该教程完成所有内容之后,所得到的“Scrumdinger”应用完全达到了提交AppStore的标准。

有趣的玩法

在这部教程中,苹果非常注重“实用性”。除了常用的UI编写、数据和UI绑定与更新、数据处理等方面的基本内容,为了增强该应用的实用性,苹果加入了“Recording Audio”章节。在这一章中,需要学习音频录取、音频转写文本等内容。这些是在市面上一些常见的教程中很少涉猎到的,这些功能的加入也大大提升了“Scrumdinger”这款应用的实用性。

Scrumdinger最终界面
Scrumdinger最终界面
Scrumdinger最终界面

只是SwiftUI

这篇教程虽然构建了一个功能全面、实用性好、界面优雅的应用,但是也缺乏一些构建App必需的内容:

没有网络支持

该应用没有使用网络API或者常见的对网络JSON的使用,也没有使用iCloud同步数据的内容。这些基本上是目前构建一个完整App需要具备的功能。

缺少对Combine的介绍

SwiftUI搭配Combine框架才足够强大。虽然不使用Combine框架也能够完完整整地开发出App,但是理解了Combine之后对于开发可谓如虎添翼。对于无处不在的网络调用,使用Combine框架可以更好地处理异步任务。

最后,happy coding!

打赏

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据