Protocol Oriented Dependency Injection
Description:Tight coupling between view controllers in your application can lead to difficult maintenance as you add and remove features. This video will explore how using Protocols can make our Dependency Injection mor...
Finding and Fixing Memory Issues
Description:Incorrectly managing memory in our applications can result in hard to find bugs and possible crashes. In this video, we will explore the Memory Graph debugging tool in Xcode and how you can use it to find an...
Create a Welcome Message on Initial Launch
Description:Performing tasks when an application is first launched is a common practice to give users important information about the application. In this video, we will discuss one technique for implementing first laun...
Dynamic Stack Views
Description:UIStackViews are a relatively new addition to UIKit, appearing with iOS 9. They are quite useful because they eliminate the need for many Auto Layout constraints in common screen designs, making them easier ...
Description:We demonstrate using Dispatch Groups to rendezvous multiple simultaneous asynchronous tasks so that you can process all of their results at once, after the last one finishes.
Drawing Custom Controls
Description:Sometimes your app design calls for a control design that isn't provided in UIKit. In this video, we draw one from scratch!
Optional Return Values vs. Throwing
Description:This video Illustrates the differences between using optional return values or throwing errors for functions that can fail. The implementations are discussed and the pros and cons of each approach are discus...
Creating a State Machine using Swift Enumerations
Description:As View Controllers become more complex, the need to manage the state of the view becomes more important. In this video we will discuss how to use a state machine to manage our views state.
Description:You've seen these things in your code. @IBAction. @escaping. @objc. @autoclosure. But what are they? How do they differ from other Swift language features? If you want to understand what is going on un...
Implementing a Custom Collection Type in Swift
Description:In this screencast, Matt walks us through creating a Queue in Swift using generics to hold arbitrary data types. We'll be learning about collections by creating our own collection type. Watch along as we d...
Handling Async Results
Description:Throwing errors and completion handlers have pros and cons, and can’t be used in all situations. Here we examine some strategies for writing elegant async error-handling code with closures and associated-val...
Creating a Command Line Tool Using Swift
Description:In this screencast, you'll learn how to build a macOS command line utility using Swift. We'll demonstrate how to read arguments from the command line and show how to launch a command line app.
Idiomatic Swift with React Native (Part 1)
Description:In this screencast, we’re going to look at how to write your native iOS code for React Native in a more idiomatic Swift way. By the end of this screencast you’ll be able to refactor your React Native Objecti...
Description:In this screencast, we’ll learn how to use Swift’s assertion function to code defensively. By the end of this video, you’ll be able to use the assertion functions to help you write stronger, more robust code.
Xcode Inline Documentation
Description:In this screencast, you'll earn how to document your Swift code using Xcode’s Markup support, and Jazzy to create an informative API.
Asynchronous Unit Testing
Description:In this screencast, we’re going to look at writing unit tests for asynchronous behaviors in an app.
Idiomatic Swift with React Native (Part 2)
Description:In part 1, we began simplifying our React Native native iOS code by separating an idiomatic Swift class from a React Native adapter. We’re going to finish this extraction by moving over a method that returns...
Adopting Configuration Settings Files in Xcode
Description:In this screencast, we will explore how to use Xcode’s Configuration Settings Files - or xcconfig files - and improve our ability to tame the complexity of managing project settings.
Xcode Configurations vs. Schemes
Description:Targets and configurations and schemes; Oh my! Confused by these Xcode concepts? Curious how using multiple build configurations coupled with schemes can avoid the multiple-target mess? If you’re wondering w...
Using Generics in Swift
Description:Generics allows for easy code reuse helping you write less code with fewer mistakes. In this video, we’ll learn how and when to use generics in your Swift apps by illustrating examples of problems that gener...
Asynchronous UI testing
Description:Xcode UI tests are asynchronous in that they simulate end user interaction with your application. In this screencast, learn how to write tests that exercise your app at the user interface level, handling asy...
Writing Data to HealthKit
Description:HealthKit provides a rich data store on iOS for tracking many types of data related to a users health. In this video, we will see how an application can write data to this store. After this video you can app...
Display Step Count Using HealthKit
Description:HealthKit provides iPhone users with a rich set of activity and health data that is available for applications to use. In this video, we will cover the basics of getting access to HealthKit and visualizing a...
Setting Up StackViews Inside ScrollViews
Description:In this screencast, we’ll show you how to set up a StackView inside a ScrollView, this will help you to create views that have to show list of related data without use table views or collection views.
Using Result with Network Requests
Description:When working with networking code, most APIs send back optional types (usually an error and one or two other types such as a response and data), but there is no compile-time guarantee that all of these will ...
Storing Secure Data in the Keychain
Description:Storing secure data (like login data) in UserDefaults or the file system is not safe. The keychain is an encrypted database where secure data such as credentials, tokens, and notes should be stored. In this ...
IBInspectable and IBDesignable
Description:In this screencast, you will learn how to use @IBDesignable and @IBInspectable to render and configure your custom views in Interface Builder at design-time.
ReactiveSwift #2 - Signal vs. SignalProducer
Description:Learning the core concepts of ReactiveSwift will eventually help you in implementing ReactiveSwift within your app. A reactive programming library like ReactiveSwift provides a uniform architecture for imple...
ReactiveSwift #3 - Operations
ReactiveSwift #4 - Implementing UI Bindings
ReactiveSwift #5 - Implementing MVVM
Description:In this tutorial, we are going to refactor an existing app written imperatively and apply all that concepts and principles we have learned in the Introduction to ReactiveSwift series. We will create a `Signa...
ReactiveSwift #1 - Getting Started
Description:ReactiveSwift is a reactive programming library that is built around the concept of streams of values over time. In this screencast, we’ll learn about the basic concepts of reactive programming and how it wo...
SwiftUI #1 - Using Views
Description:In this tutorial we’ll explore Views, a fundamental building block of the SwiftUI framework which can help you create complex views with less code and iterate faster.
SwiftUI #2 - Exploring View Modifiers
Description:In this tutorial, we will look at the effect of View Modifiers and how they are used to customize the display, behavior and interactivity of views.
SwiftUI #3 - Build a Login Form using Stacks
Description:In this tutorial, we will explore container views called Stacks to create a login form in SwiftUI.
SwiftUI #4 - Implementing a Todo list using Lists
Description:In this tutorial, we will see the power of SwiftUI's declarative programming by implementing a List view to manage a Todo list.
SwiftUI #5 - Adding State and Binding to Make an Editable List
Description:In this tutorial, we will make the Todo app dynamic by adding state and binding using SwiftUII and the Combine Framework.
SwiftUI #6 - Animation and Transitions
Description:In this screencast, we will take a look at how animations and transitions work in SwiftUI.
SwiftUI #7 - Hosting SwiftUI in a UIViewController
Description:In this screencast, we will learn how to host a SwiftUI view in a UIViewController.
SwiftUI #8 - Embedding a UIView or UIViewController in SwiftUI
Description:In this screencast, we will see how to embed a UIView or UIViewController in SwiftUI.
SwiftUI #9 - Creating an Asynchronous Image View in SwiftUI
Description:In this screencast, we will learn how to asynchronously load an image in a SwiftUI Image view from the network.
SwiftUI #10 - Creating a Swipeable Card Interface in SwiftUI
Description:In this screencast, we will implement a card swiping interface viewed in many dating apps. We will make use of the drag gesture to implement the swipe functionality since there is no Swipe gesture in SwiftUI...