Hands-On Technology Transfer
presents
Swift Programming for iPhone® and iPad® Applications On-Site Training
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.
Course Description/Agenda
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.
Course Prerequisites: Prior programming experience in an
object-oriented language such as Objective-C, Java, C# or C++.
What You Will Learn
- Swift Language Syntax
- Installing and Configuring iOS Development Tools
- Xcode Development Environment
- Common Design Patterns
- MVC Architecture in Practice
- The ARC System
- Usage of the Most Common Views and View Controllers
- Creating Event Handlers
- Accessing and Maintaining Database Objects
- Service Oriented Architecture Concepts
- Storyboard Development for Multiple Platforms
- Multi-Threading Support
- Developing Interfaces for Multiple Platforms and Resolutions
- Core APIs and Frameworks
- Apple Design Guidelines
- Hardware Camera System and Image Capturing
- Audio and Video Recording/Playback
Course Overview
Macintosh Programming Environment
- Versions of iOS and Supported Devices
- Overview of OS X Versions
- Command Line Interaction
- Program Development Tools
- Apple Approval Process
Xcode IDE Installation and Use
- Installing and Updating Xcode
- Code Development and Tracking
- Debugging Support
- Visual Analysis Tools
- Application Navigation Tools
- Swift Playground
- Interactive Development and Live Rendering
- Interactive Graphics Support
- Performance Testing with XCTest
|
Swift Language Syntax
- Fundamental Declarations
- Object Oriented Programming Support
- Using Dynamic Binding
- Using ARC
- Writing Code for Hardware Interaction
- Data Types
- Type Inference
- Value Types
- Enumerations
- Tuples
- Algebraic Data Types
- Generics
- Flow Control
- String Manipulation & Pattern Matching
- Using Blocks
- Purpose and Syntax of Blocks
|
Event Handling
- Event Driven Programming Model
- Types of Application Events
- Declaring and Coding Event Handlers
- Handling Custom Events and Exceptions
- Recognizing System Events
- Recognizing Apps Moving to Background
- Detecting and Solving Low Memory Events
|
Design Patterns and the MVC Application Architecture
- Common Design Patterns
- Singleton Pattern
- Lazy Instantiation
- Protocol/Delegate Pattern
- Model-View-Controller Development Paradigm
- Application Design Process
- Core Services Layer
- Cocoa Touch Layers
- User Interface Frameworks
|
Threading Support
- Creating Threads
- Using Threads for Asynchronous Processing
- Setting Thread Priorities
- Synchronizing Messages
|
Web Service Support
- Exploiting Service Oriented Architecture
- Creating Apps that Use Web Services
- Advantages of Using RESTful Web Services
- Apple Push Notification Service (APNs)
- Apple Media Services
- Geographical Location Services
|
Custom View Design and Layout
- Designing Views
- Apple's UI Design Standards
- Utilizing Controls
- View Navigation
- Custom View Transitions and Animations
- Multi-View Application Considerations
|
Views and View Controllers
- Using Generic Views and View Controllers
- Page Views
- Picker Views
- Using Specific Purpose Views
- Text View
- Web View
- Map View
- Table and Table Cell View
|
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
|
Database Application Support
- Core Data Stack
- The Managed Object Model
- Managed Object Context
- Creating a Core Data Application
- Manipulating Core Data Objects
- SQLite Library
- Saving
- Retrieving
- Deleting
- iCloud Data Services
- iCloud Document and Data Storage
- Key-Value Data Storage
- Sharing Data between Applications
|
Hardware Camera Use
- Camera Detection
- Image Capture
- Image Display Options
- Saving Images
|
Audio Systems
- Recording
- Playback
- Streaming
|
Video Systems
- Recording
- Playback
- Saving Locations
|
|