First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

iPhone and iPad Programming in Swift

Duration: 5 Days

Intended Audience

This course is aimed at software developers who will be developing, deploying and maintaining Apple iPhone and iPad applications. It does not require any previous iOS experience, however, delegates should have Object Oriented Programming experience in a language such as C#, C++, or Java.

Course Outline

  • iOS Overview
    • Introduction to iOS
  • Xcode Overview
    • Introducing the Xcode IDE
    • Obtaining and installing Xcode
  • Introduction to Swift
    • Design of Swift
    • The structure of an iPhone/iPad app
  • Defining the User Interface
    • Project Navigator
    • Views and the View Hierarchy
    • XIB Files
    • Working with Interface Builder
    • Built-in Templates
  • Storyboards and Universal Storyboards
    • Storyboards and Screen Sizes
    • Targetting iPhone / iPad / iPod Touch
  • Auto-layout and Size Classes
    • Enabling Auto-Layout
    • Customising Views and Constraints
  • Building and using UI Controls
    • GUI Widgets and UIKit resources
    • Buttons
    • Labels
    • Pickers
    • Sliders
    • Web views
  • Table Controllers
    • Table View and the Data Model
    • Index Paths
    • Pull Refresh
  • Navigation Controllers
    • Manual vs. Automatically Generated controller objects
    • The Root View Controller
    • Navigation Bar Controllers
    • Tab Bar Controllers
    • Notifications and how to respond to them
  • Understanding and Working With View Controller Catalog Elements
    • Tabs
    • Page View Controller
    • Split Views
    • Flip Views
    • Popovers
  • Collection Views
    • Grids
    • Stacks
    • Circular layouts
    • Custom Layouts and Dynamic Layouts
  • The Touch UI and Gesture Recognition
    • Cocoa Touch Layer
    • UIView Objects and Dynamic Behaviours
    • Event Handling
    • Gesture Recognizers
    • Discrete vs. Continuous Gestures
  • Message Boxes and User Alerts
    • Pop-up Dialogs
    • Message boxes with Input elements (Yes / No / Cancel...)
  • Local and Remote / Push Notifications
    • Local notifications
    • Push notifications
    • How to Handle Apps running in the background
    • Auto-hiding the keyboard
    • iOS Keyboard show/hide Responders
  • Connecting to external Web services
    • Overview of Web Services
    • Connecting to Web Services
    • Processing XML and JSON data
  • Introduction to iOS Multithreading and the NSObject APIs
    • Blocks
    • Block Literals
    • Anonymous Functions
    • The Handling and Storage of Blocks
  • Concurrency, Multithreading and Grand Central Dispatch
    • Responsiveness and GCD
    • Concurrency in iOS
  • Working with Location Data and Maps
    • Core Location Framework interfaces
    • Location Services
    • Maps and the Map Kit Framework
  • Local and Remote Data Storage and Data Access
    • Local Storage
    • Apple iCloud
    • Overview of other 3rd-party storage APIs
  • User Preferences
    • Persisting User Preferences
    • The User Defaults System
    • Storing Preferences to iCloud
  • Core Data
    • Core Data using Magical Record
    • Replacing Core Data with Realm
  • Memory management and Automatic Reference Counting (ARC)
    • Tracking and managing App memory usage
    • "Strong" references to Properties, Constants, and Variables
  • App tuning
  • Overview of App Store Provisioning
    • The Process of App Publishing
    • Provisioning Profiles
    • Archiving and Validating an App
    • Submitting an App using Xcode or Application Loader