EIEIOTECHNOVATION
← Training programmes

EIEIO / AUTOMATION & EMERGING TECHNOLOGY

iOS Application Development - Advanced (5 days)

Course outline

5 days

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.