EIEIOTECHNOVATION
← Training programmes

EIEIO / AUTOMATION & EMERGING TECHNOLOGY

iOS Application Development – Intermediate & Advance

Course outline

5 days

Duration

5 days

iOS Application Development – Intermediate

Overview

This is an intermediate course meant as a follow on course to Application Development - Introduction.

During this course, you will create a reasonably complex iOS program. In the process, it covers storyboards, table view table view controller, editing table view, navigation controllers, camera, auto layout, gesture recognisers, push view controllers and modal view controllers. You will also learn how to use unit tests and debugging tools.

Programs you will write:

Food Tracker - A simple meal tracking app. This app shows a list of meals, including a meal name, rating, and photo. A user can add a new meal, and remove or edit an existing meal. To add a new meal or edit an existing one, users navigate to a different screen where they can specify a name, rating, and photo for a particular meal.

Course Objectives

Upon completion of this program, participants should be able to:

Create a reasonably complex iOS application, using storyboards, table view, table view controller, navigation controllers, camera, autolayout, gesture recognisers, push view controllers and modal view controllers.

Test an application using unit tests and debugging tools.

Save application data so it persists between runs.

Course Duration

3 Days

Course Pre-requisites

Knowledge of a programming language is required.

It is recommended for participants to go for the iOS Application Development - Introduction course prior to attending this course.

Day 1

Getting Started

  • Get the tools
  • Your first program
  • Simple values
  • Explicit type declaration
  • Conversion
  • Including values in strings
  • Arrays and Dictionaries
  • Initializer syntax
  • Control flow
  • Optionals
  • ?? operator
  • Switches
  • for-in
  • while
  • Loop indexes
  • Functions
  • Argument labels
  • Tuples
  • Variable number of arguments
  • Nested functions
  • Functions as return values
  • Functions as arguments
  • Closures
  • Writing closures more concisely
  • Class
  • Instance
  • Initializers
  • Subclass
  • Property getters and setters
  • willSet and didSet
  • Working with optional values
  • Enumerations
  • Raw values
  • init?(rawValue:)
  • Case values
  • Reference
  • Values associated with case
  • Structures
  • Protocols
  • Adopting a protocol (class)
  • Adopting a protocol (struct)
  • Extension
  • Protocol type
  • Error handling
  • Throw and Throws
  • Do-Catch
  • Multiple catch blocks
  • try?lesso
  • Defer
  • Generics
  • where

Build a basic UI

  • Create a project in Xcode
  • Identify the function of key files that are created with an Xcode project template
  • Open and switch between files in a project
  • Run an app in Simulator
  • Add, move, and resize UI elements in a storyboard
  • Edit the attributes of UI elements in a storyboard using the Attributes inspector
  • View and rearrange UI elements using the outline view
  • Preview a storyboard UI using the Preview assistant editor
  • Lay out a UI that automatically adapts to the user’s device size using Auto Layout

Connect the UI to code

  • Explain the relationship between a scene in a storyboard and the underlying view controller
  • Create outlet and action connections between UI elements in a storyboard and source code
  • Process user input from a text field and display the result in the UI
  • Make a class conform to a protocol
  • Understand the delegation pattern
  • Follow the target-action pattern when designing app architecture

Day 2

Work with View Controllers

  • Understand the view controller life cycle and when its callbacks occurs, such as viewDidLoad, viewWillAppear and viewDidAppear
  • Pass data between view controllers
  • Dismiss a view controller
  • Use gesture recognizers as an additional level of generating events
  • Anticipate object behavior based on the UIView/UIControl class hierarchy
  • Use the asset catalog to add image assets to a project

Implement a Custom Control

  • Create and associate custom source code files with elements in a storyboard
  • Define a custom class
  • Implement an initializer on a custom class
  • Use UIView as a container
  • Understand how to display views programmatically

Define your data model

  • Create a data model
  • Write failable initializers on a custom class
  • Demonstrate a conceptual understanding of the difference between failable and nonfailable initializers
  • Test a data model by writing and running unit tests

Day 3

Create a table view

  • Understand the key components of a table view
  • Create and design a custom table view cell
  • Understand the roles of table view delegates and data sources
  • Use an array to store and work with data
  • Display dynamic data in a table view

Implement Navigation

  • Embed an existing view controller within a navigation controller in a storyboard
  • Create segues between view controllers
  • Edit the attributes of a segue in a storyboard using the Attributes inspector
  • Pass data between view controllers using the prepareForSegue(_:sender:) method
  • Perform an unwind segue
  • Use stack views to create robust, flexible layouts

Implement Edit and Delete behaviour

  • Differentiate between push and modal navigation
  • Dismiss view controllers based on their presentation style
  • Understand when to use different type cast operators for downcasting
  • Leverage optional binding to check for complex conditions
  • Use segue identifiers to determine which segue is occurring

Persist Data

  • Create a structure
  • Understand the difference between static properties and instance properties
  • Use the NSCoding protocol to read and write data

Submitting your App to the App Store

  • Create an Apple Developer account
  • Create Developer Certificates
  • Create your app’s App ID
  • Register your device
  • Create profiles
  • Create an icon for your app
  • How to take screenshots of your App
  • Uploading your App to the App Store

iOS Application Development - Advanced

Course 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, JSON parsing, Collection Views, Core Data, Firebase and Instruments.

Course Objectives

Upon completion of this program, participants should be able to:

  • Create advanced iOS applications using web services, Core Data and
  • Cloud syncing
  • Interoperate with Objective-C

Course Duration

2 days

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 4

  • 1. Interoperability
  • How to use Objective-C classes in Swift
  • Add Objective-C implementation
  • Add Bridging Header
  • Add Objective-C Header
  • Build your class
  • Add Class to Bridging Header
  • Use your object
  • Using Swift Classes in Objective-C
  • Create New Swift Class
  • Import Swift Files to Objective-C Class
  • Use your class
  • 2. JSON Tutorial
  • Getting Started
  • Parsing JSON the Native Swift Way
  • Parsing JSON the Gloss Way
  • Retrieving Remote JSON
  • 3. Collection Views
  • Getting Started
  • Anatomy of a Collection View
  • Introducing FlickrSearch
  • Starting Your Collection
  • Fetching Flickr Photos
  • Creating Custom UICollectionViewCells
  • Adding a Header
  • Interacting with Cells

Day 5

  • 4. Getting Started with Core Data
  • Gatting Started
  • Modeling your Data
  • Saving to Core Data
  • Fetching from Core Data
  • 5. Lightweight Migrations in Core Data
  • When to Migrate
  • The Migration Process
  • Types of Migrations
  • Getting Started
  • A Lightweight Migration
  • Inferred Mapping Methods
  • Where to go from here?
  • 6. Firebase
  • Getting Started
  • Setting up a Firebase account
  • Creating a connection to Firebase
  • Adding New Items to the List
  • Retrieving data
  • Synchronizing Data to the Table View
  • Removing Items From the Table View
  • Checking Off Items
  • Sorting the Grocery List
  • Authenticating Users
  • Registering Users
  • Logging Users In
  • Observing Authentication State
  • Monitoring Users’ Online Status
  • Displaying a List of Online Users
  • Enabling Offline
  • 7. Instruments
  • Getting started
  • Time for Profiling
  • Drilling Deep
  • Allocations,allocations,allocations
  • Talking about my generation
  • Strong Reference Cycles

Programme scope, delivery arrangements and suitability are confirmed during enquiry.