Benefiting from over 30 years’ practical skills training experience, Fitzwilliam Institute’s Online Postgraduate Diploma in iPad and iPhone Application Development course features:
The iOS App Environment
iPhone OS to iOS 7 & iOS 8; What You’ll Need to Develop iOS Apps; Apple’s Human Interface Guide (HIG); Overview of the Objective-C Programming Language; Cocoa Frameworks; The Xcode IDE;
App Development
Downloading and Installing Xcode; iPhone Developer Program: Setting Up your Profile for Testing and Submitting Apps; Setting Up your iPhone Development Team; Getting an iPhone Development Certificate; Registering Devices for Testing; Creating App Ids; Creating a Provisioning Profile; Using the Provisioning Profile to Install an App on an iOS Device;
Xcode IDE
Creating a New Project; Project Templates; Xcode’s Project Window – The Navigation Area, The Editor Area, The Utility Area; Introduction to Storyboards; Placing UI Elements on the Storyboard; Compiling an App and Executing it in The iPhone Simulator;
Application: We will place a few labels and other UI labels on the screen, then compile the app and view it in the Simulator. There will be no coding; the aim is to see how things work in the Xcode IDE;
Objective-C Programming
Objective-C And Object-Oriented Programming; Data Types in Objective-C; Variables and Constants; Operators and Expressions; Control Flow; Looping; Introduction to OOP in Objective-C: Objects, Classes, Instances, Methods; Design Patterns: MVC, Delegation, Target/Action;
A Single View Application with UI Elements
Another Look at The Xcode Project Window; Anatomy of an iOS App: App Delegate, View Controllers, Storyboard; Creating The UI; UI Elements: Switches, Segmented Controls, Sliders, Text-Fields; Date Picker; Single and Multi-Component Pickers; Dependent Pickers, UIPickerView Delegate and Data Source.
Application: Temperature convertor. We will create a single view application that will convert from Celsius to Farenheit (and vice versa). We will first see how this can be done using text-fields, buttons and labels; We will then look at an alternative approach using segmented controls and sliders;
Auto Layout
Device Orientation - Portrait/Landscape; Challenges; Auto Layout Basics; Enabling and Disabling Auto Layout; Constraints; Viewing, Editing and Deleting Constraints;
Application: Using our Temperature Convertor app from the last module, we will see how Auto-Layout ensures it displays correctly, regardless of the screen size or orientation;
Table Views
Table Views and Table View Cells; Grouped and Plain Tables; Implementing a Table; Editing a Table View; Custom Cells; Adding UI Elements to a Custom Cell; Adding Table View Headers and Footers; Changing Font and Row Height; Adding/Deleting Rows; Searching a Table; Table Views and Storyboards;
Application: At the end of this module we will have created a grouped Table View that will be populated from arrays. This will be a building block for the apps we will develop in subsequent modules;
Storyboards
Introduction to Storyboards; Adding Views to the Storyboard; Associating Views on the Storyboard with View Controllers; Configuring Segues and Transitions; Passing Data Between Views; Triggering a Segue Programmatically;
Application: Building on the Table View we created in the last module, we will see how to use a storyboard to connect views and pass data between views. This will be another building block to the app we will build in the next section;
Creating Multi-View Applications - Navigation Controllers and Tab Bar Controllers
The Tab Bar Framework; Setting Up The Tab Bar Framework in a Storyboard; Introduction to Navigation Controllers; Embedding a View in a Navigation Controller; Example of a Multi-View Application, Using a Storyboard, A Tab Bar Framework, Navigation Controllers, UIViews and UITableViews;
Application: Conversion App. We have already created a temperature convertor in a single view. Now we will take all we have learned in the subsequent modules to create a full Conversion App. This App will use a Tab Bar Template, Navigation Controllers, UIViews and UITableViews to allow the user convert units of length, weight, temperature, etc.;
The Collection View
The UICollectionView; UICollectionViewDataSource Protocol; UICollectionViewDelegate Protocol; UICollectionViewDelegateFlowLayout Protocol; Cell and View Reuse; Designing a Collection View Cell; Adding a Collection View Controller to a Storyboard;
Application: Our Conversion App has used Table Views to now. We will convert to a Collection View to show an alternative way to present information;
Data Persistence
Data Persistence on iOS Devices; Documents Directory; Date Storage: User Defaults, Property Lists, NSCoding, SQLite and Core Data;
Application: Up to now the data in our apps has come from hardcoded arrays. In this example we will see how to use Property Lists to populate data fields. We will also use User Defaults to create a Settings Page;
Core Data
Core Data Concepts and Terminology; The Data Model and Persistent Sore; The Data Model Class – NSManagedObjectModel; Getting and Setting the Attributes of a Managed Object; Loading Data from the Persistent Store; Creating a Fetched Results Controller;
Application: Core Data example. The user will enter data (e.g. Name, Age) that will be saved to a database and can be fetched form it;
Multithreading in iOS Applications
Why Multitasking is Important; Understanding Threads; Understanding iOS Application States; Introduction To Grand Central Dispatch (GCD); Introduction to Blocks; Implementing a Block; Dispatch Queues in GCD; State Change Notifications; Handling The Inactive State; Handling The Background State; Local Notifications;
Using Web Services
Reachability (Airport Mode, etc.); Synchronous vs. Asynchronous Downloads; NSURLsession; HTTP Requests; Parsing JSON; Parsing XML; Airdrop; An Example of Fetching a JSON Feed, Parsing it and Displaying it;
Application: Weather Forecast. An example of fetching a JSON feed, parsing it and displaying it. We will connect to OpenWeatherMap.org and fetch a JSON feed that will give the current forecast information for a specified location. We will handle any error states, and then parse the JSON and display the weather data;
Design Patterns
MVC Revisited; Using The MVC Patterns; Introduction to the Singleton Design Patterns; Categories – Adding Methods to Existing Classes without Subclassing; Delegation; The Delegate Pattern; Notifications – Sending Messages to Other Objects; Key Value Observing (KVO), Key Value Coding (KVC);
Maps and Location Services
Location Accuracy; Obtaining Location Information; Specifying Accuracy; Calculating Distances; Longitude and Latitude; MapKit Framework and MKMapview; MKMapitem and MKPlacemark Classes; Forward and Reverse Geocoding; Creating MKPlacemark Instances; Working with MKMapItem; Enabling Turn-By-Turn Direction;
Application: We will create an app that will display an MapView. The user will be able to drop a pin anywhere on the map and we will use Reverse Geocoding to retrieve location information. We will then display this info;
iCloud and iOS7
Configuring iCloud; Enabling iCloud in an App; The iCloud API; Creating a Provisioning Profile; Checking iCloud Availability; Opening an iCloud File;
Application: iCloud capability is more difficult to demonstrate, as you must be a member of the Apple Developer Program and you also need two iOS devices in order to see it in operation. We will create an app that will create a To do list on one iOS device that will sync with our other iCloud enabled devices;
Touches, Taps and Gestures, Recognizers
The Responder Chain; Touches; Taps; Swipes; Pinches; Detecting Multiple Taps; Defining Custom Gestures; Getting the Coordinates of a Touch; Introduction to the Accelerometer; Core Motion and The Motion Manager;
Application: All through this module, we will build up a simple app where we add two or more graphics to the screen and then move them around by dragging, pinching, and rotating with the help of gesture recognisers;
Scroll Views and Page Views
Introduction to the UIScrollView; Implementing a Scroll View; Embedding a View Hierarchy Inside a UIScrollView; Keeping a Scroll View’s Content Centered; The Xcode Page-Based Application Template; The UIPageViewController Class; The Page View Controller Data Source; Creating an Application that Uses UIScrollView’s Paging Feature and UIPageControl, To Allow Scrolling through Multiple Pages of Content;
Application: We will develop an application that uses UIScrollView’s paging feature and UIPageControl, to allow scrolling through multiple pages of content;
Graphics: UIKit, Core Graphics and Animations
What’s Available in UIKkit; UIKit Example App; UIKit Dynamics Architecture; Core Graphics and Quartz 2D; The DrawRect Method; Points, Coordinates and Pixels; Arcs and Paths; Introduction to UIView Animation; Animation Example; Text Kit;
Application: We will look at creating a simple game using UIKit and styling a View (adding animations, etc.);
Camera, Video and Audio
Accessing the Camera and Photo Library through The UIIimagePickerController Class; The UIImagePickerController Delegate; Saving Images and Videos; Camera Example; Introduction to Core Image; Playing Videos on an iOS Device Using The MPMmoviePlayerController; Video Player Example; Playing Audio Using The AVAudioplayer; Recording Audio Using AVAudiorecorder; Audio Example; iOS7 Speech Synthesis;
Application: We will write an app that will allow the user view pictures from the library and also take pictures using the device’s camera and save them to the photo library. We will also look at how to implement something similar using video;
Email, Twitter and Facebook within iOS Apps
Sending Email from an iOS App; The MessageUI Framework; Implementing The Mail Interface; Plain Text vs. HTML Messages; Populating the Subject Line and Recipients; Setting the Message Body; Adding Attachments; Reporting Status; The UIActivityViewController; Using SLRrequest and the Account Framework; Twitter Integration Using SLRequest; Facebook Integration Using SLRequest;
Application: Building on the previous tutorial, we will expand the app so a picture captured on the device or selected from the photo library can be added to an email, a tweet or a post to a Facebook page. Or we can implement one, and leave the others (and all error checking) as an exercise;
Introduction to Games Programming Using Sprite Kit
Introduction to Sprite Kit; Sprite Kit View; Scenes; Nodes; Game Physics; Actions; Transitions; Animations; Texture Atlases; Game Control Using The Accelerometer; Review of Core Motion and Device Rotation; Touch Handling;
Application: As an introduction to Sprite Kit, this module will be framed around creating a specific (very simple) game – probably either a space shooter or Breakout;
iPad Programming and Universal Applications
iPad Design Considerations; Splitviews; Navigation View Controllers; Master View Controllers; Detail View Controllers; Popovers; Creating a Universal App; Maintaining Two Storyboards; The User Interface Idiom;
Application: Universal App example. Using one of our existing iPhone apps, we will look at creating a Universal App. We will create an iPad storyboard and populate it with the view controllers need for an iPad version. We will look at how to handle iPhone/iPad variations in code and will add the necessary icons/default screens;
Design Considerations / Internationalisation and Localisation
iOS7 – The New Aesthetic; The Human Interface Guide Revisited; iOS7 Design – Best Practices; Updating An Existing App To iOS7; Localising An App – Multi-Language Support; Localisation Architecture; The Localised String Macro; Language and Region; Nslocale; Dates; Numbers;
Application: Localisation example. We will take an existing application and investigate tow to add multi-language support. This will also reinforce some of the lessons from the Auto Layout section;
Instruments, Debugging, Unit Testing and Source Control
Instruments Ii Xcode – Introduction to the Templates; Profiling; Allocation; Leaks; Debugging an Xcode Application; The LLDB Debugger; The Breakpoint Navigator; Exception Breakpoints; Introduction to Unit Testing; Creating and Running a Simple Unit Test; Source Control Using Git; Commits and Branches;
Preparing an App for Distribution
Free vs. Paid vs. Ad-Supported vs. In-App Purchases; Introduction to iAds; Introduction to In-App Purchases; Preparing Icons and Launch Images; Creating Distribution Certificates; Archiving An Application; App Store Distribution; Adhoc and Enterprise Distribution; Managing Your Application - itunes Connect;
iOS 8
Using iOS 8, Updates and new features since iOS 7;
Introduction to Swift
Introduction to Swift, Swift and Syntax, Helloworld and Swift, Settings, Labels, IBOutlet, IBAction, Fundamentals, Variables, Strings, Collections, Control Structures, Functions, Classes, Playground;
Please note: In order to be able to partake in this course you must have access to a Mac or a computer with an OS X System
Criteria for eligibility must be met in full prior to commencing the programme. For successful enrollment on the Postgraduate Diploma course, the minimum entry requirement is a prior Degree level qualification.
On successful completion of this course you will receive a Professional Postgraduate Diploma qualification that is certified and awarded by the ICM (Institute of Commercial Management).
The Institute of Commercial Management was founded in 1979 and is one of the leading Professional Examination and Certification Bodies in the world today. Fitzwilliam Institute have developed and provided practical skills training courses in liaison with the Institute of Commercial Management qualifications and certifications framework for over 25 years. The Institute of Commercial Management certifications and continual professional development training awards are recognised by leading industries, bodies and professions.
Duration: You will have full access to online resources and subject expert support for two calendar years. However, you can complete the course in as little as 1 year, by dedicating 6-8 hours of study per week.
Course Fees: 1795.00 GPB
To secure your place on the course the full fee is required. All fees must be paid in full before the course begins. Please note, the full course fees are inclusive of all course materials and certification costs.
Enrolment intake is strictly limited on this course. Early application is advised. Places are allocated on a first come first served basis.
Fitzwilliam Institute closes on Bank Holidays and for a number of days at Christmas and New Year. Fitzwilliam Institute reserves the right to postpone, cancel or alter courses without notice or to change any of the details in this brochure. Fees are not refundable unless the course is cancelled by Fitzwilliam Institute. Distance Learning courses are provided by Fitzwilliam Institute BGLS Ltd.
Year on year, we have the pleasure of training students from top UK and international companies. See where our most recent students come from and find out what they have to say.