Logomark
A shot of to go with your morning coffee.

Curious? Get 3 great screencasts FREE.

Xom Venmo Tb Eyefi Twg Medium

Thousands of developers use NSScreencast to stay on top of iOS development.

Video Training for iOS Developers

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.

  • Quality content This isn't Youtube. Each screencast is carefully produced in HD quality.
  • Team Plans Get access for your whole team. NSScreencast makes for great lunch & learns.
  • Any Device Stream on the web, or use one of our apps for  tv, iPhone, and iPad.
Why NSScreencast?

Founded in 2012, NSScreencast has been releasing 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.

Bite-sized screencasts on iOS and Mac development.

Displaying Episode 49 - 72 of 307 in total
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.
#257
257 watch os notifications part 2
In this episode, Dory finishes up implementing notifications for the Beer Button watch app. We learn how to configure and send timed notifications, and how to respond to those on the watch.
#256
256 watch os notifications part 1
In this episode Dory Glauberman covers how to set up notifications in your application on both the iPhone and Apple Watch using UNUserNotificationCenter. It highlights best practices for requesting notification authorization and demonstrates how to fire a sample notification for the Beer Button watch app.
#255
255 pin input
Sam Soffes walks us through an elegant way to handle 4-digit PIN input, for cases where you have a software lock screen to your app, or perhaps a 4 digit confirmation code is sent to you via SMS and you need to type it in to continue. Often this type of thing is done with four text fields side-by-side, with awkward delegate implementations to manage focus, etc. Instead, Sam shows us how to leverage the UIKeyInput protocol and create a much cleaner implementation.
#254
254 watch the dock
In this episode Conrad takes us through supporting the new dock feature in watchOS 3. If you want your watch app to be used, you should ensure it plays well with the dock by providing relevant UI snapshots that create a more seamless experience. The reward is that your app is treated like a first class citizen and kept running for longer!
#253
253 digital crown
In this episode, Conrad Stoll takes us through the new APIs we have for accessing raw information from the digital crown on the Apple Watch. In previous versions of watchOS, we had to resort to using builtin controls (or silly hacks), but now we have the raw data so we have much more flexibility.
#252
252 watch connectivity
In this episode, Conrad Stoll joins us once again to talk about how to use WCSession to pass data back & forth between our watchOS app and our iOS app. We'll use this power for the ultimate good, of course, by ordering a beer straight from our watch.
#251
251 swift grab bag
In this episode we cover some lesser-known features of Swift, including @discardableResult, escaping closures, defer, and using dump versus print for better debugging output.
#250
250 poker hands part 3
In this final episode in the Poker Hands Kata with Soroush Khanlou, we finish off by improving the design of our program, improving our tests, and implementing the remaining features for detecting the more complicated hands.
#249
249 poker hands part 2
In this episode I am joined again by Soroush Khanlou. We continue our exploration of the Poker Hands kata, focusing on fleshing out our types. We also begin matching poker hands, leveraging enums with associated types.
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.
#247
247 yahtzee kata
In this episode we will implement the Yahtzee Kata, which entails scoring hands based on dice rolls. We'll look at leveraging protocols and protocol extensions to mix & match shared behaviors across disparate types in order to perform matching and scoring of the dice.
#246
246 improved guard setup for swift
In the last episode we showed how to run Swift tests automatically with guard, but it wasn't an ideal setup. We couldn't see compiler errors, nor could we see any output from our program using print. In this episode we leverage Ruby's open3 library to capture stdout and stderr so we can output it to the terminal in the appropriate colors.
#245
245 fizz buzz kata
Code Katas are interesting challenges that can help you practice programming. Some are extremely difficult and others are fairly easy, but they all allow us to exercise the act of programming. Doing code katas can help you learn a new programming language, a new algorithm, or a new style of programming.In this episode we’ll tackle one of the most trivial katas: FizzBuzz.
#244
244 logging with swifty beaver
Logging is an important part of diagnosing issues in our application. Unfortunately, once they've shipped it's difficult to retrieve these logs to help identify issues with our released software. In this episode I'll take a look at SwiftyBeaver, a library that aims to make logging easy and accessible. We'll show how you can separate log messages by severity, selectively log some messages to the Xcode Console, some messages to a file, and sending them encrypted to the SwiftBeaver cloud platform for viewing with their provided viewer application.
#243
243 designing a custom download button part 2
Wrapping up our custom download button, this time we focus on the highlighted image and depressed state of the button, as well as transitioning to and from the progress layer.
#242
242 designing a custom download button part 1
In this episode we create a custom control to serve as our download button. We start by creating a circular progress indicator using CAShapeLayer, then move on to subclassing UIControl to provide our image view and touch handling.
#241
241 file downloads part 3
In this episode we take the download state and progress notifications and update the user interface to reflect this state. We'll see how to translate the notification into the indexPath for that episode row, and how to fake a change related to the fetched results controller to trigger a reload of the content. We will leverage the RateLimit library to save periodic changes in progress to the model without overwhelming Core Data.
#240
240 file downloads part 2
In this episode we create a DownloadInfo model in CoreData in order to track the state of a download, separate from any view controller.
#239
239 file downloads part 1
Downloading large files on iOS represents some unique challenges. Downloads should occur in the background, not confined to a particular view controller. They should be able to report progress on multiple screens, and should be robust enough to survive application suspension and failing network conditions, and respect the user's cellular data plan. In this episode we start a series on downloading large files that will cover all of the above concerns.
#238
238 core data in ios10
iOS 10 brings some welcome improvements to Core Data, including the all new NSPersistentContainer class. With this release, Apple has created a streamlined API that captures the most common uses of Core Data in iOS applications. In this episode we'll take a look at NSPersistentContainer, as well as the new code-generation capability in Xcode 8.
#237
237 swift 3
Swift 3 is now out and contains a host of new features and syntax changes. In this episode we'll look at a few of the more common changes you'll run into when upgrade projects to Swift 3 including implicit method argument labels, dropping the NS prefix on a bunch of classes, and the new Swift API naming guidelines.
#236
236 creating sticker pack applications
Now that iOS 10 is out, we can now create sticker packs to use in iMessage. In this episode we'll create a sticker pack using some artwork made by Jory Raphael, the very same designer who makes the lovely artwork you see on each episode. This particular sticker pack will be available soon in the App Store!