This course covers the programming concepts needed to create dynamic iOS applications that can respond to user events and connect with a back end service. Key concepts include closures, callbacks and delegates. Students will understand how these constructs work and how they are used to pass information and execute blocks of code. Common communication patterns and how memory management works will also be explored. Students will also learn how to fetch and parse information from the Internet through APIs. They will interact with public APIs with and without authentication, make network requests in iOS using native Swift tools, model a networking layer in iOS, and parse a JSON network response.
Most, if not all, mobile apps will need to communicate with an external service to work. It's important for you to know how to create this communication flow using native Swift tools. Communication within an app is also something you will need to implement as your apps get more complex. When you know different approaches to this problem, you'll be able to choose the one that best suits a specific need.
Course Delivery: online | 7 weeks | 13 sessions
Course Credits: 3 units | 75 Total Hours
Students by the end of the course will be able to ...
- Use closures, callbacks and delegates to pass information and execute code
- Identify and use different communication patterns in iOS
- Explain how memory management works in Swift
- Create a networking layer to make requests to public APIs with or without authentication
- Parse a JSON network response using the Codable protocol
Course Dates: Tuesday, Mar 30 – Thursday, May 13, 2021 (7 weeks)
Class Times: Tuesday, Thursday at 1:45–2:30pm (13 class sessions)
Class | Date | Topics |
---|---|---|
1 | Tue, Mar 30 | Closures and callbacks |
2 | Thu, Apr 1 | No Class - Cesar Chavez |
3 | Tue, Apr 6 | Communication patterns |
3 | Thu, Apr 8 | Protocols & Delegation |
4 | Tue, Apr 13 | Memory Management |
5 | Thu, Apr 15 | JSON and the Codable Protocol |
6 | Tue, Apr 20 | Lab - Review & Questions |
7 | Thu, Apr 22 | URLSession |
8 | Tue, Apr 27 | Pokedex solution |
9 | Thu, Apr 29 | Authentication |
10 | Tue, May 4 | Building a networking layer Pt 1 |
11 | Thu, May 6 | Generics |
12 | Tue, May 11 | Building a networking layer Pt 2 + Firebase |
13 | Thu, May 13 | Final Exam - study guide |
Name | Type | Date Assigned | Due Date |
---|---|---|---|
Pomodoro App | In-class | Apr 5 | Apr 12 |
Product Hunt tutorial | Tutorial | Apr 21 | Apr 26 |
Pokedex assignment | In-class | Apr 22 | Apr 28 |
Moviefy App | Tutorial/Project | May 4 | May 16 |
Individual project covering core concepts from this course.
To pass this course you must meet the following requirements:
- Complete all tutorials
- Complete at least 80% of in-class assignments
- Pass the final project with at least 70% on its rubric
- Pass the final summative assessment according to the rubric as specified in this class
- This will be further explained in the study guide
- Actively participate in class and abide by the attendance policy
- Make up all classwork from all absences
- An extra class on Sockets with a tutorial.
- Tutorial for Closures & ARC
Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:
- Program Learning Outcomes - What you will achieve after finishing Make School, all courses are designed around these outcomes.
- Grading System - How grading is done at Make School
- Diversity and Inclusion Statement - Learn about Diversity and Inclusion at Make School
- Academic Honesty - Our policies around plagiarism, cheating, and other forms of academic misconduct
- Attendance Policy - What we expect from you in terms of attendance for all classes at Make School
- Course Credit Policy - Our policy for how you obtain credit for your courses
- Disability Services (Academic Accommodations) - Services and accommodations we provide for students
- Student Handbook - Guidelines, policies, and resources for all Make School students