**** UPDATE - We've included source projects updated for Swift 3. The code changes from Swift 2.2 to 3 were VERY minor changes (as you'll see from the code)! With that said, here's our original description for the course with plenty of references to Swift 2 and Xcode 7...
This series of videos will focus on iOS9-related topics. All of these use Swift, SpriteKit, Xcode 7/8 and apply in most cases to both iOS and tvOS. There is no recommended viewing order for these topics. Jump right into any of the topics below:
On-Demand Resources in iOS9
In this video tutorial we will discuss the Swift code related to loading On-Demand Resources, or simply ODR. ODR can drastically reduce the initial size of your app, and allow your users to only download what they need, when they need it. For example, you could hold off loading images / sounds for level 2 of a game if the player will still stuck on level 1.
Take Photos and Access the Camera Roll then Use them in a Sprite Kit Game!
Learn how program a SpriteKit and Swift 2 based app that allows user's the option to add pictures from their camera or camera roll into the game or scene, mask the images, then adjust the layout of the picture within the mask (zoom in / out, move it, rotate, squash and stretch it). The edited masked-image can then appear in ANY other scene throughout the lifespan of the app (it's saved as an NSUserDefault).
In-App Purchasing for iOS or tvOS Apps
Learn how to sell Consumable and Non-Consumable Products in your iOS9 or tvOS, Swift 2-based Sprite Kit App.
NSUserDefaults with Swift 2 (and how to save the location of nodes)
In this tutorial, we'll look at saving various types of data to the NSUserDefaults. The NSUserDefaults is great for information that you want to exist even if the app is closed and reopened. As long as the user does not delete the app entirely, the data is still there (the data is basically like a property list that is saved at runtime). So we'll look at saving String objects, Ints, Bools, Arrays and finally a Dictionary (where objects are moved at runtime and their location is saved for the next time the app is run).
Keyboard Input with Swift 2 for iOS and tvOS
This video tutorial will teach you how to open a view to enter keyboard input, close it and save the entered values as an NSUserDefault. Along the way you'll also see how to include placeholder text (to easily adjust the width / height, font, and font size of the input area), include custom fonts for the input text, and test the values of the input text. For example, you could include a Parental Gate in your app that prompts parents to enter a specific value, like 12 + 3, then test to see if they typed in 15. This code has been test on both iOS and tvOS devices.
Parsing a property list with Swift 2
In these videos you will learn how to parse a property list with Swift 2 and organize data (Strings, Numbers, Arrays or Dictionaries with native Swift types). Plists are useful for just about any iOS / tvOS app, but in this particular example, we will create hypothetical level data (an Array of Dictionaries), and discuss reloading the same GameScene class while "leveling up" each time.
NSNotifications with Swift 2
In this Swift 2 video tutorial, we will work with NSNotifications to call functions / send data between classes without breaking good MVC pattern (for example, having subviews send info to parent views). In our example, we'll make the GameScene post a notification to the GameViewController. We'll even pass dictionary data using the userInfo parameter.
Helper Classes with Swift 2
In this short video tutorial, we'll look at creating static variables and functions in a Helper class with Swift 2. This Helpers class will be accessible to any other class in your app, so it's great for reusable functions and saving certain variables. This is similar to working with Singleton classes, and for good measure, we'll even create a Singleton class to show you the subtle differences.
Game Center - Achievements and Leaderboards
In these Swift 2 video tutorials, we will work with Game Center to post scores to a Leaderboard and note progress toward unlocking Achievements. This of course involves setting up both a Leaderboard and Achievement in iTunes Connect, then authenticating the local player, and all the code involved with posting to Game Center. As always, you'll learn every step of the code. The finished project is SpriteKit and Swift 2 based.
Justin Dike is the founder of CartoonSmart one of the internet's first video training websites. He is a long-time illustrator and animator, focusing mostly on Adobe Flash, and experienced programmer with Swift, Sprite Kit, Actionscript 3, Objective C and Cocos2d. For CartoonSmart he has recorded hundreds of hours of video tutorials and recently published his first full length book titled iOS Programming with Xcode and Cocos2d available in the iBookstore. Justin has also developed many iOS games, including a side scrolling game engine.