这是斯坦福2020春季关于IOS的SwiftUI课程,包括幻灯片、阅读材料、作业、完整demo项目代码等官方材料,还有自己的学习笔记和MyDemo
老师还是Paul Hegarty
课程官网: https://cs193p.sites.stanford.edu/
课程视频:
官网给出的youtube地址:https://youtu.be/jbtqIBpUG7g
国内搬运带机翻字幕的:https://www.bilibili.com/video/BV1EV411C77B?p=1
swift 5.3官方文档:https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
swift 5.3官方文档中文笔记(对应github里的swift_5.3_Language_Guide.md文件):https://blog.csdn.net/xunciy/category_10183982.html
找到的一个前辈的swift5的中文翻译:https://www.jianshu.com/p/1fef53ccffe7
Demo请以官方给出的完整项目代码为准,除lecture 1-6 外每个lecture的压缩包里有官网给出的Demo完整项目代码
MyDemo文件夹是自建的跟敲代码可以无视,每个lecture里的README.md记录了Demo各文件主要修改的部分,新增的功能
Lectures | Name | Slides | Demo |
---|---|---|---|
[Lecture 1] | 01. Course Logistics and Introduction to SwiftUI | slide | nil |
[Lecture 2] | 02. MVVM and the Swift Type System | slide | nil |
[Lecture 3] | 03. Reactive UI + Protocols + Layout | slide | nil |
[Lecture 4] | 04. Grid + enum + Optionals | slide | nil |
[Lecture 5] | 05. ViewBuilder + Shape + ViewModifier | slide | nil |
[Lecture 6] | 06. Animation | slide | nil |
[Lecture 7] | 07. Multithreading + EmojiArt | slide | EmojiArtL7 |
[Lecture 8] | 08. Geatures + JSON | slide | EmojiArtL8 |
[Lecture 9] | 09. Data Flow | slide | EmojiArtL9 |
[Lecture 10] | 10. Navigation + TextField | slide | EmojiArtL10 |
[Lecture 11] | 11. Picker | slide | EnrouteL11 |
[Lecture 12] | 12. Core Data | slide | EnrouteL12 |
[Lecture 13] | 13. Persistence | slide | EmojiArtL13 |
[Lecture 14] | 14. UIKit Integration | slide | EmojiArtL14 EnrouteL14 |
Assignment | lecture | theme |
---|---|---|
assignment_1 | 02. MVVM and the Swift Type System | Memorize |
assignment_2 | 04. Grid + enum + Optionals | Memorize |
assignment_3 | 06. Animation | Memorize(期中作业) |
assignment_4 | 08. Geatures + JSON | EmojiArt |
assignment_5 | 08. Geatures + JSON | Memorize |
assignment_6 | 10. Navigation + TextField | Memorize |
- 包括课程官网给出幻灯片slides、阅读材料reading、作业assignment、demo材料包、完整demo项目代码
- 包括自己跟敲的代码MyDemo,存在小错误还未有条件纠正(还在等活动买mac),MyDemo可无视,直接参考官网给出的Demo项目代码
- 每个lecture的README.md,记录了Demo各文件主要修改的部分,新增的功能等
- 包括对课程官网给出的材料的中文笔记,如有assignment的中文概要笔记
- 很多语法问题,还是直接阅读官方文档比较明了,CS193p给的reading材料也不如官方文档明了,可以使用谷歌浏览器翻译网页再结合英文看,都是大白话,很好懂的,
- 跟敲的swift文件除了代码正文内的注释,在正文下面存在大量的听课笔记类型的注释掉的代码,比如前几节课涉及的闭包的语法糖,详细记录了它是如何简化成最后的模样的,如果对这些注释产生疑惑,可以无视所有注释,并结合课程视频理解代码正文
- lecture 11-14 的 MyDemo 无跟敲,仅编辑了README.md,这几个课程内容深入了许多,再加上提前给好的Enroute内容已经非常多了,就放弃了跟敲
- swiftUI 和 swift 差距很大,MVVM 和 MVC 的差距很大。鉴于 swiftUI 才出没多久,近几年不可能大规模应用到市场,所以打算返回去啃 swift 了,暂时打算从基础开始看看官方文档的语法,在查一查2017的lecture里出现的比较多的概念,争取完全搞懂2017 lecture Demo里的代码是啥意思,把一些其Demo没实现的但是可以自己做的小功能做做看