iLaunch Curriculum Index

Navigate the Curriculum and More

First Year Curriculum

Swift, SpriteKit, and Your First App

Every year over the summer, our Head Captains reinvent our entire Year 1 Curriculum. With the school year begins, we keep four weeks (8 lessons) ahead of the curve, so that you can still look ahead at future lessons. Why do we revise?

 

-The Xcode IDE and the Swift Language update very often. We want to make sure that all syntax is up to date.

-Every year, we keep close track of what about the curriculum worked, and what didn't for Year 1 Developers. Revisions allow a more polished and cohesive curriculum every year!

 

This page is home to all the lessons and information for upcoming Year 1 developers. At the end of the curriculum, the objective is to prepare developers with information we believe critical to successfully making and publishing a game. The first 25% of the curriculum focuses on the Swift language, while the rest focus on the SpriteKit Framework.

 

During lessons, click into each lesson to follow along, and review them afterwards for a refresher!

 

As a Part 2, we also have Gamethon Resources, which is made up of templates and more information to help you create your game.

Part 1: Year 1 Curriculum

Learning Swift and the SpriteKit Framework so that you'll be ready to create your first game.

Lesson 1: Introduction to Programming in Swift

Introduction to programming

Swift, Xcode, Data Types, Var/let, Declaring/Initializing, etc.

Lesson 2: Operators & Arrays

Arithmetic operators

Arrays and append

Generate random numbers

Lesson 3: Control Flow and If Statements

If statements

Loops- while and for

Boolean operators

Lesson 4: Functions

Making a Swift function

Scope

Lesson 5: Classes and Encapsulation

Creating a class

Encapsulation

Object Oriented Programming

Lesson 6: Swift Inheritance

Inheritance in Swift

Continuation Object Oriented Programming

More on classes and objects

Lesson 7: Xcode Projects

Making a Project

Walking through files

Making classes in projects

Lesson 8: SpriteKit and Documentation

Draw a background

SKSpriteNode

SKLabelNode

Swift Documentation

Lesson 9: Extensions and SpriteKit cont.

Extensions for nodes

More on SKSpriteNode and SKLabelNode

Button class

Touch function

Lesson 10: SpriteKit Physics

Using physics

SKActions

Lesson 11: Rolling the Ball

Physics Ball Project

Lesson 12: Beginning Torchbearer

In a project:

  • Sprites on screen
  • Screen template
  • Physics
  • Collision checking
  • Touch functions

Lesson 13: Torchbearer Extended

Adding the Extended Sprite in Torchbearer

Lesson 14: Bullet Time

Timers

Bullets

Lesson 15: Score and Game Over

Game Over popup

Score and highscore

Lesson 16: Scenes and Screens

Changing View Controller

Changing screens

Homescreen

Lesson 17: Gesture Recognizers

Implementing gestures

Changing screens with gestures

Lesson 18: Light and Emitters

SKEmitterNode

SKLightNode

Side projects

Lesson 19: Decorating Torchbearer

Animation

Custom Fonts

Background Music

Lesson 20: Persist Data and Wrap Up

Persisting data

Finishing Torchbearer

Review Sessions and Practice Projects

Intro to Gamethon

Intro to Gamethon

Going over everything we've learned so far in preparation to make a game.

 

 

Part 2: Gamethon Resources

Coding and Releasing Your First iOS Application

General Information

Click to the right to learn about Gamethon. To sign up, contact one of the Head Captains. There are no "curriculum-esque" meetings during Gamethon, but below are some resources you may find helpful.

Templates

The Screen Template, SKSpriteNode/SKLabelNode extensions, Extended Sprite, Button Class

Using .sks files

In introduction to creating Levels in Xcode using .sks files (like Angry Birds or Cut the Rope)

SKEffectNode

Using SKEffectNode to apply blur, warp, transforming effects to your app.

SKCameraNode

Using SKCameraNodes to zoom in/out, change perspective, scroll through scene, etc...

SKShapeNode

Making Shapes such as arcs and blobs instead of just rectangles and circles in Swift.

Global Leaderboards

Allow you to automatically rank app data with other local players (e.g. ranking local highscores)

Multiple UIViews

Making your screen have mulitple UIViews

Saving Custom Objects

Making persistent custom objects

App Monetization

Implementing Ads unobtrusively into your app

Submitting Your App

How you can submit your code to the App Store for review and publish it onto the App Store.

Updating Your App

How you can update your app if you decide to make changes