calendar
Course Schedule

syllabus
Course Syllabus

Lecture Notes


Lecture Notes cs193p Spring 2021
Lecture Videos
MVVM Lecture 1
struct and class Lecture 2
Generics Lecture 3
Functions as Types Lecture 4
Enum & Optionals Lecture 5
Property Observers & Layout Lecture 6
@ViewBuilder Lecture 7
Protocol Lecture 8
Shape Lecture 9
Animation & ViewModifier Lecture 10
Collections of Identifiable Lecture 11
Colors & Images Lecture 12
Drag & Drop Lecture 13
Multithreading Lecture 14
Gestures Lecture 15
Throw and Catch Lecture 16
Persistence  
Property Wrappers  

Reading Assignments


Reading
Reading 1
Reading 2
Reading 3

Homework


Homework
Homework 1
Homework 2
Homework 3
Homework 4
Homework 5

Class Demos


Class Demos
Memorize - Part 1 - Single Card with "Hello World"
Memorize - Part 2 - Multiple Cards | LazyVGrid | + & - Buttons
Memorize - Part 3 - Multiple Cards | LazyVGrid | MVVM (Not Complete)
Memorize - Part 4 - Multiple Cards | LazyVGrid | MVVM | View Working | Game Working
Memorize - Part 5 - Multiple Cards | LazyVGrid | MVVM | View Working | Game Working | Array Extension | Optional var | Computed var get/set
Memorize - Part 6 - Multiple Cards | LazyVGrid | MVVM | View Working | Game Working | Array Extension | Optional var | Computed var get/set | AspectVGrid | @ViewBuilder | @escaping | Pie Shape
For Homework 3 - SetCard, SetCardDeck, and SetGame (All part of the Model)
Memorize - Part 7 - Multiple Cards | LazyVGrid | MVVM | View Working | Game Working | Array Extension | Optional var | Computed var get/set | AspectVGrid | @ViewBuilder | @escaping | Pie Shape | Cardify View Modifier | Animation (intro)
Memorize - Part 8 - Multiple Cards | LazyVGrid | MVVM | View Working | Game Working | Array Extension | Optional var | Computed var get/set | AspectVGrid | @ViewBuilder | @escaping | Pie Shape | Cardify View Modifier | Animation
EmojiArt Part 1 - Model, View Model & View | Drag & Drop
For Homework 4 - Squiggle Demo - Draw Squiggle Shape for Set Game
EmojiArt Part 2 - Model, View Model & View | Drag & Drop | Multi-Threading | Fetching Spinner | Gestures: Double Tap To Zoom, Magnification Gesture & Drag Gesture
EmojiArt Part 3 - Model, View Model & View | Drag & Drop | Multi-Threading | Fetching Spinner | Gestures: Double Tap To Zoom, Magnification Gesture & Drag Gesture | Persistence
EmojiArt Part 4 - Model, View Model & View | Drag & Drop | Multi-Threading | Fetching Spinner | Gestures: Double Tap To Zoom, Magnification Gesture & Drag Gesture | Persistence | Context Menu | AnimatedActionButton | popover | sheet | NavigationView | NavigationLink

Class Demo Downloads


Class Demo Downloads
EmojiArt Part 1 Download
EmojiArt Part 3 Download

Exams


Exam
Midterm Exam
Final Exam

Xcode


Xcode Versions
Xcode 12.4