EIEIOTECHNOVATION
← Training programmes

EIEIO / AUTOMATION & EMERGING TECHNOLOGY

iOS Training with Objective C

Course outline

5 days

Duration

5 days

Overview

This course is an introduction to iOS application development. It covers how to create and compile projects using Xcode, basics of the Objective-C language, memory management, delegation, Core Location, MapKit, text input, views, view controllers, notification center and rotation. After this, you will create a reasonably complex iOS program. In the process, it covers table view, table view controller, editing table view, navigation controllers, camera, popover and modal view controllers, saving and loading, application states, subclassing table view cells and Core Data.

Programs you will write:

Quiz - A quiz application that shows you a list of questions and provides the answers when the answers button is tapped.

RandomPossession - A command-line program that illustrates how to create and use a custom class.

Whereami - A map application that shows your location.

Hypnosister - A program drawing graphics on the screen.

Hypnotime - A program that shows how to use tab views.

HeavyRotation - A program that shows how to implement autorotation when the devices is rotated.

Homepwner - An asset tracking program that is able to display its contents in a table, allows editing of the data in the table, able to take and display photos of your assets, and able to load and save data.

NerdFeed - An application that can download and parse JSON objects from the web and display web content.

Day 1

  • 1. A Simple iOS Application
  • - Creating an Xcode Project
  • - Building Interfaces
  • - Model-View-Controller
  • - Declarations

-- Declaring instance variables

-- Declaring methods

  • - Making connections

-- setting pointers

-- setting targets and actions

-- summary of connections

  • - Implementing Methods
  • - Build and run on the simulator
  • - Deploying an Application
  • - Application Icons
  • - Launch Images
  • 2. Objective-C
  • - Objects
  • - Using Instances

-- Creating objects

-- Sending messages

-- Destroying objects

  • - Beginning RandomPossessions

-- Creating strings

-- Format strings

-- NSArray and NSMutable Array

  • - Subclassing an Objective C class

-- Creating an NSObject subclass

-- Instance variables

-- Accessor methods

-- Instance methods

-- Initializers

-- Other initializers and the initializer chain

-- Class methods

-- Testing your subclass

  • - Exceptions and Unrecognized Selectors
  • - Fast Enumeration

Day 2

  • 3. Managing Memory with ARC
  • - The Heap
  • - The Stack
  • - Pointer variables and Object Ownership
  • - Memory Management

-- Using ARC for memory management

-- How objects lose owners

  • - Strong and Weak References
  • - Properties

-- Declaring properties

-- Synthesizing properties

-- Instance variables and properties

  • - Copying
  • - Dot Syntax
  • 4. Delegation and Core Location
  • - Projects, targets and frameworks
  • - Core Location

-- Receiving updates from CLLocation Manager

  • - Delegation

-- Protocols

-- Delegation, controllers and memory management

  • - Using the Debuggger

-- Using breakpoints

-- Diagnosing crashes and exceptions

  • 5. Mapkit and Text Input
  • - Object Diagrams
  • - Mapkit Framework
  • - Interface Properties
  • - Being a Mapview Delegate

-- Using the documentation

-- Your own MK Annotation

-- Tagging Locations

-- Putting the pieces together

Day 3

  • 6. Subclassing UI View and UIScrollView
  • - Views and the View Hierarchy
  • - Creating a Custom View
  • - The drawRect: method
  • - Core Graphics
  • - UIKit Drawing Additions
  • - Redrawing Views
  • - Motion Events
  • - Using UIScrollview

-- Panning and paging

-- Zooming

  • - Hiding the Status Bar
  • 7. View controllers
  • - UIView Controller

-- Creating HypnoTime

-- Subclassing UIViewController

-- Another UIViewController

  • - UITabBarController
  • - View Controller Lifecycle

-- Initializing view controllers

-- UIViewController and lazy loading

  • - View Controller Subclasses and Templates
  • 8. Notification and Rotation
  • - Notification Center
  • - UIDevice Notification
  • - Autorotation

-- Setting autoresizing masks programmatically and bitwise operations

  • - Forcing Landscape Mode
  • 9. UITableView and UITableViewController
  • - Beginning the Homepwner Application
  • - UITableViewController

-- Subclassing UITableViewController

  • - UITableView’s Data Source

-- Creating BNRItemStore

-- implementing data source methods

  • - UITableView Cells

-- Creating and retrieving UITableViewCells

-- Reusing UITableViewCells

Day 4

  • 10. Editing UITableView
  • - Editing Mode
  • - Adding Rows
  • - Deleting Rows
  • - Moving Rows
  • 11. UINavigation Controller
  • - UINavigationController
  • - An Additional UIView Controller
  • - Navigating with UINavigationController

-- Pushing view controllers

-- Passing data between view controllers

-- Appearing and disappearing views

  • - UINavigationBar
  • 12. Camera
  • - Displaying Images and UIImageView

-- Taking pictures and UIImagePickerController

-- Creating BNRImageStore

-- NSDictionary

-- Core Foundation and toll-free bridging

-- Wrapping up BNRImageStore

-- Dismissing the keyboard

  • 13. UIPopoverController and Modal View Controllers
  • - Universalizing Homepwner

-- Determining device family

  • - UIPopoverController
  • - More Modal View Controllers

-- Dismissing modal view controllers

-- Modal view controller styles

-- Completion blocks

-- Modal View controller transitions

Day 5

  • 14. Saving, Loading and Application States
  • - Archiving
  • - Application Sandbox

-- Constructing a file path

  • - NSKeyedArchiver and NSKeyed Unarchiver
  • - Application States and Transitions
  • - Writing to filesystems with NSData
  • - More on Low-Memory Warnings
  • - Model-View-Controller-Store Design Pattern
  • 15. Subclassing UITableViewCell
  • - Creating HomepwnerItemCell

-- Configuring a UITableViewCell subclass's interface

-- Exposing the properties of HomepwnerItemCell

-- Using HomepwnerItemCell

  • - Image Manipulation
  • - Relaying Actions from UITableViewCells

-- Adding pointers to cell subclass

-- Relaying the message to the controller

-- Objective-C selector magic

-- Presenting the image in a popover controller

  • 16. Web Services and UIWebView
  • - Web Services
  • - Starting the NerdFeed application
  • - NSURL, NSURLRequest, NSURLSession, and NSURLSessionTask
  • - Formatting URLs and requests
  • - Working with NSURLSession
  • - JSON Data
  • - Parsing JSON data
  • - The main thread
  • - UIWebView
  • - Credentials

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