You are on page 1of 5

SwiftProgrammingfor

iPhone andiPad
Applications
5 Day Course

Swift Programming for iPhone and iPad Applications


5 Day Course

Course Description
In this hands on Swift programming course, attendees will learn how to develop iPhone and
iPad applications using the Swift programming language and the Xcode 6 Integrated
Development Environment. The course emphasizes safe programming practices and introduces
the MVC pattern in detail. Students are familiarized with core APIs including the Foundation and
Cocoa Touch frameworks. Students will learn how to utilize Objective-C code in Swift
applications in order to take advantage of the rich variety of existing APIs and frameworks.
Students will learn how to save and read files for local systems and how to use the Core Data
system to create local SQLite databases. Attendees also learn how to develop apps
incorporating iCloud support, and the requirements for sharing documents.
Students will learn how to use built-in data views as well as create custom screens for data
entry and presentation. The course presents Apple's design recommendations for providing
clean interfaces that appropriately size to various devices and screens. The course emphasizes
Service Oriented Architecture (SOA), and students learn how iOS apps interact with Web
services through request/response systems. Hands on practice includes implementing code to
access a web service asynchronously.
Students will learn how to use the camera and microphone for still images, videos and audio.
The course also includes coverage of scheduled background execution to allow code to be run
when the app isn't active and to schedule alerts to draw attention back to the app.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop
real competency. Students will create Swift apps from the ground up, demonstrating the
features of Swift and its supporting code libraries.

Students will Learn

Swift Language Syntax


Installing and Configuring iOS Development Tools
XCode Development Environment
Common Design Patterns
Designing Model-View-Controller Applications
The ARC System
Usage of the Most Common Views and View Controllers
Creating Adaptive User Interfaces for Multiple iOS Devices
Responding to User Interactions with Event Handlers
Accessing and Maintaining Database Objects

Persisting Data Manually and with Core Data


Service Oriented Architecture Concepts
Implementing Web Services into iOS Applications
Storyboard Development for Multiple Platforms
Developing Interfaces for Multiple Platforms and Resolutions
Core APIs and Frameworks

3/6/2015

Page 2

Swift Programming for iPhone and iPad Applications


5 Day Course

Apple Design Guidelines and Good Code Design Practices


Hardware Camera System and Image Capturing
Audio and Video Recording/Playback

Prerequisites
Prior programming experience in an object-oriented language such as Objective-C, Java, C# or
C++.

Course Structure/Content Outline


Macintosh Programming Environment
Swift Language Syntax
Versions of iOS and Supported Devices
Fundamental Declarations
Overview of OS X Versions
Object Oriented Programming Support
Command Line Interaction
Using Dynamic Binding
Program Development Tools
Writing Code for Hardware Interaction
Apple Approval Process
Data Types
o Type Inference
Xcode IDE Installation and Use
o Value Types
Installing and Updating Xcode
o Enumerations
Using Xcode Templates
o Optional Values and Tuples
Code Development and Tracking
o Algebraic Data Types
Debugging Support
o Collection Types (Arrays and
Visual Analysis Tools
Dictionaries)
Application Navigation Tools
o Generics
Swift Playground
Flow Control, Loops and Functions
o Interactive Development and
String Manipulation & Pattern Matching
Live Rendering
Using Blocks
o Interactive Graphics Support
o Purpose and Syntax of Blocks
Performance Testing with XCTest
Object Oriented Programming Constructs Design Patterns and the MVC Application
Designing Classes
Architecture
Common Design Patterns
Defining Classes in Code
o Singleton Pattern
o Creating Methods within Classes
o Lazy Instantiation
o Declaring Parameters and
o Protocol/Delegate Pattern
Return Types
o Writing Initialization Methods
Model-View-Controller Development
o Public vs. Private Methods
Paradigm
Application Design Process
Instantiating and Using Class Objects
Core Services Layer
Using ARC (Automatic Reference
Cocoa Touch Layers
Counting)
Using Properties within a Class
o Public vs. Private Properties

3/6/2015

Page 3

Swift Programming for iPhone and iPad Applications


5 Day Course

Initializing Properties

Manipulating and Using


Properties

Event Handling
Event Driven Programming Model
o Types of Application Events
o Declaring and Coding Event
Handlers
o Handling Custom Events
o

Handling System Events

Delegates and Protocols


Declaring Protocols
Implementing Delegate Methods
Conforming Classes to Protocols
Identifying Delegate Patterns

Required vs. Optional Methods

Custom View Design and Layout


Designing Views
Apple's UI Design Standards
Utilizing Controls
View Navigation
Custom View Transitions and
Animations

User Interface Frameworks

GUI Interfaces
Using Xcode to Create GUI Interfaces
Using Adaptive Views to Adjust for
Different Size Devices
Creating Views in Storyboard
Adding Items to Views
Creating Segues for View Transitions
Using Live Rendering

Using @IBDesignable and


@IBInspectable
Web Service Support
Exploiting Service Oriented Architecture
Creating Apps that Use Web Services
Advantages of Using RESTful Web
Services
Using NSURLSession
Formatting Data for Transmission Over a
Network
Apple Push Notification Service (APNs)
Apple Media Services
Geographical Location Services
Views and View Controllers
Using Generic Views and View
Controllers
Page Views
Picker Views
Using Specific Purpose Views
o Text View
o Web View
o Map View

Multi-View Application Considerations

Reading and Writing Files


Data Persistence Concepts
iOS File System Structure
Locating an Application's File Space
Manipulating Files
o Locating Files
o Testing for Existence

3/6/2015

Table and Table Cell View


Using Core Data
Core Data Stack
o The Managed Object Model
o Managed Object Context
Creating a Core Data Application
Manipulating Core Data Objects
o SQLite Library

Page 4

Swift Programming for iPhone and iPad Applications


5 Day Course

o
o

Creating Files
Reading and Writing Files

Closing and Saving Files

Saving
Retrieving
Deleting
iCloud Data Services
o iCloud Document and Data
Storage
o Key-Value Data Storage
o
o
o

Touch Recognition and Gestures


Multi-Touch Concepts
iOS Recognizable Gestures
Recognizing User's Touch Movement
Recognizing Touch Release

Responding to Users Touch and


Gestures

Audio Systems
Recording
Playback
Streaming

Sharing Data between


Applications

Hardware Camera Use


Camera Detection
Types of Media
Image Capture
Image Display Options

Saving Images

Compatibility Support
Using Swift in Objective-C (Interfacing
Protocols)
Using Objective-C APIs in Swift
Working with Cocoa Data Types and
Design Patterns
Migrating Objective-C to Swift

AVAudioSession

Importing Objective-C and C APIs into


Swift

System Events and Background Execution


Application Lifecycle Events
Reacting to System Events
Methods Declared in the App Delegate
Coding Methods in the App Delegate

Running Tasks in the Background

3/6/2015

Page 5

You might also like