Duration
5 days
Overview
This is an advanced course for those who have completed the Application Development - Introduction and Application Development - Intermediate courses. During this course, you will explore advanced topics such as Interoperability with Objective-C, Web Services, Core Data, iCloud syncing, Unit testing, Performance tuning, Concurrency, Bluetooth and Push Notification. We will also explore the Calendar and HealthKit frameworks, learn how to use a third party framework to create charts, write your own framework and create a WatchOS app.
Course Prerequisites
Intermediate knowledge of Swift is required.
It is recommended for participants to go for the iOS Application Development - Introduction and the iOS Application Development - Intermedidate course prior to attending this course.
Day 1
- 1. Interoperability
An Objective-C Project
Creating a contacts app
Adding Swift to an Objective-C Project
Adding contacts
Adding an Objective-C Class
Core Graphics
- 2. Web Services
Starting the Photorama Application
Building the URL
Formatting URLs and requests
NSURLComponents
Sending the Request
NSURLSession
Modeling the Photo
JSON Data
NSJSONSerialization
Enumerations and associated values
Parsing JSON data
Downloading and Displaying the Image Data
The Main Thread
- 3. Collection Views
Displaying the Grid
Collection View Data Source
Customizing the Layout
Creating a Custom UICollectionViewCell
Downloading the Image Data
Extensions
Navigating to a Photo
Silver Challenge: Updated Item Sizes
Gold Challenge: Creating a Custom Layout
Day 2
- 4. Your First Core Data App
Getting Started
Modelling your data
Saving to Core Data
Fetching from Core Data
- 5. NSManagedObject Subclasses
Storing non-standard data types in Core Data
Managed object subclasses
Propagating an managed context
Data validation in Core Data
Tying everything up
- 6. The Core Data Stack
Rolling your own Core Data stack
The managed object model
The persistent store
The persistent store coordinator
The managed object context
Creating your stack object
Modelling your data
Adding managed object subclasses
A walk down persistence lane
Deleting objects from Core Data
- 7. Intermediate Fetching
NSFetchRequest
Introducing the Bubble Tea app
Stored fetch requests
Fetching different result types
Sorting fetched results
Asynchronous fetching
Batch updates: no fetching required
Day 3
- 8. NSFetchedResultsController
Introducing the World Cup app
It all begins with a fetch request
Grouping results into sections
“Cache” the ball
Monitoring changes
Inserting an underdog
- 9. Versioning and Migration
When to migrate
The migration process
Getting started
A lightweight migration
A complex mapping model
Migrating non-sequential versions
- 10. Syncing with iCloud
Getting started
CloudNotes
Enabling iCloud
The cloud stack
Testing iCloud
Responding to iCloud changes
Switching iCloud accounts
- 11. Unit Testing
Getting started
Core Data stack for testing
Your first test
Asynchronous tests
Tests first
Validation and refactoring
- 12. Measuring and Boosting Performance
Getting started
Measure, change, verify
Fetching and performance
Day 4
- 13. Concurrency
Why do we need concurrency
Grand Central Dispatch
What are queues
Despatch Queues
Serial Queues
Concurrent Queues
Using Queues
GCD Cheatsheet
Demo project
Using Concurrent Dispatch Queues
Using Serial Despatch Queues
Operation Queues
NSOperation
Cancelling operations
- 14. Push Notification
Getting started
Configuring an app for Push Notifications
Enabling the Push Notification Service
Registering for Push Notifications
Creating an SSL Certificate and a PEM file
Sending a push notification
Common issues
Anatomy of a Basic Push Notification
Handling Push Notifications
Actionable Notifications
Handling Notification Actions
Silent Push Notifications
Where to go from here
- 15. Calendar
Example Scenario
Storyboard Setup
The role of the Event Store
Checking for calendar authorisation
Import EventKit
Creating a local calendar
Saving the calendar identifier
- 16. HealthKit
Requesting permission to access HealthKit
Read information and show it in the screen
Write data back to HealthKit
- 17. Graph Visualisation
Getting Started
Creating a Bar Chart
Customising the Chart
Animation
Limit Lines
Touch Events
Saving the Chart
More Charts
Conclusion
Day 5
- 18. WatchOS (WatchOS)
Getting Started
Adding the WatchKit App
Sharing Data and Code
Building the Interface
Creating the Controller
Connecting the Outlets
Building the Row’s interface
Populating the table
Adding a row controller
Where to go from here
- 19. Bluetooth (Bluetooth)
About MPC
About the Demo App
A Custom Class
Browsing for Peers
Displaying Found Peers
Handling Advertising
Inviting a Peer
Connecting to a Session
A handy method to send data
Sending data between peers
Receiving Data
End Chatting
Finishing Touches
Testing the App
Summary
- 20. Dependencies managements (Creating your own frameworks,
Carthage, CocoaPods)
Setting up the Xcode project
Initializing Git
Adding Carthage and dependencies
Adding dependencies to the workspace
Adding CocoaPods support
Writing the first test
Writing the implementation
Programme scope, delivery arrangements and suitability are confirmed during enquiry.