# Resources

- [Textbook](https://ios-course.cornellappdev.com/resources/textbook.md)
- [Introduction](https://ios-course.cornellappdev.com/resources/textbook/introduction.md)
- [Git + GitHub](https://ios-course.cornellappdev.com/resources/textbook/git-+-github.md)
- [Git Installation](https://ios-course.cornellappdev.com/resources/textbook/git-+-github/git-installation.md): Fall 2023 | Vin Bui
- [Git Basics](https://ios-course.cornellappdev.com/resources/textbook/git-+-github/git-basics.md): Fall 2023 | Richie Sun
- [Git+](https://ios-course.cornellappdev.com/resources/textbook/git-+-github/git+.md): Spring 2024 | Vin Bui
- [Swift Basics](https://ios-course.cornellappdev.com/resources/textbook/swift-basics.md)
- [Variables and Constants](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/variables-and-constants.md): Fall 2023 | Vin Bui
- [Data Types](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/data-types.md): Fall 2023 | Vin Bui
- [Operators](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/operators.md): Fall 2023 | Vin Bui
- [Data Structures](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/data-structures.md): Fall 2023 | Vin Bui
- [Conditionals](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/conditionals.md): Fall 2023 | Vin Bui
- [Loops](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/loops.md): Fall 2023 | Vin Bui
- [Functions](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/functions.md): Fall 2023 | Vin Bui
- [Closures](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/closures.md): Fall 2024 | Peter Bidoshi
- [Optionals](https://ios-course.cornellappdev.com/resources/textbook/swift-basics/optionals.md): Fall 2023 | Vin Bui
- [UIKit + AutoLayout](https://ios-course.cornellappdev.com/resources/textbook/uikit-+-autolayout.md)
- [Classes](https://ios-course.cornellappdev.com/resources/textbook/uikit-+-autolayout/classes.md): Fall 2023 | Richie Sun
- [UIKit](https://ios-course.cornellappdev.com/resources/textbook/uikit-+-autolayout/uikit.md): Fall 2023 | Richie Sun
- [AutoLayout](https://ios-course.cornellappdev.com/resources/textbook/uikit-+-autolayout/autolayout.md): Fall 2023 | Richie Sun
- [MVC + Navigation + Delegation](https://ios-course.cornellappdev.com/resources/textbook/mvc-+-navigation-+-delegation.md)
- [MVC](https://ios-course.cornellappdev.com/resources/textbook/mvc-+-navigation-+-delegation/mvc.md): Fall 2023 | Vin Bui
- [Navigation](https://ios-course.cornellappdev.com/resources/textbook/mvc-+-navigation-+-delegation/navigation.md): Fall 2023 | Vin Bui
- [Delegation](https://ios-course.cornellappdev.com/resources/textbook/mvc-+-navigation-+-delegation/delegation.md): Fall 2023 | Vin Bui
- [UITableView](https://ios-course.cornellappdev.com/resources/textbook/uitableview.md)
- [What is a UITableView?](https://ios-course.cornellappdev.com/resources/textbook/uitableview/what-is-a-uitableview.md): Fall 2023 | Vin Bui
- [UITableView Setup](https://ios-course.cornellappdev.com/resources/textbook/uitableview/uitableview-setup.md): Fall 2023 | Vin Bui
- [Networking I](https://ios-course.cornellappdev.com/resources/textbook/networking-i.md)
- [HTTP Requests](https://ios-course.cornellappdev.com/resources/textbook/networking-i/http-requests.md): Fall 2023 | Vin Bui
- [Callbacks](https://ios-course.cornellappdev.com/resources/textbook/networking-i/callbacks.md): Fall 2023 | Vin Bui
- [Codable](https://ios-course.cornellappdev.com/resources/textbook/networking-i/codable.md): Fall 2023 | Vin Bui
- [Networking II](https://ios-course.cornellappdev.com/resources/textbook/networking-ii.md)
- [Alamofire](https://ios-course.cornellappdev.com/resources/textbook/networking-ii/alamofire.md): Fall 2023 | Vin Bui
- [GET Requests](https://ios-course.cornellappdev.com/resources/textbook/networking-ii/get-requests.md): Fall 2023 | Vin Bui
- [POST Requests](https://ios-course.cornellappdev.com/resources/textbook/networking-ii/post-requests.md): Fall 2023 | Vin Bui
- [URLSession](https://ios-course.cornellappdev.com/resources/textbook/networking-ii/urlsession.md): Fall 2023 | Vin Bui
- [UICollectionView](https://ios-course.cornellappdev.com/resources/textbook/uicollectionview.md)
- [What is a UICollectionView?](https://ios-course.cornellappdev.com/resources/textbook/uicollectionview/what-is-a-uicollectionview.md): Fall 2023 | Vin Bui
- [UICollectionView Setup](https://ios-course.cornellappdev.com/resources/textbook/uicollectionview/uicollectionview-setup.md): Fall 2023 | Vin Bui
- [Persistence + SnapKit](https://ios-course.cornellappdev.com/resources/textbook/persistence-+-snapkit.md)
- [Persistence](https://ios-course.cornellappdev.com/resources/textbook/persistence-+-snapkit/persistence.md): Fall 2023 | Vin Bui
- [SnapKit](https://ios-course.cornellappdev.com/resources/textbook/persistence-+-snapkit/snapkit.md): Fall 2023 | Vin Bui
- [SwiftUI](https://ios-course.cornellappdev.com/resources/textbook/swiftui.md)
- [Introduction to SwiftUI](https://ios-course.cornellappdev.com/resources/textbook/swiftui/introduction-to-swiftui.md): Fall 2023 | Vin Bui
- [Getting Started with SwiftUI](https://ios-course.cornellappdev.com/resources/textbook/swiftui/getting-started-with-swiftui.md): Fall 2023 | Vin Bui
- [Views + Modifiers](https://ios-course.cornellappdev.com/resources/textbook/swiftui/views-+-modifiers.md): Fall 2023 | Vin Bui
- [Layouts](https://ios-course.cornellappdev.com/resources/textbook/swiftui/layouts.md): Fall 2023 | Vin Bui
- [Navigation](https://ios-course.cornellappdev.com/resources/textbook/swiftui/navigation.md): Fall 2023 | Vin Bui
- [Property Wrappers](https://ios-course.cornellappdev.com/resources/textbook/swiftui/property-wrappers.md): Fall 2023 | Vin Bui
- [Widgets](https://ios-course.cornellappdev.com/resources/textbook/widgets.md)
- [Introduction to Widgets](https://ios-course.cornellappdev.com/resources/textbook/widgets/introduction-to-widgets.md): Fall 2023 | Reade Plunkett
- [Setting Up Widgets](https://ios-course.cornellappdev.com/resources/textbook/widgets/setting-up-widgets.md): Fall 2023 | Reade Plunkett
- [Building Widgets](https://ios-course.cornellappdev.com/resources/textbook/widgets/building-widgets.md): Fall 2023 | Reade Plunkett
- [Configuring Widgets](https://ios-course.cornellappdev.com/resources/textbook/widgets/configuring-widgets.md): Fall 2023 | Reade Plunkett
- [Project Foundation](https://ios-course.cornellappdev.com/resources/textbook/project-foundation.md): Spring 2024 | Vin Bui
- [Testing](https://ios-course.cornellappdev.com/resources/textbook/testing.md)
- [Unit Testing](https://ios-course.cornellappdev.com/resources/textbook/testing/unit-testing.md): Spring 2024 | Vin Bui
- [UI Testing](https://ios-course.cornellappdev.com/resources/textbook/testing/ui-testing.md): Spring 2024 | Vin Bui
- [Debugging](https://ios-course.cornellappdev.com/resources/textbook/debugging.md)
- [OSLog](https://ios-course.cornellappdev.com/resources/textbook/debugging/oslog.md): Spring 2024 | Vin Bui
- [Crashlytics](https://ios-course.cornellappdev.com/resources/textbook/debugging/crashlytics.md): Spring 2024 | Vin Bui
- [Analytics](https://ios-course.cornellappdev.com/resources/textbook/debugging/analytics.md): Spring 2024 | Vin Bui
- [CI/CD](https://ios-course.cornellappdev.com/resources/textbook/ci-cd.md)
- [Xcode Cloud](https://ios-course.cornellappdev.com/resources/textbook/ci-cd/xcode-cloud.md): Spring 2024 | Vin Bui
- [AppStore Shipping](https://ios-course.cornellappdev.com/resources/textbook/ci-cd/appstore-shipping.md): Spring 2024 | Vin Bui
- [Coming soon](https://ios-course.cornellappdev.com/resources/textbook/coming-soon.md)
- [Notifications](https://ios-course.cornellappdev.com/resources/textbook/coming-soon/notifications.md): Spring 2024 | Vin Bui
- [Concurrency](https://ios-course.cornellappdev.com/resources/textbook/coming-soon/concurrency.md): Spring 2024 | Vin Bui
- [Reactive Programming](https://ios-course.cornellappdev.com/resources/textbook/coming-soon/reactive-programming.md): Spring 2024 | Vin Bui
- [Memory Management](https://ios-course.cornellappdev.com/resources/textbook/coming-soon/memory-management.md): Spring 2024 | Vin Bui
- [ARC](https://ios-course.cornellappdev.com/resources/textbook/coming-soon/memory-management/arc.md): Fall 2023 | Vin Bui
- [Storage](https://ios-course.cornellappdev.com/resources/textbook/coming-soon/storage.md): Spring 2024 | Vin Bui
- [Tool Guides](https://ios-course.cornellappdev.com/resources/tool-guides.md)
- [Xcode Project Setup](https://ios-course.cornellappdev.com/resources/tool-guides/xcode-project-setup.md): Fall 2023 | Vin Bui
- [Figma](https://ios-course.cornellappdev.com/resources/tool-guides/figma.md): Creator: Vin Bui (FA23) | Editor: Jay Zheng (FA25)
- [Postman](https://ios-course.cornellappdev.com/resources/tool-guides/postman.md): Creator: Vin Bui (FA 23) | Editor: Jay Zheng (FA25)
- [CocoaPods](https://ios-course.cornellappdev.com/resources/tool-guides/cocoapods.md): Fall 2023 | Vin Bui
- [UIKit Handbook](https://ios-course.cornellappdev.com/resources/tool-guides/uikit-handbook.md): Original Author: Richie Sun
- [Tab Views](https://ios-course.cornellappdev.com/resources/tool-guides/tab-views.md): Original Author: Tiffany Pan
- [UITabBarController](https://ios-course.cornellappdev.com/resources/tool-guides/tab-views/uitabbarcontroller.md): Original Author: Tiffany Pan
- [TabView](https://ios-course.cornellappdev.com/resources/tool-guides/tab-views/tabview.md): SwiftUI's Vers.
- [Swift Foundations](https://ios-course.cornellappdev.com/resources/swift-foundations.md)
- [About this Textbook](https://ios-course.cornellappdev.com/resources/swift-foundations/about-this-textbook.md)
- [Documentation](https://ios-course.cornellappdev.com/resources/swift-foundations/documentation.md)
- [Constants and Variables](https://ios-course.cornellappdev.com/resources/swift-foundations/constants-and-variables.md)
- [Variable Properties](https://ios-course.cornellappdev.com/resources/swift-foundations/constants-and-variables/variable-properties.md)
- [Lazy and Static Variables](https://ios-course.cornellappdev.com/resources/swift-foundations/constants-and-variables/lazy-and-static-variables.md)
- [Functions](https://ios-course.cornellappdev.com/resources/swift-foundations/functions.md)
- [Ranges](https://ios-course.cornellappdev.com/resources/swift-foundations/ranges.md)
- [Arrays](https://ios-course.cornellappdev.com/resources/swift-foundations/arrays.md)
- [Basic Array Operations](https://ios-course.cornellappdev.com/resources/swift-foundations/arrays/basic-array-operations.md)
- [Iteration and Enumeration](https://ios-course.cornellappdev.com/resources/swift-foundations/arrays/iteration-and-enumeration.md)
- [Advanced Array Operations](https://ios-course.cornellappdev.com/resources/swift-foundations/arrays/advanced-array-operations.md)
- [Tuples](https://ios-course.cornellappdev.com/resources/swift-foundations/tuples.md)
- [Conditions and While Loops](https://ios-course.cornellappdev.com/resources/swift-foundations/conditions-and-while-loops.md)
- [For Loops](https://ios-course.cornellappdev.com/resources/swift-foundations/for-loops.md)
- [Enums and Switches](https://ios-course.cornellappdev.com/resources/swift-foundations/enums-and-switches.md)
- [Enums with Associated Values](https://ios-course.cornellappdev.com/resources/swift-foundations/enums-and-switches/enums-with-associated-values.md)
- [Indirect Enums](https://ios-course.cornellappdev.com/resources/swift-foundations/enums-and-switches/indirect-enums.md): Credits to the great wonderful amazing Daniel Vebman for introducing me to the topic
- [Classes and Structs](https://ios-course.cornellappdev.com/resources/swift-foundations/classes-and-structs.md)
- [Optionals](https://ios-course.cornellappdev.com/resources/swift-foundations/optionals.md)
- [Dictionaries](https://ios-course.cornellappdev.com/resources/swift-foundations/dictionaries.md)
- [Dictionary Implementation](https://ios-course.cornellappdev.com/resources/swift-foundations/dictionaries/dictionary-implementation.md)
- [Closures](https://ios-course.cornellappdev.com/resources/swift-foundations/closures.md)
- [Constraints](https://ios-course.cornellappdev.com/resources/swift-foundations/constraints.md)
- [Generics](https://ios-course.cornellappdev.com/resources/swift-foundations/generics.md)
- [Protocols](https://ios-course.cornellappdev.com/resources/swift-foundations/protocols.md)
- [Protocols With Associated Types](https://ios-course.cornellappdev.com/resources/swift-foundations/protocols/protocols-with-associated-types.md)
- [Casting](https://ios-course.cornellappdev.com/resources/swift-foundations/casting.md)
- [Errors](https://ios-course.cornellappdev.com/resources/swift-foundations/errors.md)
- [Networking](https://ios-course.cornellappdev.com/resources/swift-foundations/networking.md)
- [Result](https://ios-course.cornellappdev.com/resources/swift-foundations/networking/result.md)
- [Inout](https://ios-course.cornellappdev.com/resources/swift-foundations/inout.md)
- [Archived (past semesters)](https://ios-course.cornellappdev.com/resources/archived-past-semesters.md)
- [FA25](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25.md)
- [Logistics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/logistics.md)
- [Syllabus](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/logistics/syllabus.md): Fall 2025
- [Schedule](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/logistics/schedule.md): Fall 2025
- [Grading](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/logistics/grading.md): Fall 2025
- [Office Hours](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/logistics/office-hours.md): Fall 2025
- [Lectures](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures.md)
- [Logistics + Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/logistics-+-swift-basics.md): Fall 2025
- [UIKit + AutoLayout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/uikit-+-autolayout.md): Fall 2025
- [MVC + Navigation + Delegation](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/mvc-+-navigation-+-delegation.md): Fall 2025
- [UITableView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/uitableview.md): Fall 2025
- [UICollectionView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/uicollectionview.md): Fall 2025
- [Networking I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/networking-i.md): Fall 2025
- [Networking II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/networking-ii.md): Fall 2025
- [Persistence + SnapKit](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/persistence-+-snapkit.md): Fall 2025
- [SwiftUI I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/swiftui-i.md): Fall 2025
- [SwiftUI II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/swiftui-ii.md): Fall 2025
- [MVVM](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/mvvm.md): Fall 2025
- [(12) Core ML](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/12-core-ml.md): Fall 2025
- [(13) Deployment](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/lectures/13-deployment.md): Fall 2025
- [Assignments](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments.md)
- [A1: Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/a1-swift-basics.md): Original Author: Vin Bui
- [A2: Profile](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/a2-profile.md): Original Author: Vin Bui
- [A3: ChatDev](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/a3-chatdev.md): Original Author: Vin Bui
- [A4: ChefOS](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/a4-chefos.md): Original Author: Vin Bui
- [A4: ChefOS - SwiftUI](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/a4-chefos-swiftui.md): Original project authored by Vin Bui, adapted to SwiftUI by Daniel Chuang
- [Hack Challenge](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/hack-challenge.md): Original Author: Vin Bui
- [FA23 Winners](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa25/assignments/hack-challenge/fa23-winners.md): Fall 2023
- [SP25](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25.md)
- [Logistics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/logistics.md)
- [Syllabus](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/logistics/syllabus.md): Spring 2025
- [Schedule](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/logistics/schedule.md): Spring 2025
- [Grading](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/logistics/grading.md): Spring 2025
- [Office Hours](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/logistics/office-hours.md): Spring 2025
- [Lecture](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture.md)
- [Logistics + Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/logistics-+-swift-basics.md): Fall 2025
- [UIKit + AutoLayout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/uikit-+-autolayout.md): Spring 2025
- [MVC + Navigation + Delegation](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/mvc-+-navigation-+-delegation.md): Spring 2025
- [UITableView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/uitableview.md): Spring 2025
- [UICollectionView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/uicollectionview.md): Spring 2025
- [Networking I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/networking-i.md): Spring 2025
- [Networking II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/networking-ii.md): Spring 2025
- [SwiftUI I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/swiftui-i.md): Spring 2025
- [SwiftUI II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/swiftui-ii.md): Spring 2025
- [Persistence + SnapKit](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/persistence-+-snapkit.md): Spring 2025
- [(11) Notifications](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/11-notifications.md): Spring 2025
- [(12) Deployment and MapKit](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/lecture/12-deployment-and-mapkit.md): Spring 2025
- [Assignments](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments.md)
- [A1: Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/a1-swift-basics.md): Original Author: Vin Bui
- [A2: Profile](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/a2-profile.md): Original Author: Vin Bui
- [A3: ChatDev](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/a3-chatdev.md): Original Author: Vin Bui
- [A4: ChefOS](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/a4-chefos.md): Original Author: Vin Bui
- [A4: ChefOS - SwiftUI](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/a4-chefos-swiftui.md): Original project authored by Vin Bui, adapted to SwiftUI by Daniel Chuang
- [Hack Challenge](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/hack-challenge.md): Original Author: Vin Bui
- [FA23 Winners](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp25/assignments/hack-challenge/fa23-winners.md): Fall 2023
- [SP24](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24.md)
- [Logistics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/logistics.md)
- [Syllabus](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/logistics/syllabus.md): Spring 2024
- [Schedule](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/logistics/schedule.md): Spring 2024
- [Grading](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/logistics/grading.md): Spring 2024
- [Office Hours](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/logistics/office-hours.md): Spring 2024
- [Assignments](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments.md)
- [A1: Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments/a1-swift-basics.md): Original Author: Vin Bui
- [A2: Profile](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments/a2-profile.md): Original Author: Vin Bui
- [A3: ChatDev](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments/a3-chatdev.md): Original Author: Vin Bui
- [A4: ChefOS](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments/a4-chefos.md): Original Author: Vin Bui
- [Hack Challenge](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments/hack-challenge.md): Original Author: Vin Bui
- [FA23 Winners](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/assignments/hack-challenge/fa23-winners.md): Fall 2023
- [Lecture](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture.md)
- [Course Intro + Logistics + Git Setup](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/course-intro-+-logistics-+-git-setup.md): Spring 2024
- [Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/swift-basics.md): Spring 2024
- [UIKit + AutoLayout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/uikit-+-autolayout.md): Spring 2024
- [MVC + Navigation + Delegation](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/mvc-+-navigation-+-delegation.md): Spring 2024
- [UITableView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/uitableview.md): Spring 2024
- [UICollectionView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/uicollectionview.md): Spring 2024
- [Networking I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/networking-i.md): Spring 2024
- [Networking II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/networking-ii.md): Spring 2024
- [Persistence + SnapKit](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/persistence-+-snapkit.md): Spring 2024
- [SwiftUI](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/swiftui.md): Spring 2024
- [TabViews](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp24/lecture/tabviews.md): Spring 2024
- [FA23](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23.md)
- [Logistics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics.md)
- [Getting Started](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics/getting-started.md): Fall 2023
- [Course Staff](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics/course-staff.md): Fall 2023
- [Syllabus](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics/syllabus.md): Fall 2023
- [Schedule](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics/schedule.md): Fall 2023
- [Grading](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics/grading.md): Fall 2023
- [Office Hours](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/logistics/office-hours.md): Fall 2023
- [Assignments](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments.md)
- [A1: Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments/a1-swift-basics.md): Original Author: Vin Bui
- [A2: Profile](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments/a2-profile.md): Original Author: Vin Bui
- [A3: ChatDev](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments/a3-chatdev.md): Original Author: Vin Bui
- [A4: ChefOS](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments/a4-chefos.md): Original Author: Vin Bui
- [Hack Challenge](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments/hack-challenge.md): Original Author: Vin Bui
- [FA23 Winners](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/assignments/hack-challenge/fa23-winners.md): Fall 2023
- [Lectures](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures.md)
- [Course Intro + Logistics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/course-intro-+-logistics.md): Fall 2023
- [Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/swift-basics.md): Fall 2023
- [UIKit + AutoLayout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/uikit-+-autolayout.md): Fall 2023
- [MVC + Navigation + Delegation](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/mvc-+-navigation-+-delegation.md): Fall 2023
- [UITableView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/uitableview.md): Fall 2023
- [UICollectionView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/uicollectionview.md): Fall 2023
- [Networking I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/networking-i.md): Fall 2023
- [Networking II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/networking-ii.md): Fall 2023
- [Persistence + SnapKit](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/persistence-+-snapkit.md): Fall 2023
- [Widgets](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/widgets.md): Fall 2023 | Reade Plunkett
- [Introduction to Widgets](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/widgets/introduction-to-widgets.md): Original Author: Reade Plunkett
- [Setting Up Widgets](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/widgets/setting-up-widgets.md): Original Author: Reade Plunkett
- [Building Widgets](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/widgets/building-widgets.md): Original Author: Reade Plunkett
- [Configuring Widgets](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/widgets/configuring-widgets.md): Original Author: Reade Plunkett
- [SwiftUI](https://ios-course.cornellappdev.com/resources/archived-past-semesters/fa23/lectures/swiftui.md): Fall 2023
- [SP23](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23.md)
- [Logistics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/logistics.md)
- [Lecture Schedule](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/logistics/lecture-schedule.md)
- [Syllabus](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/logistics/syllabus.md): Intro to iOS Development: Spring 2023
- [Grading](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/logistics/grading-and-project-faqs.md): Here is how grading will work for this class and answers for some FAQs about grading. Please check the FAQs before posting any questions you have about your project grades!
- [SP23 Office Hours](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/logistics/fa22-office-hours.md): Office hours schedule can also be found on the course calendar. Cancellations will be announced on Ed, and reflected in the calendar.
- [Chapters](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters.md)
- [1. Intro to Swift & Xcode](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/1.-intro-to-swift-and-xcode.md)
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/1.-intro-to-swift-and-xcode/lecture-handout.md)
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/1.-intro-to-swift-and-xcode/lecture-demo.md): Swift Basics
- [Project: Swift Basics](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/1.-intro-to-swift-and-xcode/project-swift-basics.md): Due Date: Thursday March 2nd
- [2. UIKit and AutoLayout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/2.-uikit-and-autolayout.md)
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/2.-uikit-and-autolayout/lecture-handout.md)
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/2.-uikit-and-autolayout/lecture-demo.md): UIKit and Autolayout
- [Project: UIKit + AutoLayout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/2.-uikit-and-autolayout/project-first-app.md): Due Date: Tuesday March 7th
- [3. Navigation, MVC, and Delegation](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/3.-navigation-mvc-and-delegation.md)
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/3.-navigation-mvc-and-delegation/lecture-handout.md)
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/3.-navigation-mvc-and-delegation/lecture-demo.md)
- [Project: Navigation + Delegation](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/3.-navigation-mvc-and-delegation/project-red-and-blue-arenas.md): Due Date: Monday, March 13th
- [4. UITableView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/4.-uitableview.md)
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/4.-uitableview/lecture-handout.md)
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/4.-uitableview/lecture-demo.md)
- [Project: UITableView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/4.-uitableview/project-uitableview.md): Due Date: TBD
- [5. UICollectionView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/5.-uicollectionview.md)
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/5.-uicollectionview/lecture-handout.md): This lecture covers UICollectionViews -- a widely used UIKit component. You'll notice that UICollectionViews are very similar to UITableViews!
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/5.-uicollectionview/lecture-demo.md)
- [Project: UICollectionView](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/5.-uicollectionview/project-uicollectionview.md): Due Date:Tuesday, March 28th
- [6. Networking I](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/6.-networking-i-and-cocoapods.md): URLs & Persistence
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/6.-networking-i-and-cocoapods/lecture-handout.md): This lecture covers the first half of networking (making a request) and introduces Cocoapods.
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/6.-networking-i-and-cocoapods/lecture-demo.md)
- [Project: Persistence](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/6.-networking-i-and-cocoapods/project-persistence.md): Due Date: Tuesday, April 11th
- [7. Networking II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/7.-networking-ii-and-codable.md): Alamofire
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/7.-networking-ii-and-codable/lecture-handout.md): This lecture covers the second half of networking: decoding a response from the Internet.
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/7.-networking-ii-and-codable/lecture-demo.md)
- [Message Board](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/7.-networking-ii-and-codable/lecture-demo/project-message-board.md)
- [Project: Networking II](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/7.-networking-ii-and-codable/project-networking-ii.md): Due Date: Friday, April 21th
- [8. Swift UI](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/8.-swift-ui.md): Swift UI
- [9. CocoaPods](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/9.-cocoapods.md)
- [Lecture Handout](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/9.-cocoapods/lecture-handout.md)
- [Lecture Demo](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/chapters/9.-cocoapods/lecture-demo.md)
- [Cheat Sheets](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/cheat-sheets.md)
- [Setting Up a New Xcode Project](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/cheat-sheets/setting-up-a-new-xcode-project.md): The following are instructions on how to set up a new Xcode project. Please make sure you followed these instructions carefully to ensure your project runs successfully.
- [Submitting Your Projects](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/cheat-sheets/submitting-your-projects.md): The following are instructions on how to properly submitting your projects to CMS, which you'll be doing for your assignments.
- [Setting Up CocoaPods](https://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/cheat-sheets/setting-up-cocoapods.md): The following are instructions on how to install CocoaPods to your Xcode project, which will be useful when we start our lectures on networking and external libraries.
- [2022](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2022.md)
- [SwiftUI](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2022/swiftui.md)
- [2021](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2021.md)
- [Adding Flare](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2021/adding-flare.md)
- [Project: UIView Animations (Optional - Extra Credit)](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2021/project-uiview-animations-optional-extra-credit.md): Due Date: Apr 18, 2022 @ 11:59 PM
- [UIView Animations](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2021/uiview-animations.md): Fall 2021 Additional Topic
- [Xcode Tips and Tricks](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2021/xcode-tips-and-tricks.md): Fall 2021 Additional Topic
- [2019](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2019.md)
- [Firebase](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2019/firebase.md): Spring 2019: Additional Topic
- [Persistence: UserDefaults](https://ios-course.cornellappdev.com/resources/archived-past-semesters/2019/persistance.md): Spring 2019 & Fall 2019 Additional Topic


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ios-course.cornellappdev.com/resources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
