iOS Development with Swift

iOS Development with Swift


Novice developers who want to build iOS native applications with Swift and the Xcode development tools should attend this class.


Attendees should have:

  • Experience with an object-oriented language such as Java, C/C++ or Python
  • Familiarity with using OS X and iOS devices


5 days. Hands on.

Course Objectives

This course is about building iOS native applications with Swift and the Xcode development tools. Attendees will:

  • Develop a thorough understanding of the Swift programming language, with an introduction to the underlying Objective-C
  • Understand iOS application architecture
  • Get comfortable working with the Apple development tools
  • Design user interfaces using storyboards and understand the generated code
  • Develop good habits for building performant, testable and maintainable apps for iOS devices

Course Content

iOS Devices and the iOS Operating System
Swift 3, Objective-C, Xcode and related tools
The Apple Developer Program and typical development workflows

Swift Fundamentals
Introduction to Swift structure, syntax and semantics
Using Playgrounds
Declaring constants and variables with identifiers
Basic data types and optionals
Conditionals and loops
Declaring, scoping and using functions
Function Types
Closures and Extensions
Access control and type casting
User defined types
Understanding Automatic Reference Counting (ARC)
Computed properties, property observers and inheritance
Initialization and deinitilization

Unit Testing and Performance Metrics
XCTest Framework
Xcode testing and monitoring tools

iOS Design Architecture
Model View Controller (MVC) architecture as applied to iOS
Creating view controllers
Using storyboards with outlets and actions
Scenes and segues
Moving data between controllers
Navigation controllers

Layout and Auto Layout
Autoresize masks
Implementing and altering layout constraints
Resolving conflicting constraints
Content hugging and compression resistance

Optional members
Loose coupling

Table Views
Data Sources and delegates

Error Handling
Representing and throwing errors
Handling errors
Cleanup actions

URL loading system
Understanding NSURLSession
Creating and managing asynchronous downloads
Strings and images
Dealing with JSON for data transfer

Local Storage
User defaults
Working with files
Core data

Multitouch Taps and Gestures
Touches and Taps
Notification methods
Gesture recognizers

Drawing and Animation Overview
Core Graphics
Points, coordinates and pixels
Graphics Context
Core Animation and transformations
UIView core animation blocks

App states
App States
Best Practices
States and Lifecycle
Moving to the background
Memory usage
Background execution

Local notifications
Push notifications

Running on Physical Devices and Emulators
Project Configuration
Launching an App

Performance and Power Optimization
Measuring Performance
Memory Usage

iOS Security Overview
iOS security features and architecture
Sandboxing and app interactions
Securing data storage

Application Security
iOS permissions
Writing secure iOS applications
Protection techniques and their circumvention
Input validation
Improper use of security features
Time and state problems

Icons and Launch Images
Archiving for production

Virtual Courses

ALL of our courses can be delivered virtually. And our Bath public schedule of courses are now available as live virtual sessions, using the popular Zoom Virtual Classroom and remote labs. Delegates can test their access at:

Public Courses

On-Site Courses

Can't attend one of our public classes? Booking for multiple people?

All our courses are available on your site! Delivered for your staff, at your premises.

Contact us to find out more...