iOS and the structure of an iOS App
The iOS platform enables radically different ways of using software. We will introduce
iOS as platform for building mobile applications, and discuss the design patterns
needed to create an application that conforms to the Apple User Interface Design
- Developing for iOS
- Required development environment
- The iOS SDK, the APIs and frameworks
Object-Oriented Programming in Swift with Xcode
iOS development is Object-Oriented development. In this chapter you will get an
introduction to object-oriented programming with Swift and Xcode.
- Introduction to Xcode
- Building the UI with Interface Builder
- Implementing your first Swift function
- Object-Oriented programming in Swift
- Creating projects, compiling, running and debugging with Xcode
- Testing your code on the iOS Simulator
Most modern programming languages use garbage collection for memory management. iOS however
uses a different approuch, namely automatic reference counting. This is just as easy for developers
but more efficient, especially for memory-thin mobile devices.
- What is Reference Counting
- Automatic Reference Counting
- Handling low memory conditions
- Discovering retain cycles with Instruments
- Program Termination
Model - View - Controller
One of the most important concepts in iOS development is Model-View-Controller,
also known as MVC. In this module you will gain insight in this pattern, and how
to use it for building iOS applications with Xcode and Interface Builder
- The Model-View-Controller pattern
- Introduction to application delegates
- Interface Builder outlets and actions
- Working with storyboards
Autolayout and Device Orientation
iOS devices these days come with different screen sizes and can be held in portrait or landscape.
Building a good layout for this has become a lot easier thanks to auto layout. In this chapter we
will look at the different options and then focus on auto-layout, Apple's new constraint based system.
- Specifying Orientation Support
- Understanding AutoLayout's contraints
- Creating Constraints using Interface Builder
- Building an universal layout
Common Foundation Classes
In this module you will learn about the most important built-in types in iOS
- The difference between immutable and mutable objects
- Using Strings and Dates
- Collection classes for arrays, sets and dictionaries.
- Using higher order functions map, filter and reduce.
- Fast Enumeration
Protocols add flexibility to program design by letting you type objects by behavior
rather than by class. You will learn to define protocols and how a class can adopt
a protocol by implementing all of the protocol’s required methods.
- Using Protocols
- Conforming to a Protocol
- Revisiting the delegate pattern
A table view presents a scrollable list of items that are often used for hierarchical
navigation, probably the most important view in iOS.
- Introduction to table views
- Building a static table view with interface builder
- Interacting with table views
Categories and Extensions
Objective-C Categories and Swift extensions allow us to add
methods to existing classes without using inheritance, thus allowing
you to add new methods to existing classes, even built-in classes.
Building your own module
- What are modules
- Using the module in Swift
Internationalization and Localization
The iOS has a robust localization architecture that lets you easily translate your
application into multiple languages.
- Support for Internationalization
- Localizing storyboards
- Testing your localizations - the easy way
The course will teach you the basic skills you need to develop iPhone and iPad applications for iOS.
Starting with modern Swift and Xcode you will build your first iPhone application
on the first day! Then you will explore more features of iOS development and learn
more as you go along. No need to bring an iPhone or iPad (although you can of course)
since Xcode allows you to develop using the iOS emulator.
This course is intended for developers with Object-Oriented programming experience
who want to develop native apps for Apple iPad and iPhone.