Get in Touch

Course Outline

Basic Programming Concepts

  • OOPS principles
  • Understanding software
  • Organised versus unorganised structure in programming
  • The importance of software

Why Apple and iOS?

  • Why choose iOS?
  • Apple's history
  • The evolution of iOS
  • Apple's unique selling proposition (USP)
  • What Apple is renowned for
  • UX versus UI

Development Environment

  • Requirements for the development environment
  • Xcode and the iOS SDK
  • Apple Developer registration
  • Common reasons why applications are rejected
  • Human Interface Guidelines

Xcode iOS Projects

  • Overview of Xcode
  • Creating an iOS project
  • Running on the simulator and real devices

Swift Fundamentals

  • Why Objective-C and now Swift?
  • Standout features of Swift
  • Variables
  • Constants
  • Hello World in Swift
  • Creating a UILabel programmatically

Image Animation and Loading

  • UIImageView
  • Basic animations for UIView and UIImageView
  • Playground
  • Lazy image loading
  • Lazy properties

Swift Classes and Scenes

  • Creating Swift classes
  • Memory management
  • Strong and weak references
  • Constructor types and destructors in Swift
  • Protocols, Hashable and Printable
  • Inheritance
  • Creating scenes
  • Implementing View Controllers
  • Playground

Life Cycle and Responder Chain

  • View Life Cycle
  • Application Life Cycle
  • Responder Chain - methods such as touchBegan, touchMoved, etc.
  • NSTimer

Adaptive Layout

  • Storyboards versus XIB files
  • Support for multiple devices
  • Icon sizing and device orientation
  • Building a user interface programmatically
  • Outlets and actions
  • Protocols - required and optional
  • Memory management

Notifications and Localization

  • Push notifications - silent and active
  • Localization

Overview of Objective-C

  • Properties
  • Categories
  • Function syntax
  • Property attributes: readWrite and readOnly

Social Media Integration in iOS:

  • Facebook integration
  • Twitter integration
  • Mail integration
  • Integrating third-party apps

UI Components in iOS:

  • UITextField
  • UITextView
  • UISegmentedControl
  • UISlider
  • UISwitch
  • UIProgressBar
  • UIPageControl
  • UIStepper
  • UIScrollView
  • UIPickerView
  • UIActionSheet
  • UIWebView
  • SearchBar

Additional Fundamental Components in iOS:

  • Groups and folders
  • Closures
  • Tuples
  • URL Session
  • URLRequest
  • UIAlertView
  • UIActivityIndicatorView
  • internal, public, private
  • Guard
  • Optionals

Threading in iOS:

  • GCD
  • NSOperationQueue
  • Main thread and background threads

User Interaction

  • Buttons and handlers
  • Pan gesture recognition
  • Tap gesture recognition
  • Custom table views
  • Introduction to collection views

Multi-Screen Applications

  • Table navigation
  • Tabbed applications
  • Navigation controllers
  • Presenting controllers and applying different animations during presentation and push transitions

Location Services

  • Position and altitude
  • Compass direction

Device Access and Storage

  • File storage
  • Music library access
  • CoreData and SQLite in iOS
  • Keychain
  • User defaults
  • PLists
  • NSSearchDomain
  • Directory concepts and app security within NSSearchDomain

Speech Framework

  • Speech-to-text
  • Text-to-speech

Multipeer Framework

  • Sending data from one device to another
  • Connecting multiple devices

Networking

  • Network access
  • Serialising and deserialising JSON
  • REST web services
  • Basics of XML parsing

Uploading Apps to the App Store

  • App Store Connect (formerly iTunes Connect)
  • Developer Portal - provisioning profiles
  • Deployment and distribution
  • Running apps on real devices
  • Uploading apps to the App Store

Practical Applications

  • Dots Game: https://itunes.apple.com/app/the-dots-free/id850315430
  • Notes app: Notes App
  • Contacts App
  • Fetching data from a server via an open API, building a table view, populating data, displaying details, implementing a search bar, searching for content, and using CoreData to store data offline
  • An application based on your own idea

Requirements

You must have prior experience with at least one programming language.

 35 Hours

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories