Objectives
- Learn to use Xcode 9's Interface Builder to design and build iOS App Interfaces.
- Utilize iOS Controls such as Buttons, Switches, Sliders, and Pickers.
- Build multi-screen Apps using Navigation Controllers, the Master-Detail (“Drill-Down”) template and the Tab-Bar Template.
- Data Persistence – save data on iOS devices using Text Files and Core Data for structured Databases
- Make calls to Web-Services from an iOS App
- Parse incoming JSON and XML data streams
- Work with Maps and Location Services to make location-aware Apps
- Enable Gesture Recognition to facilitate Swipes, Taps, Pinches, and Pans.
- Use Auto-Layout and Size Classes to properly configure Apps to support various screen sizes, device orientations (Portrait and Landscape) and iOS devices: iPhone SE's, 6's, and 7's, 8', iPads, etc.
Prerequisites
- Basic knowledge of programming in Swift is recommended to get the most out of this class.
- Object Oriented Programming experience is recommended
- Basic familiarity with Mac computers and working in Mac OS X is recommended
Duration
5 days
Outline for iOS 11 App Development using Swift Training
1. Your First App - “Prepare for Takeoff”
- Creating a new Project in Xcode
- Designing an App interface using Interface Builder
- Working with the Objects Library and the Attributes Inspector
- Running and previewing the App using the iOS Simulator
2. Adding Interactivity
- Writing Swift code in the ViewController file
- Creating IBActions and IBOutlets
- Activating Controls: enabling Buttons, Switches and Sliders
- Using the Size Inspector
- Creating an Alert with action Buttons from code
- Working with Conditionals for basic Control-Flow
3. Enabling User Input
- Working with Textfields to read in user inputted data
- The iOS Keyboard and special alternate keyboard layouts
- Alternate methods for dismissing the Keyboard
- Using the Connections Inspector
- More Control-Flow
4. Working with Image Assets & App Icons
- Creating a Custom Icon for your App
- Creating a Custom Splash Image for your App
- Managing Image Assets: Regular & Retina
5. Writing Classes in Swift
- Declaring a Swift class in a separate file
- Declaring Stored and Computed Properties
- Creating Instance Methods
- Control Flow with the Switch Statement
6. Using the PickerView
- Single Component Pickers
- Multi-Component Pickers
- Working with the Date Picker and the NSDate class
7. Using Storyboards & Creating Multiview Applications
- Using Navigation Controllers
- Working with Segues
- Passing Data between View Controllers
- Creating Bar-Tab Application
8. Using TableViews
- Creating regular and Multi-Sectioned TableViews
- Drill-Down menus
- Master-Detail scheme
- Creating custom TableView Cells
9. Using Collection Views
- Modifying Grid Layouts
- Creating Custom CollectionView Cells
- Enabling Cell-Tap Navigation to Detail Screens
10. Creating Views from Code
- Initializing Objects with Code
- Views, subviews, the Superview
- The Subviews auto-array and View Index
- Wiring up Views to IBActions using code
11. Detecting and Handling Gestures
- Swipe Gesture
- Tap Gesture
- Pinch Gesture
- Pan Gesture
- Rotation Gesture
- Implementing Affine Transformations
12. Data Persistence
- Working with NSFileManager and the iOS File Directory
- Saving Property Lists
- Using Databases with the sqlite Library
- Working with Core Data
13. Maps, Core Location and Location Services
- Displaying User Location on Map
- Creating Annotations & Pins
- Switching Map Types
- The MKMapViewDelegate Protocol
14. Web Services
- Creating an NSURLSession
- Making requests and queries to specific URL's
- Reading returned XML & JSON data
- Parsing incoming XML with NSXMLParser
- Parsing incoming JSON Data
15. Integrating your App with Social Media
- Posting to Facebook and Twitter from within your App
- Attaching Photos, URL's
16. Universal Apps - Auto-Layouts, Handling Device Rotations, and Size Classes
- Working with Auto-Layouts
- Implementing Size Classes
- Handling Aspect Ratio Constraints
17. Application Life Cycle & View States/Life Cycle
- Understanding Application States
- Working with a ViewController's Life-Cycle
- Creating Local Notifications
18. Unit Testing
- Using the XCTest Framework
- Creating unique tests for specific funtionalities
- Making Test Assertions
- Creating performance-measurement tests
19. Submitting to the App Store
- The iOS Developer's Center
- Creating App Certificates, Identifiers and Profiles
- Archiving the Project
- Ad-Hoc and App-Store Distribution