Model and UI; Swift Type System
Lecture 3
Understanding the separation of Model (logic and data) from UI. Introduction to some of the fundamentals of the Swift Type System.
Below you will find links to videos and supporting course material for the Spring 2025 version of Stanford's CS193p (Developing Applications for iOS using SwiftUI). It is a course Stanford students take to learn some of the basics of iOS development.
The course happened before iOS 26 and Xcode 26 were released, but the code written during the course seems to be mostly compatible. The big change in Xcode 26, of course, is built-in LLM assistance, and iOS 26 introduced Liquid Glass in the UI, so of course there's none of that in any of these videos.
Unfortunately, we aren't able to provide any support for you as you watch these, but there are lots and lots of fantastic resources online for helping you in your quest to learn how to develop apps for iOS, so seek them out!
For more, check out the About page.
Lecture 3
Understanding the separation of Model (logic and data) from UI. Introduction to some of the fundamentals of the Swift Type System.
Lecture 5
How SwiftUI lays out UI elements on screen. Also a discussion of how data flows through a SwiftUI application. Intro to functional programming.
Lecture 7
How Views like VStack take a ViewBuilder as an argument. Handling the passing of an @Binding to the init of a View. Slides going over some of the basic ideas of Animation.
Lecture 9
How to show elapsed time in our CodeBreaker. Discussion of protocols, an important aspect of the Swift Type system.
Lecture 13
Making our CodeBreaker games persistable into a database! @Model, @Relationship, ModelContainers and ModelContext, FetchDescriptor and #Predicate.
Lecture 15
Creating even more complex #Predicates for SwiftData. Reacting to database saves. Just the basics on multithreading.