<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>NSScreencast (free videos)</title><managingEditor>noemail@noemail.org (Ben Scheirman)</managingEditor><pubDate>Fri, 17 Apr 2026 08:40:28 GMT</pubDate><link>https://nsscreencast.com</link><language>en-us</language><itunes:explicit>no</itunes:explicit><copyright>Copyright (c) 2012 NSScreencast.com</copyright><itunes:image href="https://nsscreencast.s3.amazonaws.com/icon-300.png"/><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords><itunes:summary>Bite-sized screencasts on iOS development.</itunes:summary><itunes:subtitle>NSScreencast</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Software How-To"/></itunes:category><itunes:author>Ben Scheirman</itunes:author><itunes:owner><itunes:email>ben@nsscreencast.com</itunes:email><itunes:name>Ben Scheirman</itunes:name></itunes:owner><item><title>#605 -  Profiling and Removing Splits</title><link>https://nsscreencast.com/episodes/605-brc-part2</link><pubDate>Wed, 4 Feb 2026 09:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/1062</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/605-brc-part2.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#604 - Billion Row Challenge - Intro</title><link>https://nsscreencast.com/episodes/604-brc-part1</link><pubDate>Fri, 23 Jan 2026 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/1061</guid><description>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 the data and sets the stage for significant optimization in upcoming episodes.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/604-brc-part1.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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 the data and sets the stage for significant optimization in upcoming episodes.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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 the data and sets the stage for significant optimization in upcoming episodes.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#591 - Getting Started with AudioKit</title><link>https://nsscreencast.com/episodes/591-audiokit-2</link><pubDate>Fri, 4 Apr 2025 09:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/1048</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/591-audiokit-2.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#590 - Audio Fundamentals</title><link>https://nsscreencast.com/episodes/590-audiokit-1</link><pubDate>Fri, 28 Mar 2025 09:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/1047</guid><description>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 world audio equipment so we can better understand the mental model behind AudioKit.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/590-audiokit-1.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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 world audio equipment so we can better understand the mental model behind AudioKit.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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 world audio equipment so we can better understand the mental model behind AudioKit.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#553 - Mastodon Post UI and HTML Parsing</title><link>https://nsscreencast.com/episodes/553-mastodon-app-post-ui</link><pubDate>Wed, 19 Apr 2023 10:42:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/1010</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/553-mastodon-app-post-ui.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#531 - SwiftUI Escape Hatch</title><link>https://nsscreencast.com/episodes/531-swiftui-escape-hatch</link><pubDate>Thu, 2 Jun 2022 07:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/987</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/531-swiftui-escape-hatch.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#526 - Hot Reloading with Inject</title><link>https://nsscreencast.com/episodes/526-hot-reloading-with-inject</link><pubDate>Fri, 15 Apr 2022 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/982</guid><description>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!</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/526-hot-reloading-with-inject.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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!</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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!</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#501 - Nested Xcode Projects</title><link>https://nsscreencast.com/episodes/501-modularization-nested-xcode-projects</link><pubDate>Thu, 26 Aug 2021 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/861</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/501-modularization-nested-xcode-projects.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#500 - Motivation for Modular Project Architecture</title><link>https://nsscreencast.com/episodes/500-modularization-motivation</link><pubDate>Thu, 19 Aug 2021 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/860</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/500-modularization-motivation.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#491 - Xcode 13 Vim Mode</title><link>https://nsscreencast.com/episodes/491-xcode-13-vim</link><pubDate>Tue, 15 Jun 2021 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/819</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/491-xcode-13-vim.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#486 - Intro to Protocol Witnesses</title><link>https://nsscreencast.com/episodes/486-codable-witnesses-1</link><pubDate>Thu, 22 Apr 2021 10:40:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/782</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/486-codable-witnesses-1.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#482 - Basic Context Menus</title><link>https://nsscreencast.com/episodes/482-context-menus-the-basics</link><pubDate>Mon, 29 Mar 2021 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/746</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/482-context-menus-the-basics.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#481 - Mapping Models with Antoine van der Lee</title><link>https://nsscreencast.com/episodes/481-mapping-models-with-avanderlee</link><pubDate>Mon, 22 Mar 2021 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/745</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/481-mapping-models-with-avanderlee.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#453 - Compositional Layout</title><link>https://nsscreencast.com/episodes/453-modern-collection-views-04-compositional-layout</link><pubDate>Fri, 31 Jul 2020 10:41:23 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/653</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/453-modern-collection-views-04-compositional-layout.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#452 - Collection View List Layout</title><link>https://nsscreencast.com/episodes/452-modern-collection-views-03-list-layout</link><pubDate>Fri, 31 Jul 2020 10:41:23 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/652</guid><description>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, and other UITableView behaviors that we've come to rely on.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/452-modern-collection-views-03-list-layout.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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, and other UITableView behaviors that we've come to rely on.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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, and other UITableView behaviors that we've come to rely on.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#451 - Cell Registration</title><link>https://nsscreencast.com/episodes/451-modern-collection-views-02-cell-registration</link><pubDate>Fri, 31 Jul 2020 10:41:23 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/651</guid><description>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 cells are configured.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/451-modern-collection-views-02-cell-registration.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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 cells are configured.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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 cells are configured.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#450 - Setting Up</title><link>https://nsscreencast.com/episodes/450-modern-collection-views-01-setup</link><pubDate>Fri, 31 Jul 2020 10:41:23 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/650</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/450-modern-collection-views-01-setup.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#447 - Rendering Waveforms in SwiftUI</title><link>https://nsscreencast.com/episodes/447-rendering-waveforms-in-swiftui</link><pubDate>Thu, 9 Jul 2020 18:41:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/647</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/447-rendering-waveforms-in-swiftui.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#445 - SwiftUI Grids</title><link>https://nsscreencast.com/episodes/445-swiftui-grids</link><pubDate>Thu, 25 Jun 2020 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/645</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/445-swiftui-grids.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#444 - SwiftUI Native Progress Views</title><link>https://nsscreencast.com/episodes/444-swiftui-native-progress-views</link><pubDate>Wed, 24 Jun 2020 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/644</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/444-swiftui-native-progress-views.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#443 - SwiftUI Lazy Stacks in iOS 14</title><link>https://nsscreencast.com/episodes/443-swiftui-lazy-stacks</link><pubDate>Tue, 23 Jun 2020 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/643</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/443-swiftui-lazy-stacks.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#417 - Swift 5's Result Type</title><link>https://nsscreencast.com/episodes/417-swift-5-result-type</link><pubDate>Fri, 8 Nov 2019 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/521</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/417-swift-5-result-type.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#406 - Tinting an Image Using Masks</title><link>https://nsscreencast.com/episodes/406-tinting-an-image-using-masks</link><pubDate>Thu, 15 Aug 2019 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/510</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/406-tinting-an-image-using-masks.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#400 - SwiftUI Gestures</title><link>https://nsscreencast.com/episodes/400-swiftui-gestures</link><pubDate>Fri, 12 Jul 2019 10:40:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/504</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/400-swiftui-gestures.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#399 - SwiftUI Transforms and Animations</title><link>https://nsscreencast.com/episodes/399-swiftui-transforms-and-animations</link><pubDate>Thu, 11 Jul 2019 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/503</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/399-swiftui-transforms-and-animations.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#397 - Tip Calculator in SwiftUI</title><link>https://nsscreencast.com/episodes/397-swiftui-tip-calculator</link><pubDate>Fri, 14 Jun 2019 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/500</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/397-swiftui-tip-calculator.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#396 - Hello, SwiftUI!</title><link>https://nsscreencast.com/episodes/396-hello-swift-ui</link><pubDate>Thu, 13 Jun 2019 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/499</guid><description>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...</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/396-hello-swift-ui.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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...</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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...</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#367 - Parsing and Formatting Dates in Swift</title><link>https://nsscreencast.com/episodes/367-dates-and-times</link><pubDate>Thu, 13 Dec 2018 14:48:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/407</guid><description>Working with dates is a task that is universally applicable to Swift developers. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We‘ll examine some of the common ones such as ISO 8601, show how to parse these formats into Date instances, and how to use DateFormatter to display them back again as a string. We‘ll also cover the importance of using en_US_POSIX and honoring the user‘s Locale when displaying dates.
</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/367-dates-and-times.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>Working with dates is a task that is universally applicable to Swift developers. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We‘ll examine some of the common ones such as ISO 8601, show how to parse these formats into Date instances, and how to use DateFormatter to display them back again as a string. We‘ll also cover the importance of using en_US_POSIX and honoring the user‘s Locale when displaying dates.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>Working with dates is a task that is universally applicable to Swift developers. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We‘ll examine some of the common ones such as ISO 8601, show how to parse these formats into Date instances, and how to use DateFormatter to display them back again as a string. We‘ll also cover the importance of using en_US_POSIX and honoring the user‘s Locale when displaying dates.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#356 - Integrating Push Notifications - Part 2</title><link>https://nsscreencast.com/episodes/356-push-notifications-ios-setup</link><pubDate>Thu, 20 Sep 2018 15:39:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/396</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/356-push-notifications-ios-setup.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#355 - Integrating Push Notifications - Part 1</title><link>https://nsscreencast.com/episodes/355-push-notifications-setting-up-cert</link><pubDate>Sun, 16 Sep 2018 15:50:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/395</guid><description>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</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/355-push-notifications-setting-up-cert.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#319 - Setting Up the Terminal</title><link>https://nsscreencast.com/episodes/319-new-mac-setup-terminal</link><pubDate>Mon, 15 Jan 2018 10:40:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/327</guid><description>In this episode we will setup iTerm2, profiles, custom color schemes, and fonts.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/319-new-mac-setup-terminal.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode we will setup iTerm2, profiles, custom color schemes, and fonts.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode we will setup iTerm2, profiles, custom color schemes, and fonts.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#318 - System Preferences</title><link>https://nsscreencast.com/episodes/318-new-mac-setup-preferences</link><pubDate>Fri, 12 Jan 2018 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/326</guid><description>In this episode we look at some of the basic system preferences on macOS High Sierra. We set up the Dock, Keyboard shortcuts, and show how to customize key repeat timing outside of the preferences window.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/318-new-mac-setup-preferences.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode we look at some of the basic system preferences on macOS High Sierra. We set up the Dock, Keyboard shortcuts, and show how to customize key repeat timing outside of the preferences window.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode we look at some of the basic system preferences on macOS High Sierra. We set up the Dock, Keyboard shortcuts, and show how to customize key repeat timing outside of the preferences window.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#309 - Automatic UITableView Paging</title><link>https://nsscreencast.com/episodes/309-automatic-uitableview-paging</link><pubDate>Thu, 2 Nov 2017 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/317</guid><description>UITableView can support scrolling through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren‘t ever going to scroll down that far. In this episode you‘ll learn how to perform automatic UITableView pagination using an easy technique.
</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/309-automatic-uitableview-paging.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>UITableView can support scrolling through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren‘t ever going to scroll down that far. In this episode you‘ll learn how to perform automatic UITableView pagination using an easy technique.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>UITableView can support scrolling through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren‘t ever going to scroll down that far. In this episode you‘ll learn how to perform automatic UITableView pagination using an easy technique.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#259 - Hello Cloud Kit - Part 2</title><link>https://nsscreencast.com/episodes/259-hello-cloud-kit-part-2</link><pubDate>Thu, 9 Mar 2017 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/267</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/259-hello-cloud-kit-part-2.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#258 - Hello Cloud Kit - Part 1</title><link>https://nsscreencast.com/episodes/258-hello-cloud-kit-part-1</link><pubDate>Thu, 2 Mar 2017 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/266</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/258-hello-cloud-kit-part-1.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#248 - Poker Hands - Part 1</title><link>https://nsscreencast.com/episodes/248-poker-hands-part-1</link><pubDate>Thu, 22 Dec 2016 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/256</guid><description>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.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/248-poker-hands-part-1.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>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.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>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.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#191 - Swift 2 Optionals</title><link>https://nsscreencast.com/episodes/191-swift-2-optionals</link><pubDate>Thu, 8 Oct 2015 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/198</guid><description>In this free episode, we take a look at a core Swift 2 feature: Optionals. Unlike Objective-C, where nil is considered a no-op, in Swift nil is specifically recognized by the compiler, which forces you to handle cases where nil might be present in a variable.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/191-swift-2-optionals.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this free episode, we take a look at a core Swift 2 feature: Optionals. Unlike Objective-C, where nil is considered a no-op, in Swift nil is specifically recognized by the compiler, which forces you to handle cases where nil might be present in a variable.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this free episode, we take a look at a core Swift 2 feature: Optionals. Unlike Objective-C, where nil is considered a no-op, in Swift nil is specifically recognized by the compiler, which forces you to handle cases where nil might be present in a variable.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#189 - Swift 2 Functions and Extensions</title><link>https://nsscreencast.com/episodes/189-swift-2-functions-and-extensions</link><pubDate>Thu, 1 Oct 2015 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/196</guid><description>In this free episode, Ben explores Swift 2 functions, how argument labels work, returning tuples, the guard clause, as well as extending behavior on core types.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/189-swift-2-functions-and-extensions.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this free episode, Ben explores Swift 2 functions, how argument labels work, returning tuples, the guard clause, as well as extending behavior on core types.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this free episode, Ben explores Swift 2 functions, how argument labels work, returning tuples, the guard clause, as well as extending behavior on core types.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#187 - Swift 2 Basics</title><link>https://nsscreencast.com/episodes/187-swift-2-basics</link><pubDate>Thu, 17 Sep 2015 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/193</guid><description>In this episode we take a look at Swift 2's basic types such as Int, Double, Bool, Array, and Dictionary. This episode is part of a series covering Swift 2 from a beginner's perspective.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/187-swift-2-basics.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode we take a look at Swift 2's basic types such as Int, Double, Bool, Array, and Dictionary. This episode is part of a series covering Swift 2 from a beginner's perspective.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode we take a look at Swift 2's basic types such as Int, Double, Bool, Array, and Dictionary. This episode is part of a series covering Swift 2 from a beginner's perspective.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#158 - Road Trip DJ - Part 3</title><link>https://nsscreencast.com/episodes/158-road-trip-dj-part-3</link><pubDate>Thu, 26 Feb 2015 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/164</guid><description>Continuing our build out of Road Trip DJ, this time I focus on the music player, and keeping the play/pause button in sync on UIToolbar, which proves to be more difficult than it should be.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/158-road-trip-dj-part-3.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>Continuing our build out of Road Trip DJ, this time I focus on the music player, and keeping the play/pause button in sync on UIToolbar, which proves to be more difficult than it should be.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>Continuing our build out of Road Trip DJ, this time I focus on the music player, and keeping the play/pause button in sync on UIToolbar, which proves to be more difficult than it should be.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#157 - Road Trip DJ Part 2</title><link>https://nsscreencast.com/episodes/157-road-trip-dj-part-2</link><pubDate>Thu, 19 Feb 2015 15:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/163</guid><description>In this episode we continue Road Trip DJ and implement the media picker controller, talk about the different modes that in can operate in and how that affects the usability of this app. We also consider how we're going to build a playlist and keep appending items to it.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/157-road-trip-dj-part-2.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode we continue Road Trip DJ and implement the media picker controller, talk about the different modes that in can operate in and how that affects the usability of this app. We also consider how we're going to build a playlist and keep appending items to it.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode we continue Road Trip DJ and implement the media picker controller, talk about the different modes that in can operate in and how that affects the usability of this app. We also consider how we're going to build a playlist and keep appending items to it.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#156 - Road Trip DJ Part 1</title><link>https://nsscreencast.com/episodes/156-road-trip-dj-part-1</link><pubDate>Fri, 13 Feb 2015 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/162</guid><description>In this episode we start building an app from scratch called Road Trip DJ.  The idea is the build a playlist of music on the fly while it is playing. This is an app I've wanted to build for a while and it serves as a good, small app we can build from start to finish.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/156-road-trip-dj-part-1.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode we start building an app from scratch called Road Trip DJ. The idea is the build a playlist of music on the fly while it is playing. This is an app I've wanted to build for a while and it serves as a good, small app we can build from start to finish.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode we start building an app from scratch called Road Trip DJ. The idea is the build a playlist of music on the fly while it is playing. This is an app I've wanted to build for a while and it serves as a good, small app we can build from start to finish.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#99 - Parsing and Formatting Dates</title><link>https://nsscreencast.com/episodes/099-parsing-and-formatting-dates</link><pubDate>Thu, 12 Dec 2013 14:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/105</guid><description>In this episode we cover a basic but fundamentally important topic: dealing with dates &amp; times.  Particularly when dealing with an API, dates can arrive in all shapes and sizes.  We'll examine some of the common ones, talk about how to parse these formats into NSDate instances, and how to use NSDateFormatter to display them back again as a string.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/099-parsing-and-formatting-dates.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode we cover a basic but fundamentally important topic: dealing with dates &amp; times. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We'll examine some of the common ones, talk about how to parse these formats into NSDate instances, and how to use NSDateFormatter to display them back again as a string.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode we cover a basic but fundamentally important topic: dealing with dates &amp; times. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We'll examine some of the common ones, talk about how to parse these formats into NSDate instances, and how to use NSDateFormatter to display them back again as a string.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#87 - Xcode 5 Autolayout Improvements</title><link>https://nsscreencast.com/episodes/087-xcode5-autolayout-improvements</link><pubDate>Thu, 26 Sep 2013 10:02:32 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/93</guid><description>This week we have another free bonus video on the improvements that Xcode 5 brings to Autolayout.  As something that has been quite obnoxious to work with in the past, many people dismissed auto layout when it was introduced to iOS 6.  With these improvements it is much more friendly and dare I say... usable?</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/087-xcode5-autolayout-improvements.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>This week we have another free bonus video on the improvements that Xcode 5 brings to Autolayout. As something that has been quite obnoxious to work with in the past, many people dismissed auto layout when it was introduced to iOS 6. With these improvements it is much more friendly and dare I say... usable?</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>This week we have another free bonus video on the improvements that Xcode 5 brings to Autolayout. As something that has been quite obnoxious to work with in the past, many people dismissed auto layout when it was introduced to iOS 6. With these improvements it is much more friendly and dare I say... usable?</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#85 - Hello, iOS 7</title><link>https://nsscreencast.com/episodes/085-hello-ios7</link><pubDate>Thu, 19 Sep 2013 10:01:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/91</guid><description>To celebrate the launch of iOS 7, here is a bonus free screencast covering a few of the concepts in iOS 7 such as the status bar behavior, tint color, and navigation bar transitions.  We'll also take a look at Xcode 5 with a couple of the new features, including the integrated test runner.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/085-hello-ios7.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>To celebrate the launch of iOS 7, here is a bonus free screencast covering a few of the concepts in iOS 7 such as the status bar behavior, tint color, and navigation bar transitions. We'll also take a look at Xcode 5 with a couple of the new features, including the integrated test runner.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>To celebrate the launch of iOS 7, here is a bonus free screencast covering a few of the concepts in iOS 7 such as the status bar behavior, tint color, and navigation bar transitions. We'll also take a look at Xcode 5 with a couple of the new features, including the integrated test runner.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#60 - Windows Azure Mobile Services Part 2</title><link>https://nsscreencast.com/episodes/060-windows-azure-mobile-services-part-2</link><pubDate>Tue, 2 Apr 2013 16:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/66</guid><description>We continue with our example chat application here and add the ability post a message, poll for updates, and receive push notifications.  This episode utilizes a pod calles MessagesTableView controller to present an SMS like interface for the messages.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/060-windows-azure-mobile-services-part-2.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>We continue with our example chat application here and add the ability post a message, poll for updates, and receive push notifications. This episode utilizes a pod calles MessagesTableView controller to present an SMS like interface for the messages.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>We continue with our example chat application here and add the ability post a message, poll for updates, and receive push notifications. This episode utilizes a pod calles MessagesTableView controller to present an SMS like interface for the messages.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#59 - Windows Azure Mobile Services</title><link>https://nsscreencast.com/episodes/059-windows-azure-mobile-services</link><pubDate>Thu, 28 Mar 2013 22:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/65</guid><description>This week we take a look at Windows Azure Mobile Services, a back-end for mobile applications that has first class iOS support.  In this episode we begin building a full featured chat application.  This is part 1 of 2, in which we set up a new mobile service, wire up the SDK with CocoaPods, set up Twitter authentication and enrich the data using Javascript on the server.  

This episode has been sponsored by Microsoft.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/059-windows-azure-mobile-services.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>This week we take a look at Windows Azure Mobile Services, a back-end for mobile applications that has first class iOS support. In this episode we begin building a full featured chat application. This is part 1 of 2, in which we set up a new mobile service, wire up the SDK with CocoaPods, set up Twitter authentication and enrich the data using Javascript on the server. This episode has been sponsored by Microsoft.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>This week we take a look at Windows Azure Mobile Services, a back-end for mobile applications that has first class iOS support. In this episode we begin building a full featured chat application. This is part 1 of 2, in which we set up a new mobile service, wire up the SDK with CocoaPods, set up Twitter authentication and enrich the data using Javascript on the server. This episode has been sponsored by Microsoft.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#28 - Creating a Cocoapod</title><link>https://nsscreencast.com/episodes/028-creating-a-cocoapod</link><pubDate>Thu, 9 Aug 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/34</guid><description>In this episode, we'll create a CocoaPod out of the modal picker view component we created in episodes 25 &amp; 26.  We'll see how to tag &amp; push our code to a github repository and create a podspec so that others can use this component in their projects.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/028-creating-a-cocoapod.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode, we'll create a CocoaPod out of the modal picker view component we created in episodes 25 &amp; 26. We'll see how to tag &amp; push our code to a github repository and create a podspec so that others can use this component in their projects.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode, we'll create a CocoaPod out of the modal picker view component we created in episodes 25 &amp; 26. We'll see how to tag &amp; push our code to a github repository and create a podspec so that others can use this component in their projects.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#27 - New Objective-C Syntax</title><link>https://nsscreencast.com/episodes/027-new-objective-c-syntax</link><pubDate>Thu, 2 Aug 2012 10:01:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/33</guid><description>The latest version of the LLVM compiler supports some excellent new syntax additions to the Objective-C language.  In this episode, I cover what the new syntax is, how to use it, and a few caveats to look out for.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/027-new-objective-c-syntax.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>The latest version of the LLVM compiler supports some excellent new syntax additions to the Objective-C language. In this episode, I cover what the new syntax is, how to use it, and a few caveats to look out for.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>The latest version of the LLVM compiler supports some excellent new syntax additions to the Objective-C language. In this episode, I cover what the new syntax is, how to use it, and a few caveats to look out for.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#15 - HTTP Caching</title><link>https://nsscreencast.com/episodes/015-http-caching</link><pubDate>Thu, 10 May 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/16</guid><description>HTTP Caching is an important concept to understand when building iPhone apps that consume HTTP APIs.  In this episode, we'll see how leveraging Etags, Last Modified dates, and Cache-Control headers can help make your app more efficient and tolerable to use.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/015-http-caching.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>HTTP Caching is an important concept to understand when building iPhone apps that consume HTTP APIs. In this episode, we'll see how leveraging Etags, Last Modified dates, and Cache-Control headers can help make your app more efficient and tolerable to use.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>HTTP Caching is an important concept to understand when building iPhone apps that consume HTTP APIs. In this episode, we'll see how leveraging Etags, Last Modified dates, and Cache-Control headers can help make your app more efficient and tolerable to use.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#13 - Setting up Jenkins</title><link>https://nsscreencast.com/episodes/013-jenkins</link><pubDate>Thu, 26 Apr 2012 14:55:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/14</guid><description>In this episode, we'll set up a free continuous integration server called Jenkins (previously Hudson) to run our build.  We'll configure it to automatically check out changes from git, run the build, and finally run all of our tests.  We'll then use a conversion script to translate the test output into JUnit test report files that Jenkins natively understands.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/013-jenkins.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode, we'll set up a free continuous integration server called Jenkins (previously Hudson) to run our build. We'll configure it to automatically check out changes from git, run the build, and finally run all of our tests. We'll then use a conversion script to translate the test output into JUnit test report files that Jenkins natively understands.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode, we'll set up a free continuous integration server called Jenkins (previously Hudson) to run our build. We'll configure it to automatically check out changes from git, run the build, and finally run all of our tests. We'll then use a conversion script to translate the test output into JUnit test report files that Jenkins natively understands.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#12 - Importing into Core Data</title><link>https://nsscreencast.com/episodes/012-importing-into-core-data</link><pubDate>Thu, 19 Apr 2012 13:34:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/13</guid><description>In this screencast I'll pull down data from an API, map the JSON to a Core Data Managed Object and import them in bulk on a background thread.  Then we'll display the imported content in a UITableView using NSFetchedResultsController.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/012-importing-into-core-data.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this screencast I'll pull down data from an API, map the JSON to a Core Data Managed Object and import them in bulk on a background thread. Then we'll display the imported content in a UITableView using NSFetchedResultsController.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this screencast I'll pull down data from an API, map the JSON to a Core Data Managed Object and import them in bulk on a background thread. Then we'll display the imported content in a UITableView using NSFetchedResultsController.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#11 - Core Data Basics</title><link>https://nsscreencast.com/episodes/011-core-data-basics</link><pubDate>Thu, 19 Apr 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/12</guid><description>Core Data is Apple's framework for persisting data on Mac &amp; iOS.  It can be though of as an ORM, however it's probably a lot different than most ORMs you've used in the past.  In this episode, we'll set up Core Data from scratch so you can see all the moving parts.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/011-core-data-basics.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>Core Data is Apple's framework for persisting data on Mac &amp; iOS. It can be though of as an ORM, however it's probably a lot different than most ORMs you've used in the past. In this episode, we'll set up Core Data from scratch so you can see all the moving parts.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>Core Data is Apple's framework for persisting data on Mac &amp; iOS. It can be though of as an ORM, however it's probably a lot different than most ORMs you've used in the past. In this episode, we'll set up Core Data from scratch so you can see all the moving parts.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#10 - Fun with Blocks</title><link>https://nsscreencast.com/episodes/010-fun-with-blocks</link><pubDate>Wed, 4 Apr 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/11</guid><description>Blocks are a great way to simplify code when dealing with asynchronous tasks (using GCD), callbacks, and atomic operations.  In this episode, we'll look at a few ways you can use blocks in your code.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/010-fun-with-blocks.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>Blocks are a great way to simplify code when dealing with asynchronous tasks (using GCD), callbacks, and atomic operations. In this episode, we'll look at a few ways you can use blocks in your code.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>Blocks are a great way to simplify code when dealing with asynchronous tasks (using GCD), callbacks, and atomic operations. In this episode, we'll look at a few ways you can use blocks in your code.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#9 - Automatic Reference Counting</title><link>https://nsscreencast.com/episodes/009-automatic-reference-counting</link><pubDate>Thu, 29 Mar 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/10</guid><description>In this episode, I'll show you how to convert your project to use Automatic Reference Counting (or ARC) to eliminate the need to use retain, release, autorelease, and dealloc in your Objective-C code!</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/009-automatic-reference-counting.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode, I'll show you how to convert your project to use Automatic Reference Counting (or ARC) to eliminate the need to use retain, release, autorelease, and dealloc in your Objective-C code!</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode, I'll show you how to convert your project to use Automatic Reference Counting (or ARC) to eliminate the need to use retain, release, autorelease, and dealloc in your Objective-C code!</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#8 - Automatic UITableView Paging</title><link>https://nsscreencast.com/episodes/008-automatic-uitableview-paging</link><pubDate>Thu, 22 Mar 2012 15:16:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/9</guid><description>UITableView can support skimming through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server.  This is all wasteful if users aren't ever going to scroll down that far.  In this episode you'll learn how to perform automatic UITableView paging using an easy technique.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/008-automatic-uitableview-paging.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>UITableView can support skimming through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren't ever going to scroll down that far. In this episode you'll learn how to perform automatic UITableView paging using an easy technique.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>UITableView can support skimming through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren't ever going to scroll down that far. In this episode you'll learn how to perform automatic UITableView paging using an easy technique.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#7 - Serializing Data to Disk</title><link>https://nsscreencast.com/episodes/007-serializing-data</link><pubDate>Thu, 15 Mar 2012 15:16:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/8</guid><description>It can be useful to save lightweight application data to disk so that it persists between application launches.  This episode will show you how to serialize common objects such as NSArray and NSDictionary to disk, as well as implementing custom object serialization using NSKeyedArchiver.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/007-serializing-data.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>It can be useful to save lightweight application data to disk so that it persists between application launches. This episode will show you how to serialize common objects such as NSArray and NSDictionary to disk, as well as implementing custom object serialization using NSKeyedArchiver.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>It can be useful to save lightweight application data to disk so that it persists between application launches. This episode will show you how to serialize common objects such as NSArray and NSDictionary to disk, as well as implementing custom object serialization using NSKeyedArchiver.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#6 - AFNetworking</title><link>https://nsscreencast.com/episodes/006-afnetworking</link><pubDate>Thu, 8 Mar 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/7</guid><description>AFNetworking is a simple-yet-powerful toolkit for making HTTP requests dead simple. It is my current go-to framework for writing API clients in iOS applications.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/006-afnetworking.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>AFNetworking is a simple-yet-powerful toolkit for making HTTP requests dead simple. It is my current go-to framework for writing API clients in iOS applications.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>AFNetworking is a simple-yet-powerful toolkit for making HTTP requests dead simple. It is my current go-to framework for writing API clients in iOS applications.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#5 - CocoaPods</title><link>https://nsscreencast.com/episodes/005-cocoapods</link><pubDate>Fri, 2 Mar 2012 15:27:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/6</guid><description>Looking for a solution for managing dependencies similar to RubyGems?  Look no further!  CocoaPods is a great solution that makes it easy to manage dependencies to 3rd party libraries in your projects.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/005-cocoapods.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>Looking for a solution for managing dependencies similar to RubyGems? Look no further! CocoaPods is a great solution that makes it easy to manage dependencies to 3rd party libraries in your projects.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>Looking for a solution for managing dependencies similar to RubyGems? Look no further! CocoaPods is a great solution that makes it easy to manage dependencies to 3rd party libraries in your projects.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#4 - Automated Testing with Kiwi</title><link>https://nsscreencast.com/episodes/004-automated-testing-with-kiwi</link><pubDate>Thu, 23 Feb 2012 14:44:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/5</guid><description>In this episode, I show you how to start testing with Kiwi, a test framework built on top of SenTestKit that has a style similar to Rspec.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/004-automated-testing-with-kiwi.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode, I show you how to start testing with Kiwi, a test framework built on top of SenTestKit that has a style similar to Rspec.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode, I show you how to start testing with Kiwi, a test framework built on top of SenTestKit that has a style similar to Rspec.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#3 - UITableView Basics</title><link>https://nsscreencast.com/episodes/003-uitableview-basics</link><pubDate>Fri, 17 Feb 2012 02:29:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/3</guid><description>UITableView is one of the most common controls in UIKit.  This episode will show you the basics of how to make your view controller act as the delegate &amp; datasource for the table view, as well as reading sample data (beers) from a plist file.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/003-uitableview-basics.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>UITableView is one of the most common controls in UIKit. This episode will show you the basics of how to make your view controller act as the delegate &amp; datasource for the table view, as well as reading sample data (beers) from a plist file.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>UITableView is one of the most common controls in UIKit. This episode will show you the basics of how to make your view controller act as the delegate &amp; datasource for the table view, as well as reading sample data (beers) from a plist file.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#2 - Diagnosing Memory Problems</title><link>https://nsscreencast.com/episodes/002-memory-problems</link><pubDate>Fri, 10 Feb 2012 00:00:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/2</guid><description>In this episode, I cover what happens if you make a mistake in your memory management.  You'll see how the app behaves as well as how to find &amp; fix these issues using Xcode &amp; Instruments.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/002-memory-problems.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode, I cover what happens if you make a mistake in your memory management. You'll see how the app behaves as well as how to find &amp; fix these issues using Xcode &amp; Instruments.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode, I cover what happens if you make a mistake in your memory management. You'll see how the app behaves as well as how to find &amp; fix these issues using Xcode &amp; Instruments.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item><item><title>#1 - Objective-C Basics</title><link>https://nsscreencast.com/episodes/001-objective-c-basics</link><pubDate>Fri, 10 Feb 2012 15:17:00 GMT</pubDate><guid isPermaLink="false">tag:nsscreencast.com,2005:Episode/1</guid><description>In this episode, I cover Objective-C the language. I cover the syntax of classes &amp; methods, then go over how to work with objects using retain, release, and autorelease.</description><enclosure length="0" type="video/mp4" url="https://nsscreencast.com/episodes/001-objective-c-basics.mp4"/><author>ben@nsscreencast.com (Ben Scheirman)</author><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this episode, I cover Objective-C the language. I cover the syntax of classes &amp; methods, then go over how to work with objects using retain, release, and autorelease.</itunes:subtitle><itunes:author>Ben Scheirman</itunes:author><itunes:summary>In this episode, I cover Objective-C the language. I cover the syntax of classes &amp; methods, then go over how to work with objects using retain, release, and autorelease.</itunes:summary><itunes:keywords>ios,iphone,ipad,objc,obj,c,objective,c,xcode,how,to,tutorial,screencast,video,episode,mobile,app,dev,development</itunes:keywords></item></channel></rss>