harveygau / Standford-CS193p-2020Spring-SwiftUI

Stanford University's course CS193p in the spring quarter of 2020 (Developing Applications for iOS using SwiftUI)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Standford-CS193p-2020-Spring-SwiftUI

简介

这是斯坦福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

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

主要内容

  1. 包括课程官网给出幻灯片slides、阅读材料reading、作业assignment、demo材料包、完整demo项目代码
  2. 包括自己跟敲的代码MyDemo,存在小错误还未有条件纠正(mac还在路上),MyDemo可无视,直接参考官网给出的Demo项目代码
  3. 每个lecture的README.md,记录了Demo各文件主要修改的部分,新增的功能等
  4. 包括对课程官网给出的材料的中文笔记,如有assignment的中文概要笔记

MyTips

  1. 很多语法问题,还是直接阅读官方文档比较明了,CS193p给的reading材料也不如直接查官方文档,可以使用谷歌浏览器翻译网页再结合英文看,都是大白话,很好懂的,
  2. MyDemo跟敲的swift文件除了代码正文内的注释,在正文下面存在大量的听课笔记类型的注释掉的代码,比如前几节课涉及的闭包的语法糖,详细记录了它是如何简化成最后的模样的,如果对这些注释产生疑惑,可以无视所有注释,并结合课程视频理解代码正文
  3. lecture 11-14 的 MyDemo 无跟敲,仅编辑了README.md,这几个课程内容深入了许多,再加上提前给好的Enroute内容已经非常多了,就放弃了跟敲
  4. swiftUI 和 swift 差距很大,MVVM 和 MVC 的差距很大。鉴于 swiftUI 才出没多久,近几年不可能大规模应用到市场(还有辣么多在用Object-C的诶),所以打算返回去啃 swift 了,已粗略看完swift5.3官方文档并粗略记录笔记(之后根据情况不定期更新总结),过几天mac到了再返工详细研究2017 lecture课程Demo里的代码,把一些其Demo没实现的但是可以自己做的小功能做做看

About

Stanford University's course CS193p in the spring quarter of 2020 (Developing Applications for iOS using SwiftUI)


Languages

Language:Swift 100.0%Language:Ruby 0.0%