Get in Touch

Course Outline

Programming Fundamentals

  • Object-Oriented Programming (OOP) concepts
  • Understanding software
  • Organized vs. Unorganized approaches in programming
  • The importance of software

Apple and iOS Overview

  • Rationale for choosing iOS
  • Apple's history
  • iOS history
  • Apple's Unique Selling Proposition (USP)
  • What Apple is renowned for
  • User Experience (UX) vs. User Interface (UI)

Development Environment Setup

  • Requirements for the development environment
  • Xcode and the iOS Software Development Kit (SDK)
  • Apple Developer program registration
  • Common reasons for application rejection
  • Human Interface Guidelines

Xcode iOS Projects

  • Xcode overview
  • Creating an iOS project
  • Testing on simulators and real devices

Swift Fundamentals

  • The shift from Objective-C to Swift
  • Key features of Swift
  • Variables
  • Constants
  • Writing 'Hello World' in Swift
  • Creating a UILabel programmatically

Image Animation and Loading

  • Understanding UIImageView
  • Basic animations for UIView and UIImageView
  • Utilizing Playgrounds
  • Lazy loading of images
  • Lazy properties

Swift Classes and Scenes

  • Creating Swift classes
  • Memory management techniques
  • Strong and weak references
  • Constructors and deinitializers in Swift
  • Protocols, Hashable, and Printable
  • Inheritance
  • Creating scenes
  • Implementing View Controllers
  • Using Playgrounds

Life Cycle and Responder Chain

  • View life cycle
  • Application life cycle
  • Responder Chain methods: touchBegan, touchMoved, etc.
  • Using NSTimer

Adaptive Layout

  • Storyboards vs. XIB files
  • Supporting multiple devices
  • Icon sizing and device orientation
  • Building user interfaces programmatically
  • Outlets and Actions
  • Protocols: Required and optional
  • Memory management

Notifications and Localization

  • Push Notifications: Silent and standard
  • Localization strategies

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 applications

UI Components in iOS

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

Additional iOS Basics and Components

  • Groups and folders
  • Closures
  • Tuples
  • URLSession
  • URLRequest
  • UIAlertView
  • UIActivityIndicatorView
  • Access control: internal, public, private
  • Guard statements
  • Optionals

Threading in iOS

  • Grand Central Dispatch (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 various animations during presentation and pushing

Location Services

  • Position and Altitude
  • Compass Direction

Device Access and Storage

  • File storage solutions
  • Music library access
  • CoreData and SQLite in iOS
  • Keychain access
  • User Defaults
  • Property List (PLists)
  • NSSearchPathForDirectoriesInDomains
  • Directory concepts and app security with NSSearchPathForDirectoriesInDomains

Speech Framework

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

Multi-peer Framework

  • Transmitting data between devices
  • Connecting multiple devices

Networking

  • Network access
  • Serializing and Deserializing JSON
  • REST Web Services
  • Basics of XML Parsing

Uploading Apps to the App Store

  • Introducing iTunes Connect
  • Developer Portal and provisioning profiles
  • Deployment and distribution methods
  • Testing applications on real devices
  • Uploading the app to the App Store

Practical Application Examples

  • Dots Game: https://itunes.apple.com/app/the-dots-free/id850315430
  • Notes app: Notes App
  • Contacts App
  • Fetching data from an open API server to populate a table view, displaying details, implementing a search bar, and saving data offline using Core Data
  • Developing an application based on your own concept

Requirements

Prior experience with at least one programming language is required.

 35 Hours

Testimonials (2)

Upcoming Courses

Related Categories