这是斯坦福2020春季关于IOS的SwiftUI课程,包括幻灯片、阅读材料、作业、完整demo项目代码等官方材料,还有自己的学习笔记和MyDemo
老师还是Paul Hegarty
斯坦福本课程官网
课程视频: 官网给出的youtube课程视频
& 国内搬运带机翻字幕的课程视频
swift 5.3官方文档 & swift 5.3官方文档中文版 & swift5腾讯课堂教程笔记
swift 5.3官方文档中文笔记博客 & swift5.3 Language Guide中文笔记markdown
新增2017Fall swift课程的笔记文件夹,是2017Fall课程的复习巩固,在各demo的README.md里记录了每个demo的主要修改内容,大佬的笔记和官方课程视频作为参考答案
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 | topic |
---|---|---|
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材料也不如直接查官方文档,可以使用谷歌浏览器翻译网页再结合英文看,都是大白话,很好懂的,
- MyDemo跟敲的swift文件除了代码正文内的注释,在正文下面存在大量的听课笔记类型的注释掉的代码,比如前几节课涉及的闭包的语法糖,详细记录了它是如何简化成最后的模样的,如果对这些注释产生疑惑,可以无视所有注释,并结合课程视频理解代码正文
- lecture 11-14 的 MyDemo 无跟敲,仅编辑了README.md,这几个课程内容深入了许多,再加上提前给好的Enroute内容已经非常多了,就放弃了跟敲
- swiftUI 和 swift 差距很大,MVVM 和 MVC 的差距很大。鉴于 swiftUI 才出没多久,近几年不可能大规模应用到市场(还有辣么多在用Object-C的诶),所以打算返回去啃 swift 了,已粗略看完swift5.3官方文档并粗略记录笔记(之后根据情况不定期更新总结),过几天mac到了再返工详细研究2017 lecture课程Demo里的代码,把一些其Demo没实现的但是可以自己做的小功能做做看