Skip to content

Make-School-Courses/MOB-1.3-Dynamic-iOS-Apps

Repository files navigation

Dynamic iOS Apps

Course Description

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.

Why you should know this

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.

Prerequisites:

Course Specifics

Course Delivery: online | 7 weeks | 13 sessions

Course Credits: 3 units | 75 Total Hours

Learning Outcomes

Students by the end of the course will be able to ...

  1. Use closures, callbacks and delegates to pass information and execute code
  2. Identify and use different communication patterns in iOS
  3. Explain how memory management works in Swift
  4. Create a networking layer to make requests to public APIs with or without authentication
  5. Parse a JSON network response using the Codable protocol

Schedule

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

Tutorials + Assignments Schedule

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

Final project

Individual project covering core concepts from this course.

Evaluation

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
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Resources

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Make School Course Policies