Ben Scheirman

NSScreencast (free videos)

NSScreencast features weekly bite-sized videso on iOS development. This free feed is just a sample of what is available for members. Subscribe today at https://nsscreencast.com.

Author

Ben Scheirman

Category

Uncategorized

Podcast website

nsscreencast.com

Latest episode

Feb 4, 2026

Where to listen?

Podcasts in the app Replaio Radio Coming soon

Podcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts

Get it on Google Play Install for free Android 5M+ downloads · 4.8 rating iOS soon

Episodes

#605 - Profiling and Removing Splits Video 04.02.2026

The initial, naive solution for the 1 Billion Row Challenge, which involved splitting strings by separator and semicolon, parsing cities and temperatures, and then collecting and outputting data, ran in approximately 11 minutes. This time we profile our solution to see where the time is spent. We find some quick wins for optimization and drastically improve the run time.

#604 - Billion Row Challenge - Intro Video 23.01.2026

In this episode, I am thrilled to be joined by Matt Massicotte to kick off the "1 Billion Row Challenge" in Swift. The goal is to efficiently parse a massive file containing weather station data and calculate the min, max, and mean temperatures for each city. We set up a Swift package, explore basic file I/O methods, memory mapping, chunked reading, and implement a naive solution that processes th...

#591 - Getting Started with AudioKit Video 04.04.2025

We'll first take a look at the AudioKit Cookbook application, which is a great way to see what is possible. Once we've seen some of the capabilities we can look at the code to get an idea of how to build things with AudioKit. We'll then add a package collection in Xcode to make bringing in the various AudioKit package dependencies a little easier.

#590 - Audio Fundamentals Video 28.03.2025

We kick off a new series on audio programming for iOS using AudioKit. Before we jump into code, however, it is important to get a foundational understanding of how audio works and how it is represented by the audio hardware (sound cards, etc) that the software integrates with. In this episode we will talk about the fundamentals of audio, learn some essential terminology, and look at some real worl...

#553 - Mastodon Post UI and HTML Parsing Video 19.04.2023

In this episode we tackle showing a list of posts, which requires us to convert the network models into models more fit for the UI, parsing HTML in order to display as an AttributedString, and displaying the author information.

#531 - SwiftUI Escape Hatch Video 02.06.2022

Sometimes we run into issues where SwiftUI doesn't quite do what we need. In some cases, SwiftUI views are powered by UIKit under the hood. Wouldn't it be great (and devious) to dig into the underlying UIKit views to customize things when vanilla SwiftUI just won't cut it? In this episode we'll look at a technique for discovering the UIKit underneath SwiftUI views.

#526 - Hot Reloading with Inject Video 15.04.2022

One of the most impactful things you can do to improve productivity is to improve turnaround time when iterating on features. Playgrounds and Xcode Live Previews are great, but both have their limitations. In this episode we will explore how to utilize hot module reloading to have the simulator automatically reflect your changes when you save. It's magic, and will blow your mind!

#501 - Nested Xcode Projects Video 26.08.2021

One way of achieving modularization is to build frameworks using nested Xcode projects. This has the benefit of having everything in one place and can easily build the entire thing. You can also zero-in on a single project and just work from there if you want. Each sub-project can have its own tests, sample application, etc.

#500 - Motivation for Modular Project Architecture Video 19.08.2021

In this episode we will talk about the overview and motivation for a modular project architecture. Why split things up? I'll talk about the problems we face, what benefits we may achieve, and how can we approach the problem.

#491 - Xcode 13 Vim Mode Video 15.06.2021

One of my favorite new features of Xcode 13 is support for Vim key bindings. In this episode we will see how to enable this and I'll give a quick tour of how to get around using Vim.

#486 - Intro to Protocol Witnesses Video 22.04.2021

In the next few episodes we will explore the concept of Protocol Witnesses. This is an advanced topic that can be somewhat hard to approach, but in learning about Protocol Witnesses you will see how we can leverage the Swift language and functional programming to do some really cool things.

#482 - Basic Context Menus Video 29.03.2021

Context menus are a great affordance for performing related actions to a UI element. Users can tap and hold to view the context menu, and the gesture is consistent across the OS so users will likely already be familiar with it. In this episode we'll show how to set up a basic context menu with a custom preview with normal and destructive actions.

#481 - Mapping Models with Antoine van der Lee Video 22.03.2021

This is a discussion and code overview of another implementation of mapping models using key paths with a special guest, Antoine van der Lee! In this episode we talk about his initial goals and constraints, and some of the design tradeoffs he made while designing a solution that would give him a bidirectional mapping between Core Data entities and other model types.

#450 - Setting Up Video 31.07.2020

In this episode we review the basic example app and start setting up our collection view in code. We start with the basic flow layout which is most common. Later we'll refactor this to use the newer style, but this episode introduces the series and sets up the foundation we'll build upon.

#451 - Cell Registration Video 31.07.2020

In this episode we migrate our collection view to use the new cell registration API. Using this API we no longer need to cast dequeued cell types to our custom types. Instead, we set up the registration object with the cell type and the data we'll be passing to each cell. This further reduces the code we have to write in our datasource implementation and gives us more flexibility on how and where...

#452 - Collection View List Layout Video 31.07.2020

With UITableView no longer being encouraged for use, we need to replace this behavior with UICollectionView. This is where UICollectionViewListLayout comes into play. Using this layout we can get the familiar table view appearance in plain and grouped styles (as well as additional styles to support sidebars on iPad and macOS). This includes support for sticky headers and footers, swipe actions, an...

#453 - Compositional Layout Video 31.07.2020

First introduced in iOS 13, UICollectionViewCompositionalLayout is an amazing and powerful addition that gives you lots of flexibility when describing layouts. There are a few new types to get used to (namely sections, groups, and items) but they all work together allowing you to keep layout separate from your views and your data.

#447 - Rendering Waveforms in SwiftUI Video 09.07.2020

I've been working on rendering waveforms using mathematical functions and have found the experience to be both fun and enlightening. In this episode we will develop a method to render arbitrary functions using a Shape, then explore some mathematical concepts that can help us render a nice looking waveform that could be use to indicate activity in sound, speech, or other effects.

#445 - SwiftUI Grids Video 25.06.2020

With the introduction of LazyVGrid and LazyHGrid In iOS 14 we now have access to much more powerful grid-based layouts in SwiftUI. In this episode We will examine the different types of layouts we can accomplish with flexible, fixed, and adaptive sizing for our rows and columns. We'll look at how animations work between different layouts, and how to consider larger screen sizes.

#444 - SwiftUI Native Progress Views Video 24.06.2020

A few episodes back we covered how to wrap a UIActivityIndicatorView to show loading progress in SwiftUI. Now in iOS 14 this is built in. In this episode we'll cover the various styles, how to hook it up to a Progress instance, and how to create your own custom progress visualizations.

#443 - SwiftUI Lazy Stacks in iOS 14 Video 23.06.2020

iOS 14 Beta is now available and one of the new features is Lazy stacks. With a normal stack, all the layout happened at once, which meant poor performance for large lists of content, grids, etc. With Lazy stacks the views are only created when they first come on screen, greatly increasing the usefulness of stacks for large or infinite collections of content.

#417 - Swift 5's Result Type Video 08.11.2019

Before Swift 5 we used to write our own Result type to contain a value or an error (but never both). A lot of 3rd party libraries brought along their own as well. Then Swift 5 came and brought us Result. Not only is it slightly different than the ones we might be familiar with, Swift's Result type also has some useful functionality up its sleeve.

#406 - Tinting an Image Using Masks Video 15.08.2019

Sometimes we need to create variants of our icons. This can be done by using template images and using a UIImageView with a tintColor change, however sometimes this isn't feasible. We can use our icons along with a mask to create new images of whatever color we want. In this episode we'll use UIGraphicsImageRenderer to quickly draw a new dimmed image for a highlighted button state.

#400 - SwiftUI Gestures Video 12.07.2019

Attaching gestures works quite a bit differently in SwiftUI than in UIKit. In this episode we will look at the @DragGesture property wrapper and how we can use gestures to update custom state that we can then use to transform our UI.

#399 - SwiftUI Transforms and Animations Video 11.07.2019

SwiftUI's declarative nature makes building UIs incredibly easy. In this episode we will build a wallet UI with cards. We will create a CardView so we can reuse it in multiple places. Then we will use transforms to alter it's size and position. Finally we will see how declarative animations work as we expand the cards apart.

Listen to the NSScreencast (free videos) podcast in Replaio

Radio and podcasts in one app - free, with no sign-up. Install today and do not miss the launch

Get it on Google Play

Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.