Objectives

  • Learn to use Xcode 9'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 – save data on iOS devices using Text Files and Core Data for structured Databases
  • 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 SE's, 6's, and 7's, 8', iPads, etc.

Prerequisites

  • Basic knowledge of programming in Swift is recommended to get the most out of this class.
  • Object Oriented Programming experience is recommended
  • Basic familiarity with Mac computers and working in Mac OS X is recommended

Duration

5 days

Outline for iOS 11 App Development using Swift Training

1. 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

2. Adding Interactivity

  • Writing Swift 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

3. 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
  • More Control-Flow

4. Working with Image Assets & App Icons

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

5. Writing Classes in Swift

  • Declaring a Swift class in a separate file
  • Declaring Stored and Computed Properties
  • Creating Instance Methods
  • Control Flow with the Switch Statement

6. Using the PickerView

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

7. Using Storyboards & Creating Multiview Applications

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

8. Using TableViews

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

9. Using Collection Views

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

10. 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

11. Detecting and Handling Gestures

  • Swipe Gesture
  • Tap Gesture
  • Pinch Gesture
  • Pan Gesture
  • Rotation Gesture
  • Implementing Affine Transformations

12. Data Persistence

  • Working with NSFileManager and the iOS File Directory
  • Saving Property Lists
  • Using Databases with the sqlite Library
  • Working with Core Data

13. Maps, Core Location and Location Services

  • Displaying User Location on Map
  • Creating Annotations & Pins
  • Switching Map Types
  • The MKMapViewDelegate Protocol

14. Web Services

  • Creating an NSURLSession
  • Making requests and queries to specific URL's
  • Reading returned XML & JSON data
  • Parsing incoming XML with NSXMLParser
  • Parsing incoming JSON Data

15. Integrating your App with Social Media

  • Posting to Facebook and Twitter from within your App
  • Attaching Photos, URL's

16. Universal Apps - Auto-Layouts, Handling Device Rotations, and Size Classes

  • Working with Auto-Layouts
  • Implementing Size Classes
  • Handling Aspect Ratio Constraints

17. Application Life Cycle & View States/Life Cycle

  • Understanding Application States
  • Working with a ViewController's Life-Cycle
  • Creating Local Notifications

18. Unit Testing

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

19. 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