Logomark
Join thousands of developers learning development
on NSScreencast.

The iOS landscape is large and changes often. With short, bite-sized videos released on a steady schedule, NSScreencast helps keep you continually up to date.

Get access to over 250 screencasts covering all aspects of iOS development.

Why NSScreencast?

I started NSScreencast in 2012 and have been putting out a new screencast each week for more than 5 years. With short videos you can learn a lot over time without a huge time commitment.

NSScreencast offers the largest collection of iOS development screencasts on the internet. With the range of videos that NSScreencast offers, there is something for people of every skill level.

Get notified of new episodes

Bite-sized screencasts on iOS and Mac development.

Shape
#259
258 hello cloud kit part 1
In order to use CloudKit to read or write private data (or to write in the public database) the user will have to be signed in to iCloud on their device. If they are not, they'll not have a great experience, and things won't work. In this episode we'll check the account status before trying to save a record in CloudKit. We'll also respond to the notification to know when the user's account status has changed so we can react accordingly.
Shape
#258
258 hello cloud kit part 1
The first episode in a new series on CloudKit, here we see how to setup our project to use CloudKit as well as how to create and save our first record.
Shape
#248
248 poker hands part 1
In this episode I am joined by Soroush Khanlou. Together we pair up to implement the Poker Hands Kata. We start off by parsing the raw string input into structured types, complete with tests.
Shape
#191
191 swift 2 optionals poster
In this free episode, we take a look at a core Swift 2 feature: Optionals. Unlike Objective-C, where nil is considered a no-op, in Swift nil is specifically recognized by the compiler, which forces you to handle cases where nil might be present in a variable.
Shape
#189
189 swift 2 functions and extensions
In this free episode, Ben explores Swift 2 functions, how argument labels work, returning tuples, the guard clause, as well as extending behavior on core types.
Shape
#187
187 swift 2 basics poster 1280
In this episode we take a look at Swift 2's basic types such as Int, Double, Bool, Array, and Dictionary. This episode is part of a series covering Swift 2 from a beginner's perspective.
Shape
#158
158 road trip dj part 3 poster 1280
Continuing our build out of Road Trip DJ, this time I focus on the music player, and keeping the play/pause button in sync on UIToolbar, which proves to be more difficult than it should be.
Shape
#157
157 road trip dj part 2 poster 1280
In this episode we continue Road Trip DJ and implement the media picker controller, talk about the different modes that in can operate in and how that affects the usability of this app. We also consider how we're going to build a playlist and keep appending items to it.
Shape
#156
156 road trip dj part 1 poster 1280
In this episode we start building an app from scratch called Road Trip DJ. The idea is the build a playlist of music on the fly while it is playing. This is an app I've wanted to build for a while and it serves as a good, small app we can build from start to finish.
Shape
#99
099 parsing and formatting dates poster 1280
In this episode we cover a basic but fundamentally important topic: dealing with dates & times. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We'll examine some of the common ones, talk about how to parse these formats into NSDate instances, and how to use NSDateFormatter to display them back again as a string.
Shape
#87
087 xcode5 autolayout improvements poster 1280
This week we have another free bonus video on the improvements that Xcode 5 brings to Autolayout. As something that has been quite obnoxious to work with in the past, many people dismissed auto layout when it was introduced to iOS 6. With these improvements it is much more friendly and dare I say... usable?
Shape
#85
085 hello ios7 poster 1280
To celebrate the launch of iOS 7, here is a bonus free screencast covering a few of the concepts in iOS 7 such as the status bar behavior, tint color, and navigation bar transitions. We'll also take a look at Xcode 5 with a couple of the new features, including the integrated test runner.
Shape
#60
060 windows azure mobile services part 2 poster@2x
We continue with our example chat application here and add the ability post a message, poll for updates, and receive push notifications. This episode utilizes a pod calles MessagesTableView controller to present an SMS like interface for the messages.
Shape
#59
059 windows azure mobile services poster@2x
This week we take a look at Windows Azure Mobile Services, a back-end for mobile applications that has first class iOS support. In this episode we begin building a full featured chat application. This is part 1 of 2, in which we set up a new mobile service, wire up the SDK with CocoaPods, set up Twitter authentication and enrich the data using Javascript on the server. This episode has been sponsored by Microsoft.
Shape
#28
028 creating a cocoapod poster@2x
In this episode, we'll create a CocoaPod out of the modal picker view component we created in episodes 25 & 26. We'll see how to tag & push our code to a github repository and create a podspec so that others can use this component in their projects.
Shape
#27
New syntax poster@2x
The latest version of the LLVM compiler supports some excellent new syntax additions to the Objective-C language. In this episode, I cover what the new syntax is, how to use it, and a few caveats to look out for.
Shape
#15
Http caching poster
HTTP Caching is an important concept to understand when building iPhone apps that consume HTTP APIs. In this episode, we'll see how leveraging Etags, Last Modified dates, and Cache-Control headers can help make your app more efficient and tolerable to use.
Shape
#13
Setting up jenkins poster
In this episode, we'll set up a free continuous integration server called Jenkins (previously Hudson) to run our build. We'll configure it to automatically check out changes from git, run the build, and finally run all of our tests. We'll then use a conversion script to translate the test output into JUnit test report files that Jenkins natively understands.
Shape
#12
Core data importing poster
In this screencast I'll pull down data from an API, map the JSON to a Core Data Managed Object and import them in bulk on a background thread. Then we'll display the imported content in a UITableView using NSFetchedResultsController.
Shape
#11
Core data basics poster
Core Data is Apple's framework for persisting data on Mac & iOS. It can be though of as an ORM, however it's probably a lot different than most ORMs you've used in the past. In this episode, we'll set up Core Data from scratch so you can see all the moving parts.
Shape
#10
Fun with blocks poster
Blocks are a great way to simplify code when dealing with asynchronous tasks (using GCD), callbacks, and atomic operations. In this episode, we'll look at a few ways you can use blocks in your code.
Shape
#9
Arc poster
In this episode, I'll show you how to convert your project to use Automatic Reference Counting (or ARC) to eliminate the need to use retain, release, autorelease, and dealloc in your Objective-C code!
Shape
#8
008 poster
UITableView can support skimming through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren't ever going to scroll down that far. In this episode you'll learn how to perform automatic UITableView paging using an easy technique.
Shape
#7
007 poster
It can be useful to save lightweight application data to disk so that it persists between application launches. This episode will show you how to serialize common objects such as NSArray and NSDictionary to disk, as well as implementing custom object serialization using NSKeyedArchiver.