Course Description
Note: This custom-designed class is created and owned by Future Media Concepts. It is not sponsored or authorized by Apple Inc.
Course Description
This course assumes a previous knowledge of Swift 2 programming. During the course, the student will build several projects with each teaching a different aspect of iOS programming and its related frameworks. There will also be a brief review of the Swift 2 programming language if needed. It will then go on to discuss the design of user interfaces, controllers, views, internationalization, animations and tables. From there the student will learn navigation techniques, the camera, storing and persisting data and web services.
Who Needs to Attend
Anyone who wants to build applications for iPhone, iPad or iPod touch. While not required, it would also be helpful to have your own iOS device (iPhone or iPad) and be a registered developer with Apple. Many of the features demonstrated in this course will not run in the Xcode simulator and must be tested on an actual iOS device. Also, for this course you will need an Intel-based Apple computer with Xcode installed. Xcode can be downloaded from the App Store free of charge and is approximately 2.5 GB large.
Prerequisites
The Introduction to Swift 2 course or an equivalent knowledge is mandatory to understanding the material presented in this course.
Course Outline
Note: The curricula below comprise activities typically covered in a class at this skill level. The instructor may, at his/her discretion, adjust the lesson plan to meet the needs of the class.
Day 1
Creating a Simple iOS Application
- Understanding the Model-View-Controller pattern
- Using the Interface Builder
- Creating Outlets and Actions
- Adding Icons to a Project
- Building a Project for Testing
- Testing a Project
Introduction to UIKit and Adaptive Layout
- The Adaptive Model
- Building an Adaptive Interface
- The View Hierarchy
- A Brief Introduction to Auto Layout
Supporting Multiple Device Types
- Creating a Universal Application
- Understanding Size Classes and Traits
- Testing the Universal Application using the iOS Simulator
A Brief Introduction to Swift
- Using Xcode Playgrounds
- Constants and Variables
- Basic Data Types
- String Interpolation
- Collection Types
- Functions
- Closures
- Conditional Logic
- Loops
- Tuples
- Enumerations
- Structures
- Classes
- Initializers
- Instance and Type Properties
- Stored and Computed Properties
- Instance and Type Methods
- Optionals
- Protocols
- Error Handling
Handing User Interaction
- The Responder Chain
- The First Responder Status
- Text Fields
- Dismissing the Keyboard
Day 2
Adding Images to a Project
- The XCode Asset Catalog Format
- Acceptable Image Types
- Creating Image Sets
- Image Size and Resolution Requirements
- App Icon
- Custom Icons
- Launch Screen
- System Icons
View Controllers and Storyboards
- Creating a View Controller and its Corresponding Swift File
- Linking a View Controller to its Swift File
- Integrating a New View Controller into the Project
Alert Views and Action Sheets
- Creating and Presenting Alert Views and Action Sheets
- Human Interface Guidelines for Using Alert View and Action Sheets
Date Pickers and Custom Pickers
- Creating and Presenting Picker Views
- Building a Custom Picker
- Human Interface Guidelines for Using Picker Views
Navigation Controllers
- Navigation Controller Features
- Adding a Navigation Controller to a Project
Table Views and Table View Controllers
- Creating a Table View Using the Interface Builder
- Static and Dynamic Table Views
- Creating a Data Source for a Table View
- Designating the Delegate Object for a Table View
- Table View Cells
- Reusing Cells
- Formatting Content
Collection Views
- Adding a Collection View to a Layout
- Configuring Collection Views
- Human Interface Guidelines for Using Collections
Day 3
- Using the Tabbed Application Template
- Configuring the Tab Bar
- Adding Another Tab to the Tab Bar
- Creating and Configuring a Toolbar
- Creating a Scroll View
- Populating a Scroll View
- Human Interface Guidelines for Using Scroll Views
Popovers and Modal Views
- Creating Modal Views
- Creating a Popover and Its Corresponding Swift File
- Human Interface Guidelines for Using Scroll Views
Touches and Gestures
- Handling Multi-Touch Events
- Handling Gestures
- Using Gesture Recognizers
Animations
- Animation Basics
- Beginning and Ending an Animation
- Timing
Data Persistence Using Property Lists
- Creating a Property List
- Saving a Property List
- Loading a Property List into UI Components
Application Settings
- Adding a Settings Bundle to a Project
- Configuring the Preferences Screen
- Reading Preferences in Code
Day 4
Data Persistence Using Core Data
- Core Data Architecture
- Entities
- Managed Objects
- Managed Object Context
- Persistent Store
- Persistent Store Coordinator
- Creating a Data Model
- Adding Core Data to a Project
- Instantiating Core Data Objects
- Writing Managed Objects
- Reading Managed Objects
Introduction to using Web Services in iOS Apps
- SOAP and RESTful Web Services
- Building a URL
- Sending a Request
- JSON Data
- JSON Serialization
- Creating a Data Task
- Application Transport Security
Day 5
- The Share Sheet
- Posting Messages to Twitter and Facebook
Core Location
- Permissions
- Accuracy
- Receiving Location Updates
- Handling Errors and Checking Hardware Availability
- Geocoding and Reverse Geocoding
- Obtaining Compass Headings
Map Kit
- Adding a Map View to a Layout
- Adding Annotations
- Accessory Views
- Using a Segmented Control
Camera and Photo Library
- Obtaining User Permissions
- Selecting the Image Source
- Presenting the Image Picker
Cancelling an Open Enrollment Registration
Cancellation policy:
If notice is given 15 or more calendar days before the start of a class, the student may receive a full refund less a $100 administrative fee. If notice is given less than 15 calendar days no rescheduling or efunds are permitted.
Rescheduling Policy
If notice Is given 15 or more calendar days before the start of the class a student may reschedule . A student can reschedule a class up to two (2) times. Additional reschedules will not be allowed.
No Shows if a student does not attend a scheduled session, there will be no refund or rescheduling permitted. Payment is forfeited. FMC reserves the right to cancel classes with insufficient enrollment or in other circumstances. FMC will endeavor to give as much advance notice as possible of any change to the schedule. FMC shall not be responsible for any incidental or consequential loss arising whatsoever.