BCS 422: iOS Mobile Application Development

This course provides an introduction to iOS mobile application development for Apple devices. Students will be introduced to the Swift programming language. Emphasis will be placed on good programming practices, on object oriented techniques, and on using established design patterns for mobile applications. Students will receive hands-on experience using the Xcode development environment to build example apps. Basic instruction in Objective-C will provide students with the ability to read and reuse legacy iOS code. Credits: 3.00


BCS 230 and one of the following BCS 345 or BCS 370 with a grade of C or better.

Course Objectives

At the completion of this course, students will be able to:

  1. Demonstrate an understanding of the MVC pattern by implementing programs with a clear division of work between Model, View and Controller
  2. Distinguish between the appropriate uses of the Target- Action, Delegation, and Notification communication patterns and use them in applications
  3. Create applications using split-view controllers, tab bar controllers, and scroll view controllers
  4. Produce multi-screen apps using storyboards and segues
  5. Use auto layout and size classes to create adaptive UIs
  6. Utilize the appropriate kits/APIs to create interactive applications that respond to touch
  7. Leverage iOS’ built in asynchronous threads mechanism where appropriate
  8. Build applications that can access outside data sources and store their own data persistently


  • iOS 9 App Development Essentials: Learn to Develop iOS 9 Apps Using Xcode 7 and Swift 2 by Neil Smyth,  Publisher: CreateSpace Independent Publishing Platform, 2nd edition (October 17, 2015) ISBN: 1518651550
  • The Swift programming language by Apple (Swift 2.1 version). 

Capstone Project

Students will select a semester project app with the guidance and assistance of the professor. Each project is required to satisfy a list of requirements including, but not limited to, (1) parsing internet data, (2) using a multiscreen controller (e.g., tableview), (3) using another advanced API not covered in class , and (4) having working testing code.

Final Exam

The final exam will consist of a live project—you will be given an app assignment and asked to complete it in the time allotted. This will be open book, open notes, closed friends.

Farmingdale State College

Monday-Friday 8:30am-4:30pm