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!
We write our first own little program which will say Hello, World
In this lecture we will get to know variable and constants in Swift and learn about the difference between the two
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.
In this lecture we will learn how we can use our newly learned knowledge to complete some easy mathematical tasks.
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.
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.
In this lecture we will take a look at declaring variables without initialization. Additionally we will learn how to create empty arrays and dictionaries.
In this lecture we will start learning about operators by taking a look at the assignment operator, arithmetic operators and the remainder operator.
In this lecture we will meet more operators. The incrementing and decrementing operator and the unary plus and minus operators.
In this lecture we will handle even more operators. The compound assignment operators and comparison operators.
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.
In this lecture we will learn about conventional for-loops. These are used to execute certain code multiple times.
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.
In this lecture we will in detail talk about the exercises give in the last lecture.
In this lecture we will learn about switch-statements which are used to easily check multiple cases and execute the adequate code.
In this lecture we will learn about the ternary operator and the nil coalescing operator.
In this lecture we will learn some last operators for this course, the range operators and the logical operators.
In this lecture we will take a look at a simple example where we can use the logical operators from the last lecture.
This lecture contains some more exercises for you to try and work with your new knowledge.
In this lecture we will again in detail talk about the exercises from the last lecture.
We start to look at functions in Swift by writing our first very own function
We extend our first method and learn about functions without parameters or return values
We get to know functions with multiple return values and how we can access them
We learn about default parameters and the variadic parameter
We learn about variable parameters and the special inout parameter
We get to know function types and how we can use them
We get to know closures and how they are different from functions
We simplify the closure from before and learn new things about the default parameters of a closure
We get to know trailing closures
We take a look at the capture of values with closures
We get to know enumerations and define our first very own type in Swift
We learn about associated types for enumerations
We learn about Raw Values for enumerations
We take a look at recursive enumerations and use them to solve an arithmetic problem
We get to know classes and structures that enable us to define more own types in Swift
We learn more about classes and structs by defining properties
We learn the important difference between value types(Structs) and reference types(classes)
We learn how we can compare instances with the identical operator
We take a closer look at properties and start by repeating stored properties
We get to know a special lazy property
We get to know computed properties
We get to know the property observer which enables us to react to changes of property values
We learn about the difference between instance and type properties
We start learning about methods
We get to know the property self and why we need it
We learn the difference between instance and type methods
We get to know subscripts
We learn about inheritance with classes
We start learning about initialization
We repeat the default and memberwise initializers
We learn about the difference between designated and convenience intializers
We take a look at the initializer chain with the security checks
We take a detailed look at initializer delegation
We look at a quick example of what we have learned about initializers so far
We get to know failable initializers
We look at the delegation with failable initializers
We finish the chapter initializers with required inits
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
We start to look at error handling in Swift
We start looking at an example for error handling
We get to know do-catch-statements for error handling
We learn how we can treat errors as optionals
We get to know type casting and the is and as operators
We get to know the types Any and AnyObject
We learn how we can nest types inside of each other
We get to know extensions and how we can use them to extend types
We learn how to add methods with extensions
We get to know protocols
We learn how to implement methods in protocols
We learn how to use protocols as types
We learn about the delegation design pattern using protocols
We learn how we can combine extensions and protocols
We take a look at inheritance with protocols
We get to know protocol compositions to combine multiple protocols
We learn how to extend protocols with extensions
We get to know generics
We get to know generic types
We take a look at type constraints
We get to know associated types with protocols
We get to know the where keyword and how we can use it with generics
We get to know the bitwise AND, NOT, OR and XOR operators
We get to know the bit shift operators
We learn about overflow, associativity and precedence with operators
We learn how to overload existing operators
Finally we learn how to create our own custom operators
We set up our project and get to know auto layout
We create the GameData class for our app
We implement our game flow and the game over condition
We finish the Simon Says game
We repeat auto layout with a simple example
We get to know the UINavigationController which allows for easy navigation in our app using a navigation bar
We learn more about the UINavigationController and how we can use it effectively
We get to know the UITableView and start by implementing it statically
We learn more about the UITableView and customize it
We get to know the UICollectionView and start by implementing a default one
We learn more about the UICollectionView and implement our own custom cells
We learn more about auto layout and how we can place elements correctly
We get to know the UIPickerView and implement it in our app
We get to know UITextFields and how we can react to the input
We get to know the UIImagePicker and with it the camera and access to the photos on our device
We test our app on a real device and talk about differences between an actual device and the simulator
We get to know the MapKit and CoreLocation frameworks
We learn more about the two frameworks and track our location on a map
We get to know the UIPageViewController and how we can use it to swipe between views easily
We present you an example solution for the DetailViewController
We start with the layout of our Tic Tac Toe app
We implement the game flow for the Tic Tac Toe game
We use our new knowledge to implement a multiplayer solution for our Simon Says app
We design the layout for our Drumpad
We get to know the AVFoundation framework, which we will use for in-app audio
We get to know AVAudioRecorder for recording our own audio, which we can then play back
We use our new knowledge about audio to implement sounds into our Simon Says app
We set up our project and some general settings
We design the layout for our quiz
We work on our quiz layout some more to create a great user experience
We learn how we can build static resources into our app using plists
We implement the logic of our quiz game
We add the countdown time and highscores
We get to know the SpriteKit Framework in general
We get to know the SKScene and SKView classes
We get to know the SKNode class
We get to know the SKSpriteNode class
We learn how we can use physics in our game
We learn more about SKPhysics
We create own subclasses of SKNode to get some further functionality
We finally get things moving in our game
We add enemies to our game
We learn how we can make our player jump when we tap
We add coins and scorepoints which we have to collect
We work some more on the enemies in our game
We use NSUserDefaults to save some values persistently
We learn about different ways to animate objects in our game
We create an own button class for a SpriteKit app
We start implementing the store for our game
We finish our store and are now able to buy upgrades
The last step is adding our Upgrades to the game so we can actually use them
We get to know the CoreData framework and save values we can then retrieve again
We create an own class for handling CoreData calls more conveniently
We implement the AddViewController which we can use to add new entries
We implement the BrowseViewController which we can use to see all of our entries
We customize our UICollectionView to make our FavoritesViewController look absolutely amazing
We implement the DetailViewController and work with NSPredicates to filter our results
We use the Maps app to navigate to our restaurants
We learn how we can edit existing entries in CoreData and update them accordingly
We present an example solution for the gallery and the random function
I'm currently studying Mobile Media and work as a teacher on Udemy. I have worked in digital publishing and viral marketing for more than four years.
I am also a web and mobile application developer with almost five 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.
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