Fundamentals of iOS Application Development

5 days

FMC Custom Course

This custom-designed class is created and owned by Future Media Concepts (FMC). It is not sponsored or authorized by Apple Inc.

Course Description

This course assumes a previous knowledge of Swift 3 programming. During the course, the student will build several projects with each teaching a different aspect of iOS programming and its related frameworks. There will also be a brief review of the Swift 3 programming language if needed. It will then go on to discuss the design of user interfaces, controllers, views, internationalization, animations and tables. From there the student will learn navigation techniques, the camera, storing and persisting data and web services.

Who Needs to Attend

Anyone who wants to build applications for iPhone, iPad or iPod touch. While not required, it would also be helpful to have your own iOS device (iPhone or iPad) and be a registered developer with Apple. Many of the features demonstrated in this course will not run in the Xcode simulator and must be tested on an actual iOS device. Also, for this course you will need an Intel-based Apple computer with Xcode installed. Xcode can be downloaded from the App Store free of charge and is approximately 2.5 GB large.


The Introduction to Swift 3 course or an equivalent knowledge is mandatory to understanding the material presented in this course.

Course Outline

Note: The curricula below comprise activities typically covered in a class at this skill level. The instructor may, at his/her discretion, adjust the lesson plan to meet the needs of the class.

Day 1

Creating a Simple iOS Application

  • Understanding the Model-View-Controller pattern
  • Using the Interface Builder
  • Creating Outlets and Actions
  • Adding Icons to a Project
  • Building a Project for Testing
  • Testing a Project

Introduction to UIKit and Adaptive Layout

  • The Adaptive Model
  • Building an Adaptive Interface
  • The View Hierarchy
  • A Brief Introduction to Auto Layout

Supporting Multiple Device Types

  • Creating a Universal Application
  • Understanding Size Classes and Traits
  • Testing the Universal Application using the iOS Simulator

A Brief Introduction to Swift

  • Using Xcode Playgrounds
  • Constants and Variables
  • Basic Data Types
  • String Interpolation
  • Collection Types
  • Functions
  • Closures
  • Conditional Logic
  • Loops
  • Tuples
  • Enumerations
  • Structures
  • Classes
  • Initializers
  • Instance and Type Properties
  • Stored and Computed Properties
  • Instance and Type Methods
  • Optionals
  • Protocols
  • Error Handling

Handing User Interaction

  • The Responder Chain
  • The First Responder Status
  • Text Fields
  • Dismissing the Keyboard

Day 2

Adding Images to a Project

  • The XCode Asset Catalog Format
  • Acceptable Image Types
  • Creating Image Sets
  • Image Size and Resolution Requirements
  • App Icon
  • Custom Icons
  • Launch Screen
  • System Icons

View Controllers and Storyboards

  • Creating a View Controller and its Corresponding Swift File
  • Linking a View Controller to its Swift File
  • Integrating a New View Controller into the Project

Alert Views and Action Sheets

  • Creating and Presenting Alert Views and Action Sheets
  • Human Interface Guidelines for Using Alert View and Action Sheets

Date Pickers and Custom Pickers

  • Creating and Presenting Picker Views
  • Building a Custom Picker
  • Human Interface Guidelines for Using Picker Views
  • Navigation Controller Features
  • Adding a Navigation Controller to a Project

Table Views and Table View Controllers

  • Creating a Table View Using the Interface Builder
  • Static and Dynamic Table Views
  • Creating a Data Source for a Table View
  • Designating the Delegate Object for a Table View
  • Table View Cells
  • Reusing Cells
  • Formatting Content

Collection Views

  • Adding a Collection View to a Layout
  • Configuring Collection Views
  • Human Interface Guidelines for Using Collections

Day 3

Tab Bars and Toolbars

  • Using the Tabbed Application Template
  • Configuring the Tab Bar
  • Adding Another Tab to the Tab Bar
  • Creating and Configuring a Toolbar

Scroll Views

  • Creating a Scroll View
  • Populating a Scroll View
  • Human Interface Guidelines for Using Scroll Views

Popovers and Modal Views

  • Creating Modal Views
  • Creating a Popover and Its Corresponding Swift File
  • Human Interface Guidelines for Using Scroll Views

Touches and Gestures

  • Handling Multi-Touch Events
  • Handling Gestures
  • Using Gesture Recognizers


  • Animation Basics
  • Beginning and Ending an Animation
  • Timing

Data Persistence Using Property Lists

  • Creating a Property List
  • Saving a Property List
  • Loading a Property List into UI Components

Application Settings

  • Adding a Settings Bundle to a Project
  • Configuring the Preferences Screen
  • Reading Preferences in Code

Day 4

Data Persistence Using Core Data

  • Core Data Architecture
  • Entities
  • Managed Objects
  • Managed Object Context
  • Persistent Store
  • Persistent Store Coordinator
  • Creating a Data Model
  • Adding Core Data to a Project
  • Instantiating Core Data Objects
  • Writing Managed Objects
  • Reading Managed Objects

Introduction to using Web Services in iOS Apps

  • SOAP and RESTful Web Services
  • Building a URL
  • Sending a Request
  • JSON Data
  • JSON Serialization
  • Creating a Data Task
  • Application Transport Security

Day 5

Social Media Integration

  • The Share Sheet
  • Posting Messages to Twitter and Facebook

Core Location

  • Permissions
  • Accuracy
  • Receiving Location Updates
  • Handling Errors and Checking Hardware Availability
  • Geocoding and Reverse Geocoding
  • Obtaining Compass Headings

Map Kit

  • Adding a Map View to a Layout
  • Adding Annotations
  • Accessory Views
  • Using a Segmented Control

Camera and Photo Library

  • Obtaining User Permissions
  • Selecting the Image Source
  • Presenting the Image Picker