Top-notch video tutorials for Swift developers

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

ExxonMobil
Venmo
Thoughtbot
The Working Group
Medium

Updated Regularly

Bite-sized videos on iOS development.

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.

Up to date with Xcode 15 and iOS 17

We cover the latest and greatest to get you up to speed quickly.

UIKit, SwiftUI, SwiftData, and macOS

In our catalog you'll find a wide variety of topics and UI frameworks.

Swift Language

Increase your knowledge of the Swift language and take advantage of new Swift language features as they are developed.

High Quality Videos

We stress the details. Each screencast is carefully produced in HD quality.

Short and Focused

We don't want to waste your time. Most videos are between 10 and 20 minutes long.

Any Device

Stream on the web or use our native apps for iOS or the tv.

Team Plans

Get NSScreencast for your whole team. Discounts start at 5 seats
Steven Tolton

Have I mentioned lately how awesome NSScreencast is? No? Worth the subscription. Check it out if you’re an iOS developer. Or even if you’re not and you want an example of how to do coding screencasts well.

Foster Bass

Got tired of dead-end googling so I checked to see if @NSScreencast had covered what I was looking for. Of course he had, 4 years ago. Should have checked there first.

Aijaz Ansari

One 13-minute episode of @NSScreencast just paid for the yearly subscription fee in amount of time saved. Do it.

Sam Soffes

Seriously great stuff even for seasoned developers. I’ve learned a good amount from Ben’s videos.

James Dempsey

You can really expand your development horizons in just a few minutes a week with NSScreencast.

Alexis Gallagher

Random PSA for iOS developers: @NSScreencast is a great resource, and worth every penny. It’s high quality, practical, and honest.

Nate Armstrong

Can’t say enough good things about @NSScreencast There is gold in the Road Trip DJ Series.

Karl Oscar Weber

I just reuppped my subscription to @NSScreencast. [An] indespensible resource if you’re into iOS or Mac Development.

Marcus Ziadé

Just finished @NSScreencast series on Modern CollectionViews. Strongly recommended. Programmatic UI, nicely structured code, easily approachable explanation style. 👌

Showing episodes 193 - 216 of 584 in total
  • Custom Gradient Background

    #392

    Making a Podcast App From Scratch

    In this episode we create a custom UIView subclass that draws a gradient overlay. This allows us to overlap the podcast information above the artwork slightly.

  • Podcast Detail Screen

    #391

    Making a Podcast App From Scratch

    In this episode we start laying out the Podcast Detail screen. We'll start by using an embedded view controller for the header portion, which contains all of the top-level information about the podcast. We'll then see how we can utilize this child view controller to contain all of our outlets and how to pass data from the parent view controller to the child.

  • Parsing RSS and Atom Feeds

    #390

    Making a Podcast App From Scratch

    To get the information we need for the Podcast Detail screen, we’ll have to get the feed URL and parse it. There’s no built-in Codable support for XML, so we’ll look at using FeedKit to parse the feeds and extract the relevant information we need.

  • Displaying Search Results and Recommendations

    #389

    Making a Podcast App From Scratch

    In this episode we build another API client to search for podcasts matching a term and customize the UI and behavior of the search bar. We display the recommended podcasts first, then when a user types in a term we show the matching podcasts from the iTunes API.

  • Parsing JSON into Models

    #388

    Making a Podcast App From Scratch

    In this episode we take the response from the top podcasts feed and decode the JSON into models using Codable.

  • Creating an API Client

    #387

    Making a Podcast App From Scratch

    It's time to start talking to external APIs to get the data we want to display in the app. We start by exploring the API we want to consume with Paw, a useful macOS app. We then create a simple API client class that abstracts most of the boilerplate logic around how to handle the various URLSession outcomes.

  • Working with Remote Images

    #386

    Making a Podcast App From Scratch

    Working with images from the network is such a common task in iOS development. In this episode we'll cover a useful library called Kingfisher, which gives you a simple API for downloading and caching images from the network. We also look at two ways for configuring our image view, one using User-Defined Runtime Attributes and the other by using awakeFromNib in code.

  • Styling Custom Cells

    #385

    Making a Podcast App From Scratch

    In this episode we add our tableview cell styling to match the design, using autolayout to arrange the views and using the Xcode View Debugger to find and fix a visual glitch when using dark background cells.

  • Reusable Views

    #384

    Making a Podcast App From Scratch

    In this episode we start building our first table view cells. We then build a protocol to represent Reusable Views, such as UITableViewCells. With this protocol you can supply a simple type reference and the reuse identifier and casting happens for you. Leveraging Swift's protocol extensions allows you to leverage your conventions to write cleaner, safer code.

  • Storyboard References

    #383

    Making a Podcast App From Scratch

    We start out by creating our first view controller (Search) by creating some structure to keep things organized by logical function (rather than by subclass) and create a storyboard to hold each tab. The main storyboard then uses Storyboard References to keep things tidy.

  • New Project Setup & Theming

    #382

    Making a Podcast App From Scratch

    We start from a blank project template, then add our first storyboard and tab bar controller. We also introduce a mechanism for skinning the app with a Theme type.

  • Intro

    #381

    Making a Podcast App From Scratch

    We’re kicking off a brand new series on building a podcast app from scratch. Along the way we’ll deal with implementing some custom UI, transitions, networking, local persistence, and of course audio playback.

  • Exporting assets for Xcode

    #380

    Designing a Podcast App in Sketch

    In this episode we export the assets used in our Sketch design in a format we can use in an Xcode project. Using the Make Exportable button, we can easily export known sizes or size multiples (like 2x and 3x) and have them output as PNG files.

  • A Look at Prototyping

    #379

    Designing a Podcast App in Sketch

    In this episode we take a look at the prototyping features of Sketch that allows you to link artboards together with transitions, then preview the app on an mobile-sized window. This can be a valuable tool in your arsenal when working with clients to convey ideas, nail down the navigation and flow of an application, which is something difficult to communicate with static pictures alone.

  • Designing the Player Bar

    #378

    Designing a Podcast App in Sketch

    In this episode we design the "player bar" which will be a persistent view above the tab bar that we can use to control playback or get back to the play from anywhere else in the app.

  • Using a Color System with Symbols

    #377

    Designing a Podcast App in Sketch

    In this episode we design the player screen, and talk about how to create a color system for overriding colors for buttons and other UI elements.

  • Designing the Podcast Detail Screen

    #376

    Designing a Podcast App in Sketch

    In this episode we design a Podcast detail screen, that displays the show’s artwork, name, publisher, category, and a list of episode. We also consider what this screen looks like if you’ve already subscribed.

  • Using Masks to Round Corners

    #375

    Designing a Podcast App in Sketch

    We continue our design of a Podcast app in Sketch. This time we focus on designing a Search screen, complete with table view cells and keyboards. We'll see how to use masks to round the corners of an image and easily duplicate and offset content.

  • Using Sketch's iOS Design Library

    #374

    Designing a Podcast App in Sketch

    In this episode I start designing a new Podcast App. I decided to design it in Sketch first so I could define the look & feel, flow, and data required first. In this episode we start by leveraging Sketch's iOS Design Library, then customize them by creating our own symbols. We end up with a custom themed iOS design that uses a tab bar with custom icons.

  • Decoding Request Parameters

    #373

    Server-side Swift with Vapor

    Taking input from a request body in order to update or create a record is extremely easy with Vapor. In this episode we will update our create and update routes for Projects and take in JSON input from the request in order to modify Projects. We also talk about decoupling the request model from our actual model to prevent updating certain internal attributes from being modified.

  • Vapor Controllers

    #372

    Server-side Swift with Vapor

    So far in this series we have been adding all of our routes to the routes.swift file. You can see that this would get unwieldy over time. In this episode we will use RouteCollections to build controllers so that we can organize the routes around the Projects resource. We’ll conform our Project type to the Parameter protocol to make loading models from a route parameter extremely simple, and we will leverage the Content protocol to have the results serialized to JSON automatically.

  • Pivot Tables for Many to Many Relationships

    #371

    Server-side Swift with Vapor

    When you have a many-to-many relationship you typically rely on a join table, or what Vapor calls a Pivot table to relate the records together. In this episode we will create a relationship to allow an issue to have many tags, and also allow a tag to apply to many issues. We'll see how we can use Vapor's ModifiablePivot and Sibling types to make working with these relationships easier.

  • Scripting in Swift with Marathon - Part 2

    #370

    We continue our mini-project to create a Swift script that automatically creates migrations for Vapor projects. In this episode we save the generated templates to disk, render a generated extension so that we can add these migration types to the Vapor service, and see the example running end-to-end.

  • Parent Child Relationships and Foreign Keys

    #369

    Server-side Swift with Vapor

    Our Project and Issue models currently aren't connected in any way. In this episode we will add a foreign key to the projects table and add the parent/child relationships the models so that we can query for issues belonging to a project.