Swift Programming for iPhone and iPad Applications
Details
Students will use Storyboards to design a user interface for iOS apps with multiple views. They will then configure view controller classes to interact with iOS views and controls (text fields, buttons, segmented controls, etc.) using IBOutlets, create event handlers using IBActions and then code events handlers.
Students will learn to persist data using three different strategies and implement each, read and write local files on the device, make asynchronous calls to Web services and parse XML data from the HTTP response. Students will also use Core Data to interact with local SQLite databases.
The course also includes coverage of how to implement the Apple delegate design pattern which is used in many APIs including those interacting with the camera and recorder. Students will practice these skills by writing code to capture images with the camera and recording and then playing back, audio.
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. The course also includes coverage of scheduled background execution to allow code to be run when the app isn't active.
Students learn how Apple's Cocoa Touch UI Framework provides an abstraction layer of iOS for the iPhone and iPad. The course emphasizes safe programming practices. 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.
Prerequisites: Prior programming experience in an object-oriented language such as Objective-C, Java, C# or C++.
Outline
- Versions of iOS and Supported Devices
- Examining the macOS
- Exploring macOS Tools
- Enrolling in the Apple Developer Program
- Using Swift Playgrounds
- Creating Apps Using Xcode Templates
- Exploring the Xcode IDE
- Leveraging Xcode Debugging Support
- Declaring Variables and Constants
- Working with Swift Numeric Data Types
- Working with Strings
- Working with Dates
- Understanding Swift Optionals
- Leveraging Swift Generics
- Working with Collections (Arrays and Dictionaries)
- Using Tuples
- Using Flow Control Statements (if, switch)
- Writing Loops (for, while, repeat)
- Writing and Calling Functions
- Defining Parameters
- Specifying Return Type
- Using Named Parameters
- Nesting Functions
- Using Swift Blocks
- Defining Classes
- Declaring Properties
- Writing Initialization Methods
- Creating Methods
- Understanding Public vs. Private
- Instantiating and Using Objects
- Understanding ARC (Automatic Reference Counting)
- Implementing the Delegate Design Pattern
- Declaring Protocols
- Implementing Protocols
- Optional Protocol Methods
- Understanding Swift Error Handling
- Defining and Throwing Errors
- Propagating Errors Using Throwing Functions
- Handling Errors Using do-catch
- Understanding the Swift Error Type
- Converting Errors to Optionals
- Using defer to Specify Cleanup Actions
- Understanding iOS Application Architecture
- Exploring Design Patterns used in iOS Apps
- Model-View-Controller
- Singleton Pattern
- Lazy Instantiation
- Protocol/Delegate Pattern
- Working with View Controllers
- Designing the UI Using Storyboards
- Building IBOutlets and IBActions
- Handling Events
- Exploring iOS Controls, Views and View Controllers
- Creating Multiple Views
- Using Segues for View Transitions
- Using Navigation Controllers
- Implementing Master/Detail Applications
- Using AutoLayout to Manage Different Size Devices
- iOS File System Structure
- Locating an Application's File Space
- Locating Files
- Creating Files
- Understanding Serializable Types
- Reading and Writing Files
- Using RESTful Web Services
- Creating Apps that Use Web Services
- Configuring and Using URLSession
- Working with Requests
- Formatting Data for Transmission Over a Network
- Parsing Data in Responses
- Using URLSessionTasks
- Configuring App Transport Security
- The Managed Object Model
- Managed Object Context
- Creating a Core Data Application
- Understanding the Core Data Model
- Creating Entities and Attributes
- Subclassing NSManagedObject
- Fetching, Editing and Saving Core Data Objects
- Working with the Core Data Master/Detail Template
- Detecting the Camera
- Types of Media
- Working with UIImagePickerController
- Capturing and Processing the Image
- Saving the Image
- Configuring Camera and Photo Library Permissions
- Using the AVAudioSession
- Recording Audio
- Playing Audio
- Configuring Microphone Permissions
- Understanding Multi-Touch Concepts
- iOS Recognizable Gestures
- Recognizing User's Touch
- Using Gesture Recognizers
- Understanding Mixed Language Applications
- Examining Objective-C Syntax
- Using Objective-C in Swift
- Using Swift in Objective-C
- Application Lifecycle Events
- Examining the App Delegate
- Reacting to System Events
- Running Tasks in the Background
Software Skills Training, Inc. (SST) is a leading provider of task-oriented training courses for IT professionals. Our task-based training philosophy is focused on saving you time and assuring that you are able to work more productively and with higher quality results after training. Founded in 2000, SST has delivered high-powered training to tens of thousands of IT professionals.
Choose from a variety of delivery options:
- Face-to-face in the classroom in over 100 cities
- Live remote attendance
- On-demand streaming
- Group training at your facility
We guarantee the overall quality of our courses with a 100% money-back guarantee. If any student is not totally satisfied for any reason, they can withdraw before the second day of class. Notify the instructor and return all course materials and receive a 100% refund.
Why Choose SST?- 50% hands on labs
- Small class sizes typically under 14 students
- Expert instructors that average over 10 years of teaching experience
- Students can retake any portion of a class that has been completed, within 12 months at no extra cost
- No registration fees or cancellation fees