Weekly bite-sized screencasts on iOS development.

Poker Hands - Part 1

Episode #248 | 47 minutes | published on 12/22/2016
Free Video
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.

Swift 2 Optionals

Episode #191 | 8 minutes | published on 10/08/2015
Free Video
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.

Swift 2 Functions and Extensions

Episode #189 | 15 minutes | published on 10/01/2015
Free Video
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.

Swift 2 Basics

Episode #187 | 17 minutes | published on 09/17/2015
Free Video
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.

Road Trip DJ - Part 3

Episode #158 | 13 minutes | published on 02/26/2015
Free Video
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.

Road Trip DJ Part 2

Episode #157 | 12 minutes | published on 02/19/2015
Free Video
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.

Road Trip DJ Part 1

Episode #156 | 10 minutes | published on 02/13/2015
Free Video
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.

Parsing and Formatting Dates

Episode #99 | 14 minutes | published on 12/12/2013
Free Video
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.

Xcode 5 Autolayout Improvements

Episode #87 | 7 minutes | published on 09/26/2013
Free Video
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?

Hello, iOS 7

Episode #85 | 7 minutes | published on 09/19/2013
Free Video
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.

Windows Azure Mobile Services Part 2

Episode #60 | 27 minutes | published on 04/02/2013
Free Video
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.

Windows Azure Mobile Services

Episode #59 | 24 minutes | published on 03/28/2013
Free Video
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.

Creating a Cocoapod

Episode #28 | 13 minutes | published on 08/09/2012
Free Video
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.

New Objective-C Syntax

Episode #27 | 13 minutes | published on 08/02/2012
Free Video
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.

HTTP Caching

Episode #15 | 9 minutes | published on 05/10/2012
Free Video
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.

Setting up Jenkins

Episode #13 | 13 minutes | published on 04/26/2012
Free Video
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.

Importing into Core Data

Episode #12 | 22 minutes | published on 04/19/2012
Free Video
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.

Core Data Basics

Episode #11 | 22 minutes | published on 04/19/2012
Free Video
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.

Fun with Blocks

Episode #10 | 21 minutes | published on 04/04/2012
Free Video
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.

Automatic Reference Counting

Episode #9 | 10 minutes | published on 03/29/2012
Free Video
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!