This course is designed to train both novice and experienced developers how to create native iOS 10 Apps for iPhone, iPad and iPod using the Objective-C programming language. Created by experienced iOS developers, the course places a very strong emphasis on hands-on learning through a multitude of exercises and demonstrations.

Students will be guided through a wide variety of in-class labs specifically designed to offer practical solutions to common problems that address real-world production needs. Topics covered include: multi-view apps, design-patterns, data-persistence, core data, web-services, JSON and XML parsing, maps and location services, working with images and animations, and handling gestures. An in-depth look at the Xcode 8 IDE and its many features and tools will also be included.

Course Duration: 5 days
Prerequisites:
  • Basic knowledge of programming in Objective-C is recommended to get the most out of this class. Note: a separate three-day Programming in Objective-C class is also available
  • Object-oriented programming experience is recommended
  • Basic familiarity with Mac computers and working in Mac OS X is recommended
Course Objectives:
  • Learn to use Xcode 8’s interface builder to design and build iOS app interfaces
  • Utilize iOS Controls such as buttons, switches, sliders and pickers
  • Build multi-screen apps using navigation controllers, the master-detail (“drill-down”) template and the tab-bar template
  • Data Persistence – Saving data on iOS devices using text files and core data
  • Make calls to web-services from an iOS app
  • Parse incoming JSON and XML data streams
  • Work with maps and location services to make location-aware apps
  • Enable gesture recognition to facilitate swipes, taps, pinches and pans
  • Use auto-layout and size classes to properly configure apps to support various screen sizes, device orientations (portrait and landscape) and iOS devices: iPhone 4’s, 5’s, 6’s, and 7’s, iPads, etc. apps
Course Outline:
  • Your First App – “Prepare for Takeoff”
    • Creating a New Project in Xcode
    • Designing an App Interface Using Interface Builder
    • Working with the Objects Library and the Attributes Inspector
    • Running and previewing the App using the iOS Simulator

 

  • Adding Interactivity
    • Writing Objective-C code in the ViewController file
    • Creating IBActions and IBOutlets
    • Activating Controls: enabling Buttons, Switches and Sliders
    • Using the Size Inspector
    • Creating an Alert with action Buttons from code
    • Working with Conditionals for basic Control-Flow

 

  • Enabling User Input
    • Working with Textfields to read in user inputted data
    • The iOS Keyboard and special alternate keyboard layouts
    • Alternate methods for dismissing the Keyboard
    • Using the Connections Inspector E. More Control-Flow

 

  • Working with Image Assets and App Icons
    • Creating a Custom Icon for your App
    • Creating a Custom Splash Image for your App
    • Managing Image Assets: Regular & Retina

 

  • Writing Classes in Objective-C
    • Declaring a Objective-C class in a separate file
    • Declaring Stored and Computed Properties
    • Creating Instance Methods
    • Control Flow with the Switch Statement

 

  • Using the PickerView
    • Single Component Pickers
    • Multi-Component Pickers
    • Working with the Date Picker and the NSDate class

 

  • Using Storyboards and Creating Multiview Applications
    • Using Navigation Controllers
    • Working with Segues
    • Passing Data between View Controllers
    • Creating Bar-Tab Application

 

  • Using TableViews
    • Creating regular and Multi-Sectioned TableViews
    • Drill-Down menus
    • Master-Detail scheme
    • Creating custom TableView Cells

 

  • Using Collection Views
    • Modifying Grid Layouts
    • Creating Custom CollectionView Cells
    • Enabling Cell-Tap Navigation to Detail Screens

 

  • Creating Views from Code
    • Initializing Objects with Code
    • Views, subviews, the Superview
    • The Subviews auto-array and View Index
    • Wiring up Views to IBActions using code

 

  • Detecting and Handling Gestures
    • Swipe Gesture
    • Tap Gesture
    • Pinch Gesture
    • Pan Gesture
    • Rotation Gesture
    • Implementing Affine Transformations

 

  • Data Persistence
    • Working with NSFileManager and the iOS File Directory
    • Saving Property Lists
    • Using Databases with the SQLite Library
    • Working with Core Data
  • Maps, Core Location and Location Services
    • Displaying User Location on Map
    • Creating Annotations and Pins
    • Switching Map Types
    • The MKMapViewDelegate Protocol

 

  • Web Services
    • Establishing an NSURL connection
    • Making an NSURLConnection Request
    • Reading returned XML & JSON data
    • Parsing incoming XML with NSXMLParser
    • Parsing incoming JSON Data

 

  • Integrating your App with Social Media
    • Posting to Facebook and Twitter from within your App
    • Attaching Photos, URL’s

 

  • Universal Apps – Auto-Layouts, Handling Device Rotations and Size Classes
    • Working with Auto-Layouts
    • Implementing Size Classes
    • Handling Aspect Ratio Constraints

 

  • Application Life Cycle and View States/Life Cycle
    • Understanding Application States
    • Working with a ViewController’s Life-Cycle
    • Creating Local Notifications

 

  • Unit Testing
    • Using the XCTest Framework
    • Creating unique tests for specific functionalities
    • Making Test Assertions
    • Creating performance-measurement tests

 

  • Submitting to the App Store
    • The iOS Developer’s Center
    • Creating App Certificates, Identifiers and Profiles
    • Archiving the Project
    • Ad-Hoc and App-Store Distribution