Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add Learn How To Code - Professional Swift Development For iOS to your Wishlist.

Add to Wishlist

Learn How To Code - Professional Swift Development For iOS

Learn all there is to know about Swift and apply your knowledge by developing applications for iOS
4.6 (11 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
119 students enrolled
Last updated 8/2016
$10 $200 95% off
4 days left at this price!
30-Day Money-Back Guarantee
  • 18 hours on-demand video
  • 4 Articles
  • 131 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?

Want to learn everything there is to know about Apple's programming language Swift and have some fun developing awesome iOS applications on the way?

You have found the right course!

We have put our knowledge in a course that follows a hands-on approach even in the theoretical parts!

By taking this course you will learn every aspect of Swift to be able to develop your own applications with ease. To make this even easier we will talk about different applications and provide examples for a lot of different functionalities.

No copy and pasting of code without understanding what it does!

We want for you to become proficient at what you do and be able to use the knowledge gained throughout the course to help your career and future plans!

We are here to help you understand everything we talk about and have done our best to achieve this. If however you still have questions we will gladly help you  personally in the Q&A section here on Udemy.

We will provide you with all the resources you need to build everything included in this course, including step by step source codes for all of the projects!

Who is the target audience?
  • Programming beginners
  • Advanced programmers
Students Who Viewed This Course Also Viewed
What Will I Learn?
Understand every aspect of the programming language Swift
Develop iOS applications all on your own
View Curriculum
  • Mac or PC running OSX
  • Xcode
Curriculum For This Course
Expand All 165 Lectures Collapse All 165 Lectures 18:15:42
3 Lectures 04:07

We introduce ourselves and give you a brief overview of what we are going to learn

Preview 02:36

Download the resources we will need for our apps later on

Swift Basics
23 Lectures 01:06:41

We write our first own little program which will say Hello, World

Hello, World

In this lecture we will get to know variable and constants in Swift and learn about the difference between the two

Preview 03:38

In this lecture we will take a look at the four most basic types in Swift: Int, Double, String and Bool. We will also learn how to implicitly and explicitly declare the type of a variable or constant.

Preview 03:41

Types Quiz
3 questions

In this lecture we will learn how we can use our newly learned knowledge to complete some easy mathematical tasks.

Preview 03:45

In this lecture we will learn about two more important types in Swift: Arrays & Dictionaries. We will create an array and a dictionary and see how they both work.

Preview 02:26

In this lecture we will take another look at arrays and dictionaries. We will learn how we can add, delete and replace entries in both types.

Preview 03:52

In this lecture we will take a look at declaring variables without initialization. Additionally we will learn how to create empty arrays and dictionaries.

Preview 02:00

In this lecture we will start learning about operators by taking a look at the assignment operator, arithmetic operators and the remainder operator.

Preview 03:28

In this lecture we will meet more operators. The incrementing and decrementing operator and the unary plus and minus operators.

Preview 02:40

In this lecture we will handle even more operators. The compound assignment operators and comparison operators.

Preview 03:00

In this lecture we will learn about if-statements and how we can execute certain code depending on wether a condition returns true or false.

Preview 03:26

In this lecture we will learn about conventional for-loops. These are used to execute certain code multiple times.

Preview 02:09

In this lecture we meet another special for-loop. The for-in loop and we will use it to easily iterate over arrays and dictionaries. There will also be some exercises for you at the end of this lecture.

Preview 04:42

The exercises as text

Preview 00:27

In this lecture we will in detail talk about the exercises give in the last lecture.

Preview 03:54

In this lecture we will learn about another loop - the while-loop.

Preview 01:55

In this lecture we will learn about switch-statements which are used to easily check multiple cases and execute the adequate code.

Preview 02:19

In this lecture we will learn about the ternary operator and the nil coalescing operator.

Preview 03:02

In this lecture we will learn some last operators for this course, the range operators and the logical operators.

Preview 03:40

In this lecture we will take a look at a simple example where we can use the logical operators from the last lecture.

Preview 01:51

This lecture contains some more exercises for you to try and work with your new knowledge.

Preview 02:16

Exercises as text

Preview 00:48

In this lecture we will again in detail talk about the exercises from the last lecture.

Preview 04:39

Final Quiz
6 questions
Swift Wiki
70 Lectures 05:22:43

We start to look at functions in Swift by writing our first very own function

Functions I

We extend our first method and learn about functions without parameters or return values

Functions II

We get to know functions with multiple return values and how we can access them

Functions III

We learn about default parameters and the variadic parameter

Functions IV

We learn about variable parameters and the special inout parameter

Functions V

We get to know function types and how we can use them

Functions VI

We get to know closures and how they are different from functions

Functions VII

Closures I

We simplify the closure from before and learn new things about the default parameters of a closure

Closures II

We get to know trailing closures

Closures III

We take a look at the capture of values with closures

Closures IV

We get to know enumerations and define our first very own type in Swift

Enumerations I

We learn about associated types for enumerations

Enumerations II

We learn about Raw Values for enumerations

Enumerations III

We take a look at recursive enumerations and use them to solve an arithmetic problem

Enumerations IV

We get to know classes and structures that enable us to define more own types in Swift

Classes & Structs I

We learn more about classes and structs by defining properties

Classes & Structs II

We learn the important difference between value types(Structs) and reference types(classes)

Classes & Structs III

We learn how we can compare instances with the identical operator

Classes & Structs IV

We take a closer look at properties and start by repeating stored properties

Properties I

We get to know a special lazy property

Properties II

We get to know computed properties

Properties III

We get to know the property observer which enables us to react to changes of property values

Properties IV

We learn about the difference between instance and type properties

Properties V

We start learning about methods

Methods I

We get to know the property self and why we need it

Methods II

We learn the difference between instance and type methods

Methods III

We get to know subscripts


We learn about inheritance with classes


We start learning about initialization

Initialization I

We repeat the default and memberwise initializers

Initialization II

We learn about the difference between designated and convenience intializers

Initialization III

We take a look at the initializer chain with the security checks

Initialization IV

We take a detailed look at initializer delegation

Initialization V

We look at a quick example of what we have learned about initializers so far

Initialization VI

We get to know failable initializers

Initialization VII

We look at the delegation with failable initializers

Initialization VIII

We finish the chapter initializers with required inits

Initialization IX

We take a look at deinitializers for classes


We get to know Swifts Automatic Reference Counting


We learn about the problem of strong reference cycles and how we can avoid them


We get to know the keyword unowned and how it can help us avoid strong reference cycles


We learn about optional chaining

Optional Chaining

We start to look at error handling in Swift

Error Handling I

We start looking at an example for error handling

Error Handling II

We get to know do-catch-statements for error handling

Error Handling III

We learn how we can treat errors as optionals

Error Handling IV

We get to know type casting and the is and as operators

Type Casting I

We get to know the types Any and AnyObject

Type Casting II

We learn how we can nest types inside of each other

Nested Types

We get to know extensions and how we can use them to extend types

Extensions I

We learn how to add methods with extensions

Extensions II

We get to know protocols

Protocols I

We learn how to implement methods in protocols

Protocols II

We learn how to use protocols as types

Protocols III

We learn about the delegation design pattern using protocols

Protocols IV

We learn how we can combine extensions and protocols

Protocols V

We take a look at inheritance with protocols

Protocols VI

We get to know protocol compositions to combine multiple protocols

Protocols VII

We learn how to extend protocols with extensions

Protocols VIII

We get to know generics

Generics I

We get to know generic types

Generics II

We take a look at type constraints

Generics III

We get to know associated types with protocols

Generics IV

We get to know the where keyword and how we can use it with generics

Generics V

We get to know the bitwise AND, NOT, OR and XOR operators

Advanced Operators I

We get to know the bit shift operators

Advanced Operators II

We learn about overflow, associativity and precedence with operators

Advanced Operators III

We learn how to overload existing operators

Advanced Operators IV

Finally we learn how to create our own custom operators

Advanced Operators V
Our First App - Simon Says
5 Lectures 59:03

Preview for the Simon Says App

Preview 01:03

We set up our project and get to know auto layout

Simon Says 1 - Project Setup & Autolayout

We create the GameData class for our app

Simon Says 2 - GameData Class

We implement our game flow and the game over condition

Simon Says 3 - Game Flow & Gameover

We finish the Simon Says game

Simon Says 4 - Final Touches
Foodie Groundwork
17 Lectures 02:23:42

Preview for the Groundwork app

Preview 01:12

We repeat auto layout with a simple example

Foodie Groundwork 1 - Autolayout Repetition

We get to know the UINavigationController which allows for easy navigation in our app using a navigation bar

Foodie Groundwork 2 - UINavigationController I

We learn more about the UINavigationController and how we can use it effectively

Foodie Groundwork 3 - UINavigationController II

We get to know the UITableView and start by implementing it statically

Foodie Groundwork 4 - UITableView I

We learn more about the UITableView and customize it

Foodie Groundwork 5 - UITableView II

We get to know the UICollectionView and start by implementing a default one

Foodie Groundwork 6 - UICollectionView I

We learn more about the UICollectionView and implement our own custom cells

Foodie Groundwork 7 - UICollectionView II

We learn more about auto layout and how we can place elements correctly

Foodie Groundwork 8 - Advanced Autolayout

We get to know the UIPickerView and implement it in our app

Foodie Groundwork 9 - UIPickerView

We get to know UITextFields and how we can react to the input

Foodie Groundwork 10 - UITextField

We get to know the UIImagePicker and with it the camera and access to the photos on our device

Foodie Groundwork 11 - UIImagePicker

We test our app on a real device and talk about differences between an actual device and the simulator

Foodie Groundwork 12 - Simulator vs Device Testing

We get to know the MapKit and CoreLocation frameworks

Foodie Groundwork 13 - MapKit & Core Location I

We learn more about the two frameworks and track our location on a map

Foodie Groundwork 14 - MapKit & Core Location II

We get to know the UIPageViewController and how we can use it to swipe between views easily

Foodie Groundwork 15 - UIPageViewController

We present you an example solution for the DetailViewController

Foodie Groundwork 16 - DetailViewController Example Solution
Turn Based Multiplayer - Tic Tac Toe
4 Lectures 37:31

Preview for the Tic Tac Toe app

Preview 00:47

We start with the layout of our Tic Tac Toe app

Tic Tac Toe 1 - Layout

We implement the game flow for the Tic Tac Toe game

Tic Tac Toe 2 - Multiplayer

We use our new knowledge to implement a multiplayer solution for our Simon Says app

Simon Says 5 - Multiplayer
5 Lectures 47:41

Preview for the Soundboard app

Preview 00:29

We design the layout for our Drumpad

Soundboard 1 - Drumpad Layout

We get to know the AVFoundation framework, which we will use for in-app audio

Soundboard 2 - AVFoundation & AVAudioPlayer

We get to know AVAudioRecorder for recording our own audio, which we can then play back

Soundboard 3 - AVFoundation & AVAudioRecorder

We use our new knowledge about audio to implement sounds into our Simon Says app

Simon Says 6 - Audio
Multiple Choice Quiz
7 Lectures 01:06:18

Preview for the Quiz app

Preview 01:05

We set up our project and some general settings

Quiz 1 - Project Setup

We design the layout for our quiz

Quiz 2 - Quiz Layout

We work on our quiz layout some more to create a great user experience

Quiz 3 - Layout Optimizations

We learn how we can build static resources into our app using plists

Quiz 4 - Plist Resources

We implement the logic of our quiz game

Quiz 5 - Functionality

We add the countdown time and highscores

Quiz 6 - NSTimes & Highscore
SpriteKit Game
19 Lectures 02:50:49

Preview for the SpriteKit Game

Preview 01:15

We get to know the SpriteKit Framework in general

SpriteKit Game 1 - Introduction to SpriteKit

We get to know the SKScene and SKView classes

SpriteKit Game 2 - SKView & SKScene

We get to know the SKNode class

SpriteKit Game 3 - SKNode

We get to know the SKSpriteNode class

SpriteKit Game 4 - SKSpriteNode

We learn how we can use physics in our game

SpriteKit Game 5 - SKPhysics I

We learn more about SKPhysics

SpriteKit Game 6 - SKPhysics II

We create own subclasses of SKNode to get some further functionality

SpriteKit Game 7 - Subclassing SKNode

We finally get things moving in our game

SpriteKit Game 8 - Motion

We add enemies to our game

SpriteKit Game 9 - Enemies I

We learn how we can make our player jump when we tap

SpriteKit Game 10 - Jumping

We add coins and scorepoints which we have to collect

SpriteKit Game 11 - Coins & Scoring

We work some more on the enemies in our game

SpriteKit Game 12 - Enemies II

We use NSUserDefaults to save some values persistently

SpriteKit Game 13 - NSUserDefaults

We learn about different ways to animate objects in our game

SpriteKit Game 14 - Animation

We create an own button class for a SpriteKit app

SpriteKit Game 15 - SpriteKit Button

We start implementing the store for our game

SpriteKit Game 16 - Store I

We finish our store and are now able to buy upgrades

SpriteKit Game 17 - Store II

The last step is adding our Upgrades to the game so we can actually use them

SpriteKit Game 18 - Invincibility Implementation
10 Lectures 02:53:49

Preview for the Foodie app

Preview 01:26

We get to know the CoreData framework and save values we can then retrieve again

Foodie 1 - Introduction to Core Data

We create an own class for handling CoreData calls more conveniently

Foodie 2 - CoreDataStackManager Class

We implement the AddViewController which we can use to add new entries

Foodie 3 - AddViewController

We implement the BrowseViewController which we can use to see all of our entries

Foodie 4 - BrowseViewController

We customize our UICollectionView to make our FavoritesViewController look absolutely amazing

Foodie 5 - Custom UICollectionView Layout

We implement the DetailViewController and work with NSPredicates to filter our results

Foodie 6 - DetailViewController & NSPredicates

We use the Maps app to navigate to our restaurants

Foodie 7 - Navigation With Maps

We learn how we can edit existing entries in CoreData and update them accordingly

Foodie 8 - Editing Entries

We present an example solution for the gallery and the random function

Foodie 9 - Gallery & Random
2 More Sections
About the Instructor
4.4 Average rating
694 Reviews
10,701 Students
12 Courses
RUME Academy

I'm currently studying economics and work as a teacher on Udemy. I have worked in digital publishing and viral marketing for more than three years.

I am also a web and mobile application developer with almost four years of working experience. But my greatest passion is designing and developing mobile games for iOs devices, in either Objective C or Swift.

My teaching philosophy is best described in the words of Benjamin Franklin:

"Tell me and I forget. Teach me and I remember. Involve me and I learn."

I hope that we can create many beautiful things together and learn from each other.

4.4 Average rating
694 Reviews
10,701 Students
12 Courses
RUME Academy

I study Applied Computer Science and teach at the university and here on udemy. I have been developing iOS applications for over 3 years and have 5 years of experience in Objective C Programming. Since Apple announced Swift I have been using it in my programming and can proudly say I have experience since Day 1 of the language.

I am looking forward to sharing my knowledge with my students and hopefully have a positive impact on the lifes of as many people as possible as much as learning new things myself.

"You are never too old to set another goal or to dream a new dream." - C. S. Lewis

Report Abuse