Fundamentals of iOS Application Development



This course assumes a previous knowledge of Swift 2 programming. In this course, you will build several project with each teaching a different aspect of iOS programming and its related frameworks. There will also be a brief review of the Swift 2 programming language if needed. You will learn about design of user interfaces, controllers, views, internationalization, animations, and tables. Additionally, you will explore navigation techniques, the camera, storing and persisting data, as well as Web Services.

For Connected Classroom attendees:�
Connected events will be held at a local training center with state-of-the-art video conferencing equipment allowing the course to be broadcast to multiple locations. Students will have the same classroom experience and interact live with the connected classroom instructor. The instructor will be on a large, HD quality screen with interactive video and audio to listen and communicate with students. A second large HD quality screen will display the instructor�s live presentation.


Individuals wanting to build applications for iPhone, iPad, or iPod touch.


While not required, it would 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.

1. Creating a Simple iOS Application

  • The Concept of a Model View Controller
  • Interface Builder
  • A Brief Introduction to Auto Layout
  • Outlets and Actions
  • Launch Screen
  • Icons

2. A Brief Review of Swift 2

  • Types
  • Xcode Playground
  • Initializers
  • Properties
  • Instance Methods
  • Optionals
  • Loops
  • String Interpolation
  • Enumerations
  • Switch Statements
  • Documentation


  • The View Hierarchy
  • Frames
  • Auto Layout

4. Text

  • Dismissing the Keyboard
  • Delegation
  • Protocols

5. View Controllers

  • MapKit Framework
  • UITabBarController
  • Loading Views
  • View Interaction

6. Programmatic Views

  • Creating Views Programmatically
  • Programmatic Controls

7. Localization

  • Internationalization

8. Animations

  • Animation Basics
  • Closures
  • Beginning and Ending an Animation
  • Timing

9. UITableView and UITableViewController

  • Creating a Data Source for a UITableView
  • UITableViewCells
  • Reusing Cells
  • Formatting Content

10. Editable Tables

  • Editing Mode
  • Inserting and Deleting Rows
  • Moving Rows
  • Alerts

11. Subclassing UITableViewCell

  • Creating Item Cells
  • Properties of a Cell
  • Dynamic Cell Heights
  • Dynamic Types
  • Responding to Events

12. Stack Views

  • UIStackView
  • Segues
  • Linking Content

13. UINavigationController

  • Dynamic Views within the NavigationController
  • UINavigationBar

14. Camera

  • Images
  • UIImageView
  • UIImagePickerController
  • Saving Images
  • ImageStore
  • Creating and Using Keys

15. Application States

  • Archiving
  • Application Sandbox
  • URLs
  • NSKeyedArchiver and NSKeyedUnarchiver
  • Application States and Transitions
  • Writing to the File System
  • Error Handling

16. Size Classes

17. Touch Events and UIResponder

  • Drawing with DrawView
  • Turning Touches into Lines
  • @IBInspectable

18. UIGestureRecognizer and UIMenuController

  • Detecting Taps
  • Multiple Gestures
  • UIMenuController
  • Long Gestures
  • Pan Gestures

19. Web Services

  • Building a URL
  • Sending a Request
  • NSURLSession
  • JSON Data
  • NSJSONSerialization
  • Parsing JSON data

20. Collection Views

  • Customized Layouts
  • Navigation

21. Core Data

  • Entities
  • NSManagedObjects
  • Core Data Stack
  • NSPersistentStoreCoordinator
  • NSManagedObjectContext
  • Updating Data

22. Core Data Relationships

  • Parent-Child Contexts