什么是 Swift ?
Swift是一种由Apple设计的现代开源编程语言,用于为 Apple 的生态系统(iOS、watchOS、macOS、tvOS)构建应用程序。它由Chris Lattner于 2014 年创建,作为其前身 Objective-C 的替代品,开发效率要高得多,上手难度更低。并且可以与 Apple 的两个关键框架 Cocoa 和 CocoaTouch 互操作。
Swift 易于学习,语法读起来很像英语,使其成为优秀编程初学者语言之一。不仅如此,Swift 在设计上也是安全的,更容易捕捉常见的编程错误。
此外,Swift 也是一门通用语言,它结合了诸如面向对象和函数式编程之类的编程范式,但它的主要专长是面向协议的范式。
最佳Swift课程大纲
在本文中,我为初学者和中级程序员挑选了学习 Swift 的最佳在线课程、资源和教程,除了两门Udemy的综合课程需要付费之外,其他8套课程,皆可以免费参加学习。
以下是课程列表,你可以点击课程名称跳转到对应的详情介绍部分:
课程名称 | 时长 | 课程简介 |
---|---|---|
1. 100 Days of SwiftUI (Hacking with Swift) | 100–200小时 | 基于项目最佳Swift综合性课程 |
2. CS193p – Developing Apps for iOS (Stanford University) | 25–50小时 | 最好的Swift大学课程 |
3. iOS & Swift – The Complete iOS App Development Bootcamp (Udemy) | 60个小时 | 涵盖高级主题的最佳Swift综合课程 |
4. Build your very first iOS app (Curtin University) | 64-80 小时 | 最佳中长项目型课程 |
5. SwiftUI Masterclass 2022 – iOS App Development & Swift(Udemy) | 30个小时 | 最佳Swift UI教程 |
6. Learn Swift (Codecademy) | 25个小时 | 最佳互动课程 |
7. Swift Playgrounds (Apple) | 30–60小时 | 苹果官方应用,最适合学生和初学者的入门游戏课程 |
8. Your First iOS & SwiftUI App: An App from Scratch (kodeco) | 3个小时 | 最佳简明初学者课程 |
9. SwiftUI Bootcamp (Youtube) | 16个小时 | 最佳免费 SwiftUI 课程 |
10. Introduction to Programming in Swift 5 (LearnQuest) | 11个小时 | 适合短期学习的课程 |
1. 100 Days of SwiftUI (Hacking with Swift)
最佳 Swift 课程,我的第一选择是 100 Days of SwiftUI,这是由 Hacking with Swift 免费提供的,最新且全面的综合课程(iOS 15 和 Swift 5.5)。
本课程面向想要学习如何构建 iOS 应用程序的初学者,它采用动手实践的方法来学习:你将通过构建大量应用程序或者使用课程提供的模板来学习 SwiftUI和 Swift。
你会学到什么
你将从安装和熟悉 Apple 的集成开发环境 Xcode 开始本课程。
然后,你将了解 Swift 编程语言的基础知识:变量、数据类型、简单数据结构、条件语句、循环和函数,还有属性结构和集成等知识。
在掌握 Swift 的基础知识后,你将开始使用 SwiftUI 构建应用程序。你的前两个项目包括一个计算账单和小费的支票共享应用程序和一个猜旗应用程序。你将设计界面,使其具有交互性,然后添加程序逻辑以使其发挥作用。
接下来,你将构建另外三个项目,这些项目涉及处理用户数据和用户错误、利用机器学习的力量以及创建和自定义漂亮的动画。之后,你将完成另外三个涵盖状态和绑定基本概念的项目。最后,你还将体验面向对象编程及其与整个应用程序架构的关系。
另外三个项目(有很多项目!)将由你完成,它们将更仔细地处理发送、检索和存储数据。它将讨论数据隐私、本地存储、云同步以及有效地获取、处理和显示数据。
控制用户视图和 UI 流是 iOS 应用程序开发的两个重要组成部分。你将研究从 SwiftUI 之外的框架(如 UIKit 和 MapKit)集成代码,并探索让用户通过标签栏、手势、触觉等更多方式与你的应用程序交互的方法。当然,通过完成项目。
课程的最后一部分介绍了帮助你构建出色应用程序的技巧和技术,例如拆分视图布局、具有透明组的布局、文本格式列表以及针对 iPad 进行了优化。
课程详情
本课程时长 100-200 小时,为了充分利用本课程,建议你每天花一个小时阅读或观看 SwiftUI 教程,或编写 SwiftUI 代码。你将通过阅读讲座视频、课程文章和完成测验来学习。
该课程包含 19 个项目(不包括涉及你构建自己的应用程序的挑战),以及间隔超过 100 天的复习课程,这些课程将帮助你巩固所学的知识。
课程来源 | Hacking with Swift |
讲师 | Paul Hudson |
等级 | 初级-中级 |
时长 | 100–200小时 |
证书 | 无 |
2. CS193p – Developing Apps for iOS (Stanford University)
斯坦福大学的 CS193p – Developing Apps for iOS,是我第二推荐的Swift课程,这套课程最初只提供给斯坦福学生,但现在对所有人免费开放。
你将构建两个相当大的应用程序:一个纸牌游戏和一个绘图软件。在课程结束时,你将精通 Swift 和 SwiftUI 编程。
本课程不适合完全的编程初学者,你需要一些使其他编程语言的经验,最好是面向对象的编程语言。
你会学到什么
本课程从直接构建第一个名为 Memorize 的纸牌匹配游戏开始,它将作为学习 SwiftUI 和 Swift 概念的基础,例如Model-view-viewmodel架构范式、Swift 的类型系统、枚举和可选项。
接下来,你将探索属性观察器,它们观察并响应属性值的变化,这些变化可以用 @State 和 @Viewbuilder 包装。然后,你将了解 Swift 中最重要的类型协议,并了解如何使用泛型和协议来设计更好的用户界面。之后,你将向 Memorize 添加动画以真正实现它。
之后,你将开始一个名为 EmojiArt 的新项目,你可以在其中使用表情符号绘制精美的图片。因此,你将学到很多有关拖放等触摸手势的知识。在介绍有助于简化 SwiftUI 编程的众多属性包装器和 SwiftUI 元素之前,还将介绍几个持久性主题以及错误处理。
SwiftUI 的文档架构让你可以将 EmojiART 变成一个多文档应用程序,这将使你能够在 EmojiArt 中创建不同的作品。然后,你将 UIKit 功能集成到你的应用程序中,以利用 SwiftUI 中尚未实现的一些功能。最后,你将通过将 iOS 应用程序移植到 macOS 来结束课程。
课程详情
本课程时长 25-50 小时,你将通过观看讲座视频、浏览上传的代码演示以及完成编程作业来学习。
课程来源 | 斯坦福大学 |
国内观看 | Bilibili(疯狂滴小黑) |
讲师 | Paul Hegarty |
等级 | 初级-中级 |
时长 | 25–50小时 |
证书 | 无 |
3. iOS & Swift – The Complete iOS App Development Bootcamp (Udemy)
Angela Yu 是在Udemy拥有超高人气的讲师,通过这门 iOS & Swift – The Complete iOS App Development Bootcamp 课程,你可以从一名完全没有编程经验的初学者,成为精通 iOS 应用程序开发的工程师。
该课程强调边做边学,这意味着你将制作有趣的应用程序,如 Pokemon Go、Whatsapp、QuizUp 和 Yahoo Weather。此外,你还将熟悉 Apple 的一些最新技术:SwiftUI、ARKit、CoreML 和 Create ML。
你会学到什么
从设置你的开发环境 Xcode 开始本课程,然后,你将学习如何设置一个新的 Xcode 项目,以开始设计和开发一个应用程序。
在你熟悉了创建静态应用程序界面之后,你将通过开发一个骰子应用程序和一个 Magic 8 Ball 应用程序来为其注入一些活力。这将涉及学习 Swift 编程基础知识,例如常量、变量、控制结构和数据结构。你还将学习如何为你的应用创建响应式布局。
接下来是深入了解 Swift 语言,你将发现面向对象编程 (OOP) 背后的一些关键概念,例如继承、结构、类和协议。OOP 构成了一些软件设计原则的基础。例如,当你创建一个选择你自己的冒险游戏时,你将学习如何实现模型视图控制器设计模式并编写有条理、可读的代码。
本课程的最后几节涵盖了每个专业 iOS 开发人员都应该了解的高级主题。你将从网络开始,其中涉及进行异步 API 调用和与云通信,然后转到持久的本地数据存储以在本地存储你的应用数据,并且不要忘记,学习使用 Apple 实现应用内购买商店套件。不仅如此,你还将了解 Git、GitHub、机器学习和增强现实。
课程详情
本课程时长 60 小时,你将通过观看讲座视频、浏览提供的课程资源列表以及最重要的实际应用项目实践来学习。
课程来源 | Udemy |
课程下载 | 视频+课件+中英字幕 |
讲师 | Angela Yu |
等级 | 初级-中级 |
时长 | 60个小时 |
学生数 | 超过30万 |
评分 | 4.8 / 5.0 (80K) |
证书 | 付费 |
4. Build your very first iOS app (Curtin University)
由 Curtin University提供的免费课程 Build your very first iOS app,会教你从头开始开发 iOS 应用程序所需的工具、技术和概念。
你将了解 Swift 编程语言并学习如何利用 Apple 的开发人员工具来构建应用程序。你可以免费参加该课程,在课程结束时,你将能够自信地与 iOS 开发人员交谈并开发自己的简单 iOS 应用程序。
参加本课程没有任何先决条件。
你会学到什么
本课程首先介绍基础编程概念,然后你将探索 Apple 的集成开发环境 Xcode,并了解变量、数据类型和运算符,以及核心编程概念,例如使用条件语句做出决策以及使用数组和字典来存储数据等。
Xcode 带有一个界面构建器,允许你定义应用程序的布局。此外,你将学习如何浏览 Xcode 项目,以及了解代码文档和调试的重要性。
之后你将学习允许你重用代码、类和结构以创建自定义数据类型的函数。
接下来,你将通过探索常见的用户界面视图和控制来继续改进用户界面,包括使你的用户界面具有交互性。你还将研究允许你为应用程序创建导航层次结构的视图控制器,从而创建流畅直观的用户体验。课程以在你的应用程序中显示表格的 TableViews 结束。
最后,你将实现模型视图控制器设计模式以允许响应式用户输入。
课程详情
本课程为期 8 周,每周学习 8-10 小时,你将通过观看视频讲座和阅读课程材料来学习。
你也可以选择升级课程,升级之后,你可以参加七个课后测验,这些测验有助于测试你对课程中涵盖的关键概念的理解和理解。
课程来源 | edX(Curtin University) |
讲师 | David A. McMeekin,Tristan W. Reed |
等级 | 初级 |
时长 | 64–80个小时,8周 |
学生数 | 47K |
证书 | 付费 |
5. SwiftUI Masterclass 2022 – iOS App Development & Swift(Udemy)
SwiftUI Masterclass 2022 – iOS App Development & Swift,这是一套来自Udemy的热门 SwiftUI 开发课程,讲师是Robert Petras
课程主要内容是教你在iOS16中,使用最新的 SwiftUI 构建一流的 iOS、iPadOS 移动应用程序、Apple Watch 应用程序,甚至 macOS 桌面应用程序。
这个完整的 iOS 应用程序开发课程会教你如何使用 Apple 的原生用户界面框架:SwiftUI,成为高级多平台应用程序开发人员。
你会学到什么
这个最新的 SwiftUI 课程包含分步说明,教你如何使用 Swift 5 语言构建几个成熟的 iOS、iPadOS、macOS 甚至 watchOS 应用程序。
本课程将带你使用 Apple 最近发布的最新和最强大的技术创建数十个引人注目的应用程序,
涉及到的教学内容如下:
- SwiftUI,Apple 的原生声明式用户界面设计框架,
- Swift 编程语言,
- Xcode 开发工具(代码编辑器、测试环境、实时预览、模拟器等),
- Combine framework 帮助开发人员处理事件,
- Mac Catalyst技术,旨在让开发人员将他们的 iPad 应用程序带到 Macintosh 计算机上,
- 主屏幕上的 iOS 和 iPadOS 小部件,
- Swift Charts 是一个内置框架,可以让我们轻松地可视化数据。
如果你想获得一份 iOS 或 macOS 开发人员的工作,那么这个大师班非常适合建立你的专业作品集,以便在你的下一次面试中展示
另一方面,如果你想为你的初创企业构建自己的应用程序,那么除了所有的编码教程之外,课程还提供了有关用户界面设计和应用程序动画的完整练习。
课程详情
本课程分为15个部分,总共30个小时,通过基于项目的方法教你在实战中学习编程概念。
课程来源 | Udemy |
课程下载 | 视频+课件+中英字幕 |
讲师 | Robert Petras |
等级 | 初级-中级 |
时长 | 30个小时 |
学生数 | 25,025 |
评分 | 4.5 / 5.0 (4140) |
证书 | 付费 |
6. Learn Swift (Codecademy)
在这个针对编程初学者的免费受限访问 Codecademy 课程 Learn Swift 中 ,你将从基本的编程概念开始,然后深入研究更高级的 Swift 主题,例如结构和类。你将构建从 Magic 8-Ball 到 Caesar Cipher 的所有东西。
你会学到什么
本课程从你编写第一个 Swift 程序开始,然后你将了解核心编程概念,从变量和基本数据类型(如字符串和布尔值)开始。接下来,你将学习如何在代码中实现程序逻辑,即让你的程序做出决策并重复代码块。
一旦你掌握了这些核心概念,你将通过查看有助于组织数据的常见数据结构(如数组、集合和字典)在编程技能阶梯上爬得更高,当你开始编写更复杂的程序时,你将看到这些数据结构的重要性。
在课程的最后一部分,你将学习如何编写命名的、可重用的代码块(称为函数)并与之交互。之后,你将学习如何在代码中创建可以表示现实生活对象的结构,然后以关于也可以表示现实生活对象但其属性可以由其子级继承的类的课程结束。
课程详情
本课程时长 25 小时,将通过专注于实践动手编码的交互式教程和练习来学习,如果你拥有 Codecademy Pro,你将能够在完成课程后获得证书。
机构 | Codecademy |
导师 | Sonny Li、Kenny Lin、Galina Podstrechnaya、Alex DiStasi |
等级 | 初级 |
工作量 | 25个小时 |
证书 | 付费 |
7. Swift Playgrounds (Apple)
虽然不是严格意义上的课程,但我决定将 Swift Playgrounds 包括在内,因为它是一个具有结构化课程的学习应用程序。
Swift Playgrounds 是一款由 Apple 开发的免费iPad 应用程序,它使学习和试验代码变得互动和有趣。它针对的是学生以及编程初学者。
学生首先要解决有助于巩固基础的小问题,然后再进行交互式演练,教他们应用程序的构建块。
你完全可以从0开始,无需任何编程经验。
你会学到什么
本课程主要分为3个模块。
Learn to Code 1 设置在一个动态的 3D 世界中。学生将通过在 Swift 中执行简单的命令、函数和循环来逐步建立他们的基本编程词汇。在第一个模块结束时,他们将熟悉算法。
Learn to Code 2 通过鼓励学生创造自己的世界来吸引学生的注意力。他们将学习更深入的主题,如变量、数据类型、初始化和参数,这些主题将使他们能够改变世界的规则。
Learn to Code 3 扩展了 Learn to Code 1 和 2 中开发的编码技能,帮助他们开始像应用程序开发人员一样思考。从图形和坐标开始,他们将学习如何放置和操作图像,然后将这些技术与触摸事件相结合。然后,他们将深入研究字符串并查看文本是如何表示的。最后,他们将通过设计自己的游戏以事件处理程序结束。
课程详情
本课程时长为30-60 小时,通过交互式教程来教学,并通过各种有趣和引人入胜的练习挑战学生们的大脑。
机构 | Apple |
等级 | 初学者 |
时长 | 30–60 小时 |
证书 | 无 |
8. Your First iOS & SwiftUI App: An App from Scratch (kodeco)
由 kodeco 提供的这套 Your First iOS & SwiftUI App: An App from Scratch 课程,是 iOS 和 SwiftUI 的基础入门课程。
你将从学习 SwiftUI 的基础知识开始,这是 iOS 开发人员使用 Swift 为其应用程序构建用户界面的一种新方法。
你还将深入了解 Swift 编程语言本身,学习 if/else 语句、变量、常量、类型推断和 Swift 标准库等基础以及Swift应用架构和单元测试方面的知识。
你会学到什么
该课程首先会带你构建一个简单但有趣的游戏,称为 Bull’s Eye。然后,为了帮助你养成了解项目范围的习惯,你将列出开发 Bull’s Eye 所需的所有事项的待办事项清单。
接下来,你将探索 SwiftUI,这是一个用很少的代码构建用户界面的框架。你会为你的应用程序设计界面,了解面向对象编程的基础知识,并学习如何在错误不可避免地弹出时进行调试。
在本课程的下一部分中,你将通过围绕两个基本概念:状态和绑定来使 Bull’s Eye 具有交互性。然后,你将使用一些字符串、变量和应用程序架构基础知识来结束该部分。你还将为游戏逻辑创建一个简单的数据模型。
接下来,你将深入了解 Swift 标准库,这是一个由 Apple 工程师编写的函数库,你可以在 Swift 代码中使用它在 Bull’s Eye 中创建一个随机目标编号。
然后,你将了解单元测试,这将帮助你确保 Bull’s Eye 数据模型以应有的方式工作,并了解为什么测试驱动的开发,将单元测试纳入你的日常工作流程,对生产力非常有益。
在课程的最后部分,你将编写代码以在几次迭代中计算游戏的分数,在此过程中,你将了解 Swift 的基本编码技术,例如 if/else 语句、变量与常量、类型推断等等,最终获得一个完整的函数式(而且很有趣!)游戏。
课程详情
本课程时长 3 小时,分为三个部分,你将通过观看讲座视频并跟随讲师编写代码来学习。
课程来源 | kodeco |
课程下载 | 视频+课件+中英字幕 |
讲师 | Ray Wenderlich |
等级 | 初级 |
时长 | 3个小时 |
证书 | 无 |
9. SwiftUI Bootcamp (Youtube)
SwiftUI Bootcamp,这是一套专注于 SwiftUI 组件的免费YouTube课程,课程结束时,你将创建一个非常漂亮的应用程序。
参加本课程不需要 Swift 经验。
你会学到什么
本课程首先向你展示如何在 Swift 项目中使用 Xcode。然后,你将学习如何在 SwiftUI 中将文本和形状添加为空白画布。你将通过学习为你创建的形状添加颜色、深度和渐变来绘制空白画布,将它们变成色彩缤纷的艺术品。
系统图标有助于为你的应用程序带来一些风格。幸运的是,Apple 有数千个预制系统图标可供你使用,它们可以是单色或多色。你将看到如何添加图像并随意更改它们。使用这些工具,你将专注于为你的应用程序制作漂亮干净的背景。
接下来,将添加按钮,然后通过了解循环、条件和三元运算符为这些按钮添加功能,以及添加响应式动画。
课程的最后部分详细介绍了用户可以与之交互的许多小部件,你还将了解各种 Swift 对象和属性,以及其他杂项内容,例如适应暗模式、记录代码和触摸手势。
课程详情
本课程时长 16 小时,你将通过观看讲座视频并跟随讲师编写代码来学习。
课程来源 | YouTube(Swiftful Thinking) |
国内观看 | Bilibili(疯狂滴小黑) |
讲师 | Nick Sarno |
等级 | 初级 |
时长 | 16个小时 |
意见 | 45K |
证书 | 无 |
10. Introduction to Programming in Swift 5 (LearnQuest)
LearnQuest的 Introduction to Programming in Swift 5 向你介绍了 Swift 的绝对基础知识。这个免费旁听课程非常适合编程初学者,或者那些已经有编程经验并希望参与 Swift 语言的人。
在课程结束时,你将了解如何构建简单的 iOS 应用程序并继续学习更高级的主题。
你会学到什么
本课程首先教你设置开发环境 Xcode,之后进入基础知识学习部分,变量赋值,程序逻辑,条件语句和循环等。然后,你将学习包含键值对的字典,学习如何编写函数。
课程的最后以编程架构和面向对象编程 (OOP) 的模块结束,你将学习 OOP、继承和多态性,并了解 OOP 如何影响应用程序的设计和实现。
你将如何学习
本课程为期 4 周,包含 11 小时的学习材料,你将通过观看讲座视频和完成课程阅读来学习。课程可以免费参加,但如果你升级为付费,你还可以访问分级测验和编程练习,以及在课程结束时拿到证书。
课程来源 | Coursera(LearnQuest) |
讲师 | Mark Price |
等级 | 初级 |
时长 | 11个小时 |
学生数 | 20K |
评分 | 4.4 / 5.0 (680) |
证书 | 付费 |
总结
Swift 是 Apple 开发的现代开源编程语言,主要用于在其生态系统中创建应用程序,iOS 和 macOS。它从设计是就从其他现代语言中借鉴了很多优秀设计,兼顾了学习难度和性能。
如果你想成为苹果旗下设备的应用程序开发人员,学习 Swift 语言是必不可少的,虽然你也可以使用Objective-C,或者其他跨平台编程语言例如 Flutter。但Swift作为苹果官方现在主力维护的编程语言,在生态上拥有巨大的优势,而 Objective-C 的使用人数和场景也在逐渐萎缩。
如果你只是想了解Swift,那么从免费课程入手是一个好主意,如果你想快速学习整个Swift开发体系以及在实际开发中会遇到的问题和解决方案,付费课程的节奏和内容将会更加合适。
如果本站的内容对你有帮助,可以点击这儿,不花一分钱捐赠本站