Build your first mobile game for iPhone Swift/iOS having fun

Learn Swift, iOS and SpriteKit while having fun, learn programing from the ground up every and learn while playing games
4.8 (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.
107 students enrolled
92% off
Take This Course
  • Lectures 27
  • Length 4 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 4/2016 English

Course Description

Have you ever imagine yourself as a spy, breaking codes, picking locks? In this game you will have to crack the secret code to pop the lock, and more you will have to build this game from scratch if you want to play it and learn a lot about Swift, SpriteKit and iOS while doing so.

The game is fun to play and watch others playing, however it is just a fun way for me to teach you all you need to know to be a excellent Swift/iOS developer.

Trougth the course of this course we will learn about:

  • SpriteKit Framework and its boiled plate code
  • Extensions, what is and how to use
  • How to encapsulate our code and use private variables, getters and setter and why
  • How to refectory your code as you go, what is refectory and why you should always do it
  • Loops, different kinds of loops, with one to use for different scenarios and why
  • Inheritance, including initializers, convenience, required, overriden how to do it right
  • Properties, including property observers and computed properties, what it is and how to use
  • Protocols, I know you hear about it before, but do you really understand what it is and how to use?

In this course we will cover one topic at the time as we need we will discuss itm examine the options and add to our game to make it more and more awesome

What are the requirements?

  • Students must have XCode installed and working
  • Basic knowledge about XCode and programming

What am I going to get from this course?

  • Create a fully functional game
  • Have a deeper understand of the problems that can happen while coding and how to solve it
  • Student will be able to create code easy to understand, test and scale

Who is the target audience?

  • Anyone looking to learn or deeper it's knowledged in Swift, iOS or SpriteKit
  • Anyone that want to learn while having fun making a game
  • Anyone open minded that want to be leading and not following

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Start Here

Find out a little bit about me in this video


Post here your ideas for new BONUS sections so we can vote and together decide what new features we can implement in this already amazing game

Introduction to the course
Section 2: Introduction to SpriteKit

When we create a new project in XCode it give us a lot of boiled plate code that most of people take for granted it is very important to understand what it does and why it is there before we start put our own code in.

In this lecture we will learn:

  • How to create a new SpriteKit project
  • Understand the Boiled Plate code that it generates
  • Delete the unnecessary code for our project
Section 3: Creating Extensions

Sometimes we can change our mind, in this case we can code our game all in one color to decide to change it later on, if we color been create all over the place will be very difficult and time consume to find the right place to change, this is why Extensions are so important

In this lectures we will learn:

  • Why and when we should use Extensions
  • How to create a new Extension
  • How to name a Extension
  • How to use the Extension 
Section 4: Starting the game, initializers and new classes
Creating PadLoackSKShapeNode class
Using PadLoackSKShapeNode class
Adding a pin class to the PadLockSKShape
Section 5: Add animation to our game
Add rotatition to the pin
Section 6: Add helper functions
A little maths in the getNewTarget function
Section 7: Creating a target and make it fun

It is very important to know when to create setup functions as it can make our code much clean and easy to read and understand.

In this lecture we will learn:
  • How to create a setup function that store values for future use by another function

Once we store the values we need in the setup function we need to use this values on demand as we need.

In this lecture we will learn:

  • How to use stored values to create new targets as we need
  • Refectory code to easy readability and understanding 

Setup the target first and just call the getNewTarget function later

Some times two random numbers can be two close together what does not work very well to our game, we need to find a way to create a space between the targets to make the game more enjoyable, and we never know if we will need to create one, two or ten random number to have this new position.

In this lecture we will learn

  • Repeat while loop, how to drawn new random values until a valid value in draw
Section 8: Lets see now how easily we can change your game
Minute of appreciation for what we build so far
Section 9: The game cycle
Creating some space between the targets
Create a SKNode to keep our target as children
Collision detection setting up PhysicsBody
Using booleans to create a "switch" in part of the expressions
Section 10: Making the code more useful, more reliable and expandable

Sometimes many ideas come to mind and we don't know were is the "correct" or more appropriate place to put the code, even because we don't know the full picture yet, this is why refactoring is so important. When refactoring we shouldn't be changing any of the functionality of the application just rearranging the current functionality to the correct place.

In this lecture we will learn:

  • How to properly refectory our pop the lock game
Section 11: More enhancements

A player can die for many different reasons however the final result is always one, for that reason we should have only and just only one piece of code handling what is the faith of each player for all level of the game of all times.

In this lecture we will learn:

  • How to use one GameController to control the events of one GameScene

How do we decide from what class to inherit from, we always should start from NSObject the basic class from were all the other classes inherit from however sometimes we need some special functionality. 

In this lecture we will learn:

  • Check for the most appropriate inheritance for an class
  • How to change the inheritance of an existent class 
Add new features and improving the game
Section 12: Working with Physics

Use of variables to keep tacking of states is very common sometimes we need to set a variable when a event happen and unset when another event happen so we know what do to in response to different events.

In this lectures we will learn:

  • How to create a variable to keep track of the event (pin enter in contact with target)
  • How to check if the contact (pin enter in contact with target) is valid when the player tap the screen   
Section 13: Adding a HUD (heads up display)
Creating a HUD - Head up Display
Making use of our new HUD Class
Section 14: Have fun playing a Q&A game to see what you learned now
1 question
1 question
Section 15: Students deals
Visit our website and check out the latest deals

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Icaro Lavrador, Swift Expert|Senior iOS Developer|Udemy Premium Instructor

  • I am an "eternal student", I start programing when I was just 10 years old and to this day I still learning new things every day.
  • Because of my passion in learn new things I developed a passion to teach as well, I start helping people at Stackoverflow where I am ranked as the top 10% Developer Help for Swift and top 20% Developer Help for iOS.
  • You will not see my name in many app as I am the go to guy to fix problems, I offer my work mainly as a contractor solving problem that the others professional cannot solve.
  • I start develop software and consultancy when I was 15 years old and never stop, today I want to help people because I read every day the code produced by the professionals in the field and I can honest say they are mostly JUNK.
  • One of my clients try to use an Udemy iOS course to argue about some strategies he took in his code. After see so many WRONG explanations, so many BAD advice I decide to create my own courses. I watch over 15 top rated courses at udemy and out before decide to take action
  • My courses are create to make YOU the best in the field, I can guarantee that if you take my courses you will drop jaws in interviews, companies are desperate looking for good developers and they will pay you over $100k/year to work for them.
  • But you have just one shot to impress, so make it the right one, learn right, learn it once, make money forever.

Ready to start learning?
Take This Course