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 49 - 68 of 68 in total
There are 68 episodes with tag 'swiftui'   Clear search
  • SwiftUI Native Progress Views

    #444

    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.

  • SwiftUI Lazy Stacks in iOS 14

    #443

    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.

  • SwiftUI Anchor Preferences

    #442

    Anchors are a way we can refer to the absolute positioning of a view at any level in the view tree. This is useful when you want to have one view surround, underline, or point to another element in the view tree. Combined with GeometryReader, you don't need to worry about converting between coordinate systems like you do in UIKit. Anchors work much like other preferences, with some small differences. In this episode we will build a bar graph view, then use anchors to animate an indicator on the selected item in the graph.

  • Paging Between Views with SwiftUI

    #441

    Paging between views is something that is not yet provided by SwiftUI, but we can lean on UIViewControllerRepresentable to borrow this behavior from UIKit. Doing so we'll learn about the Coordinator design for handling events via delegates and datasources. We'll also see some of the rough edges you might run into when using this technique.

  • SwiftUI Environment

    #440

    It can be cumbersome to pass values from parent to child view to configure something. For instance, setting a font for many Text views inside of a VStack. Luckily there is a .font() modifier that can do this for you. How does it work? It sets a value in the Environment using an EnvironmentKey. In this episode we will learn how to leverage the SwiftUI environment to pass values to descendent views, regardless of their depth from where it is set.

  • Sizing Things Equally in SwiftUI

    #439

    Using Preferences we can communicate data, such as the actual size of a view, to any ancestor view. By taking advantage of the reduce function required by the PreferenceKey protocol, we can combine multiple values in whatever way suits our needs. In this episode we will use this technique to size a bunch of sibling views equally by collecting the biggest width and then pushing this value down to subviews with some parent state.

  • SwiftUI Preferences

    #438

    In SwiftUI we use State to push values from a parent to a child. What if you want to go the other way, passing data about a child up to a parent? To do this we can leverage Preferences. In this episode we will see how to define a custom preference key, how to use an overlay with a GeometryReader to measure the size of a view, and then set a preference with the view's size. Then we'll learn how to respond to preference changes in an ancestor view.

  • SwiftUI Button Styles

    #437

    Buttons in SwiftUI are much more flexible than UIButton in UIKit. For starters, there is no assumption that our buttons are just text or an image, they can use any view whatsoever for the content, which is called the "label". Using Button Styles we can create buttons in whatever shape or form we desire. In this episode we create three different button styles using SwiftUI to show how flexible they are and how easy they are to reuse.

  • SwiftUI View Modifiers

    #436

    With extensions we can encapsulate common layout and styling logic that can be reused across many views, however they do have limitations. In this episode we will see how we can create View Modifiers that allow you to leverage @State and other View-related behavior and apply this behavior to arbitrary views.

  • Working with Alerts in SwiftUI

    #435

    In UIKit we use imperative code to do things like display alerts, but in SwiftUI we have a declarative structure. In this episode we will see how this changes how we work with alerts. We'll look at two ways of showing alerts, one with a simple boolean state variable, and one with a bindable identifiable type that is passed to our alert, which we use to show a specific error message if an operation fails.

  • Loading Remote Images in SwiftUI

    #434

    In UIKit we've often lamented the fact that there is no builtin facility to load an image with a URL, leaving developers to implement this on their own. In SwiftUI the situation is the same, however we have more flexibility to build what we need. Using a Swift package called FetchImage, we will create a reusable ImageView struct that can load our images efficiently given a URL.

  • Working with Remote Data in SwiftUI

    #433

    With SwiftUI views we no longer have view controllers, and this can pose the question: Where does our data access and networking code live? In this episode we will load some data from a movies API in order to examine the ObservableObject protocol.

  • Recreating the Breathe Animation in SwiftUI

    #432

    The Breathe app on watchOS has a really excellent animation. In this episode we attempt to recreate this animation in SwiftUI using offsets, rotation, and scaling, then making the animation repeat forever.

  • Providing UIKit Views to SwiftUI

    #431

    SwiftUI is really fun and easy to work with, but what if you need to work with a view that already exists? This episode covers the UIViewRepresentable protocol and we use it to provide a UIActivityIndicatorView to SwiftUI. The same approach can be used to wrap your own custom UIViews as well.

  • SwiftUI Function Builders

    #430

    In this episode we add the ability to provide modal content from outside of the modal view. To do this we can leverage @ViewBuilder which is a type of Function Builder. This is a new Swift feature that gives SwiftUI's syntax a DSL rather than writing out vanilla Swift syntax.

  • SwiftUI Layout with Stacks

    #429

    In this episode we look at designing a modal card that takes advantage of ZStack, HStack, VStack and the Spacer helper.

  • SwiftUI Gestures

    #400

    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.

  • SwiftUI Transforms and Animations

    #399

    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.

  • Tip Calculator in SwiftUI

    #397

    Now that we've seen a taste of SwiftUI, let's dive into a real example and build an app. We'll have a first look at @State variables we can use to creating a binding between our state and our UI, and we'll run into a few puzzling errors and see how we can coax Xcode into giving us the right error message.

  • Hello, SwiftUI!

    #396

    Back from WWDC 19 and blown away by the announcements. There's a lot to cover, but we'll start by digging into the most exciting announcement: SwiftUI. This is going to change everything...