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.
Stay up to date!

Founded in 2012, NSScreencast has been releasing a new screencast each week for more than 6 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.

Shape
#356
356 push notifications ios setup
In this episode we configure our iOS app to receive push notifications, adding the OneSignal SDK to our project, configuring the Notification Service extension, and testing it out on a real device.
Shape
#355
355 push notifications setting up cert
In this episode we look at how to generate a certification for adding push notification support for your app, using OneSignal as our push notification provider
lock
#354
354 vapor tokenizr demo
Let's take what we have learned and build a simple web app. We'll leverage NSLinguisticTagger on the server and built a small UI that extracts names from provided text. We'll lean on everything we have used so far in this series: routes, templates, master templates, context data, and a little CSS to make the UI look nice.
lock
#353
353 speech recognition and tts
With special guest Yono, we dive into the system for text-to-speech and speech recognition on iOS. Yono builds an app for language practice. Along the way we become familiar with AVAudioEngine, AVSpeechSynthesizer, and SFSpeechRecognizer from the Speech Framework.
lock
#352
352 vapor leaf nesting templates and partials
When working with web pages, you will almost certainly want to share a considerable amount of HTML. By nesting templates inside of master templates, we can share common HTML structure, layout, and share styles and scripts. We will see how to define sections that can be customized inside of your templates, as well as how to extract common components into partials that you can embed inside of other templates.
lock
#351
351 vapor leaf templates
Leaf is Vapor's component for rendering dynamic templates. Rather than writing HTML strings by hand in our router, we can write leaf templates that allow us to mix HTML with code. Since Leaf is a separate package, we will show how to integrate this into your project from scratch, to get an overview of how dependencies are assembled in a Vapor project.
lock
#350
350 vapor routing
Vapor uses a router to determine how to process incoming requests. In this episode, we will see how to define routes and how to return simple responses. We will see how to return custom JSON responses, how to accept JSON posts, and how to deal with requests with dynamic parameters.
lock
#349
349 vapor getting started
In this episode we'll learn how to install the vapor tools, how to create new projects, and look at how projects are structured.
lock
#348
Unified logging tracing
Signposts are a special part of the Unified Logging and Activity Tracing system. They allow you to mark point-in-time events that occur in your code, or track the duration of operations by specifying the begin and end for an activity. These can be visualized in Instruments to get a rich, high level view of how these operations are performing, how often they are occurring, and how long they are taking. In this episode we will see how to add signposts to an app and how to view these signposts in Instruments.
lock
#347
Unified logging tracing
Activity Tracing can help give you the big picture when looking at logs. By marking logical activities with os_activity, you can create a hierarchy of tasks that roll up the log statements that occurred for that activity. Unfortunately, using os_activity from Swift is not really supported yet, so we will see how to use a wrapper to make it a little easier, then dive in deep into C interop to see how all the pieces work.
lock
#346
Unified logging tracing
Console.app is a nice way of viewing logs, but most of this power (and more) is builtin to the log utility from the command line. In this episode we will see how to stream debug logs from the simulator, as well as how to retrieve logs from customer or tester devices out in the field by triggering a sysdiagnose.
lock
#345
Unified logging tracing
In this episode we talk about public versus private data (and how to change the defaults). We also look at using the log command line tool for a deeper understanding of the unified logging system and how we can tweak it for our needs.
lock
#344
Unified logging tracing
In this episode we show how you adopt the Unified Logging framework in code by using the OSLog type to define your log subsystems and categories, and how to use os_log to actually log events and messages.
lock
#343
Unified logging tracing
A high level overview of the new Unified Logging system, which covers the benefits of the new system, a high level overview of how it works, and some things to consider when adopting the new system.
lock
#342
327 testing ios apps intro
In this episode we will intercept and stub image requests to prevent our tests from making network calls when interacting with our view controller.
lock
#341
327 testing ios apps intro
When running your unit tests, you may have noticed that your application continues to launch in the simulator. In this episode we'll talk about why that can be problematic and what you can do to mitigate this issue from interfering with your tests.
lock
#340
327 testing ios apps intro
We continue testing our view controller, this time focusing on the UITableViewDataSource implementation. Testing the number of rows returned is easy, but we can also test that the controller returns the appropriate cell and that its outlets are configured properly.
lock
#339
327 testing ios apps intro
Testing view controllers can sometimes be challenging. In this episode we will write some tests that verify a view controller loads its data properly from the API client. We will add additional tests to verify that a loading indicator is shown.
lock
#338
327 testing ios apps intro
XCTAssertion functions are a foundational part of your test suite but sometimes can be too low-level. You want to know exactly why a test failed, not that "2 was not less than 1." By extracting helper methods to do assertions for you, you can give groups of assertions meaning, and make it easier to reason about your tests and why they might be failing.
lock
#337
327 testing ios apps intro
When refactoring tests, you end up moving critical assertion logic outside of the test method. This can cause our tests to fail in the wrong spot. This becomes worse if multiple methods share test logic. When a test fails you want to know exactly where the failure occurred. By leveraging #file and #line expression literals we can move the failure back to where it should be, within the test method. We will also see how we can continue to use expectations outside of a test instance.
lock
#336
327 testing ios apps intro
In this episode we look at Xcode's support for measuring Code Coverage, a term that describes how much of your code is exercised during a test run. Using this tool you can see where your deficiencies are and add tests as needed to cover more of your production code with tests.
lock
#335
327 testing ios apps intro
In this episode we implement OHHTTPStubs, a library that can be used to intercept and stub out network calls made with URLSession. Using this technique we can avoid hitting the network for our tests. We can also simulate different responses that are difficult or impractical to simulate in a real request.
lock
#334
327 testing ios apps intro
In this episode we talk about testing requests against a real API. For this we will build an app called CoinList that leverages the Crypto Compare API to fetch stats about crypto currencies.
lock
#333
327 testing ios apps intro
In this episode we cover the concept of expectations, which enables us to test asynchronous code, properly timing out and failing a test if the expectation is never fulfilled.