Weekly bite-sized screencasts on iOS development.

There are 13 episodes with tag 'uikit'   Clear search

Designing a Custom Download Button - Part 1

Episode #242 | 14 minutes | published on 10/27/2016
Subscribers Only
In this episode we create a custom control to serve as our download button. We start by creating a circular progress indicator using CAShapeLayer, then move on to subclassing UIControl to provide our image view and touch handling.

Designing a Custom Download Button - Part 2

Episode #243 | 14 minutes | published on 11/03/2016
Subscribers Only
Wrapping up our custom download button, this time we focus on the highlighted image and depressed state of the button, as well as transitioning to and from the progress layer.

File Downloads - Part 1

Episode #239 | 30 minutes | published on 10/06/2016
Subscribers Only
Downloading large files on iOS represents some unique challenges. Downloads should occur in the background, not confined to a particular view controller. They should be able to report progress on multiple screens, and should be robust enough to survive application suspension and failing network conditions, and respect the user's cellular data plan. In this episode we start a series on downloading large files that will cover all of the above concerns.

File Downloads - Part 2

Episode #240 | 32 minutes | published on 10/20/2016
Subscribers Only
In this episode we create a DownloadInfo model in CoreData in order to track the state of a download, separate from any view controller.

File Downloads - Part 3

Episode #241 | 17 minutes | published on 10/27/2016
Subscribers Only
In this episode we take the download state and progress notifications and update the user interface to reflect this state. We'll see how to translate the notification into the indexPath for that episode row, and how to fake a change related to the fetched results controller to trigger a reload of the content. We will leverage the RateLimit library to save periodic changes in progress to the model without overwhelming Core Data.

Working with the Pasteboard

Episode #235 | 17 minutes | published on 09/12/2016
Subscribers Only
In this episode we take a look at UIPasteboard, allowing us to inspect, copy, and paste content on the system pasteboard as well as your own custom pasteboards. We'll also look at adding multiple representations of the same item to be a better OS citizen, for instance by copying rich text alongside plain text.

Universal Links

Episode #234 | 16 minutes | published on 09/02/2016
Subscribers Only
Universal Links is a great feature that allows us to render content in an app when a user hits a known URL, instead of opening Safari. For content-based applications, this can be especially useful, as often records that exist on the web also exist in the app. We'll leverage our work from Episode 231 on Shared Web Credentials and extend the demo app to take advantage of Universal Links.

Calculating Spring Velocity

Episode #232 | 8 minutes | published on 08/19/2016
Subscribers Only
UIView has an incredibly useful spring-based animation API, but it can be difficult to know what to use for the damping and initial spring velocity parameters. In this episode, we'll break down how to compute the velocity value using the values we get from our UIPanGestureRecognizer and a little math.

Shared Web Credentials

Episode #231 | 15 minutes | published on 08/11/2016
Subscribers Only
In this episode we implement shared web credentials with a server, allowing users to automatically enter credentials in our app if they've already done so in Safari. We cover building a Sinatra app for our server, deployment to Heroku for free SSL and a unique domain, and adding the appropriate entitlements to our app.

Let's Build Activity++ - Part 5

Episode #227 | 28 minutes | published on 07/07/2016
Subscribers Only
Continuing our series on building out our Activity++ clone, this time we hook up our application to HealthKit, displaying real data in the app from a device. We continue to use our wrapper type so that the application can still work in the simulator with randomized data, which also allows us to set up certain scenarios that we wish to test, such as streaks.

Let's Build Activity++ - Part 4

Episode #226 | 12 minutes | published on 07/01/2016
Subscribers Only
In this episode we examine the scrolling performance of our activity ring views. We see that framerate suffers when scrolling quickly, then apply a few changes to bring scrolling performance back to 60 frames per second.

Let's Build Activity++ - Part 3

Episode #225 | 10 minutes | published on 06/23/2016
Subscribers Only
This week we take our ring views and use them to create a collection view of rings, one for each day in an entire year.

Let‘s Build Activity++!

Episode #223 | 38 minutes | published on 06/02/2016
Subscribers Only
Let‘s attempt to recreate Activity++, an application by _David Smith. The app features a number of interesting interface elements that would be interesting to try to build ourselves! In this part we'll start out by replicating the ring views for a given day.