This repository contains my work for Stanford's CS193p course on iOS app development with SwiftUI. The course is taught by Paul Hegarty and covers the fundamentals of building user interfaces with SwiftUI, managing app data using state and bindings, handling user input and events, and integrating with system services and APIs.
CS193p is an introductory course in developing iOS applications using SwiftUI, Apple's modern declarative framework for building user interfaces. The course aims to provide students with a solid foundation in Swift programming language and SwiftUI concepts, enabling them to build engaging and visually appealing iOS apps.
The course follows a hands-on approach, with weekly assignments and projects designed to reinforce the concepts covered in lectures. Students will learn about various SwiftUI components, data flow, animations, gestures, and integration with other Apple frameworks.
The course is divided into several assignments and projects, each building upon the previous one:
-
Course Materials and Playground Examples: This folder contains lecture notes, slides, and Swift playgrounds for practicing SwiftUI concepts.
-
Assignment 1 - Getting Started with SwiftUI: A simple app that demonstrates the basics of SwiftUI, including creating views, modifying view properties, and handling user input.
-
Assignment 2 - Drawing and Animation: An app that explores advanced SwiftUI features such as custom shapes, animations, and gestures.
-
Assignment 3 - Working with UIViewController and Gestures: An app that integrates SwiftUI views with UIKit view controllers and demonstrates gesture handling.
-
Assignment 4 - Multiplatform SwiftUI: An app that showcases SwiftUI's multiplatform capabilities, with a shared codebase running on iOS, iPadOS, macOS, and watchOS.
-
Final Project: A comprehensive iOS app developed using SwiftUI, incorporating various concepts and techniques covered throughout the course.
To get the most out of this course, it is recommended to have some prior experience with Swift programming language and familiarity with the Xcode development environment. However, the course is designed to be accessible to beginners as well.
- Course Website
- Stanford iOS Lectures on YouTube
- Apple's SwiftUI Documentation
- Stanford's Public Course Materials
While this repository is primarily for personal learning and reference, feel free to submit issues or pull requests if you have any suggestions or improvements.