syllabus.md

Intermediate iOS (IOS102)

πŸ“š Course Description

IOS102 is an immersive project-based journey through iOS app development in Swift. From conceptual design to building out fully functional iOS apps, students will utilize the latest industry-level development techniques and collaborate with peers to bring their app ideas to life. Whether it’s an app like Instagram, WhatsApp, or Spotify, the only limit to what you can build is your imagination!

Course Goals

At the completion of this course, students will have learned to:

  • Create iOS applications that can be deployed to their iPhones and/or App Store using the Xcode IDE and Swift programming language
  • Design UI using UIKit framework and common patterns such as table views and collection views
  • Integrate with application programming interfaces (APIs) to display and manipulate data
  • Use Xcode to develop and debug iOS applications


πŸ™‹ Student Expectations

Prior Knowledge

Students are expected to have taken at least one (1) semester of introductory programming and have an understanding of Object-Oriented Programming principles. Prior knowledge of the Swift programming language is NOT required. Additionally, students will need to have either taken IOS101 and passed or have iOS development experience at the IOS101 level.

The course pre-work will have students build a simple app from scratch showcasing UIKit/storyboard framework.

Time Commitment

Students are expected to commit 7-10 hours per week during the course.

  • Classes meet weekly for 2 hours of synchronous class time over the duration of the course
  • Students should plan to spend 5-8 hours outside of class working on weekly assignments and the final group project

Technology Requirements

All students will need to use a Mac running MacOS. Building iOS apps natively requires the use of the Xcode IDE, which is only available on MacOS. Use of an iPhone is not a requirement for this course.



πŸ—οΈ Course Structure

Course Format

This course explores iOS development in a project-based approach over ten (10) units. Each unit builds on the concepts covered in prior units, equipping students with sufficient tools to develop their final project.

Each unit will consist of the following:

  • 2 hours of in-class lectures and activities

    • Students will reinforce learned concepts through labs
    • Students will practice pair programming and collaboration skills
  • 5-8 hours of asynchronous assignments

    • In Units 1-6, students will work on individual projects to showcase the skills they learned in class
    • In Units 7-10, students will work in teams to scope, design, and build an original app using concepts learned throughout the course, showcasing their apps on demo day

Topics Schedule

By the end of this course, students will be familiar with the following:

Unit Topic Concepts
1 Introduction to Xcode Xcode, Swift, Autolayout
2 Views Table views and collection views
3 Networking REST APIs
4 Camera Camera and MapKit
5 Database Parse/Back4App
6 Database Parse/Back4App
7 App Development Product Specs
9 App Development Wireframes/Schemas
9 App Development Final sprint
10 Demo Day App presentation


πŸ“± Capstone Project

Over the second half of the course, students will be grouped into teams and begin work to design and develop an original app idea that will be built from scratch. This app will implement many of the features learned throughout the course, such as navigation between multiple screens, creating and using a custom backend, persisting data, updating the user interface, making network requests, etc.

  • Students will be grouped into teams of 3-8
  • Students will create group milestone deliverables to be completed each week
  • Students will design and develop their app from the ground up
  • Students will demonstrate their app on demo day to peers and industry guests


βš–οΈ Policies