Explore GraphQL with Graphman
Feb 28, 2021, 7:00 PM
In this post we will explore an API build on GraphQL. This type of API differs a bit from today’s most common REST APIs in that we can request just the data that we need, when we need it. In order to make use of such an API in your iOS...
Understanding SwiftUI’s View type
Feb 9, 2021, 7:00 PM
With the introduction of Swift 5.1 and SwiftUI, new opaque return types were added to the language. Probably the most popular usage of this is the some View type, which is used for the body of SwiftUI View structs. In this article I’ll...
DiffableDataSource with CellRegistration for iPad Sidebar
Oct 17, 2020, 8:00 PM
With the release of iOS 13 we got new DiffableDataSource APIs that make CollectionViews more stable when it comes to updating and modifying data. Now with the introduction of iOS 14 we also got new CellRegistration APIs that take a closure...
ProcessInfo for Test Data and more
Oct 3, 2020, 8:00 PM
ProcessInfo is a class that has been around since the first iPhoneOS SDK, and with recent years is has gotten some new APIs. Furthermore some newer Xcode features like XCTestplan are making use of the arguments and environment, which can...
Measure Xcode Build Times
Sep 26, 2020, 8:00 PM
Waiting on builds to finish is a big time drain for any iOS engineer working in a large codebase. Measuring the time it takes to do a clean build of the app is a good way to measure overall performance of your setup, but most of the time...
Loading Network Data in SwiftUI
Jul 17, 2020, 8:00 PM
With WWDC20 behind us, and new additions to SwiftUI, many developers are now looking more closely at writing apps with the new framework. In this post I want to discuss how we can setup a pipeline to request data from a network server, and...
Swift: Decode JSON with Codable
Jul 3, 2020, 8:00 PM
Codable is a protocol that has been introduced with Swift 4 and makes encoding and decoding data models to and from JSON significantly easier. In this reference I will discuss how to use it to decode different types of JSON, and what steps...
Building Widgets for iOS 14
Jun 22, 2020, 8:00 PM
This post discusses APIs and Software that are currently in beta and may change.
Accessibility Best Practices
May 23, 2020, 8:00 PM
Accessibility is an important corner stone of iOS development. It enables all people to use your apps, no matter their abilities. Fortunately UIKit offers many APIs, which allow Developers to offer support for system technologies within...
Supporting Dynamic Type with Custom Fonts on iOS
May 20, 2020, 8:00 PM
The Twitch iOS app now supports Dynamic Type, which is the iOS-level feature for dynamically changing font sizes. We added support for this system feature because we wanted to offer our users choice in selecting their preferred text size,...
Starting your iOS Design System
May 2, 2020, 8:00 PM
A Design System is a way to ensure that different screens of your app look consistent. This is very important if you have a big app with many screens, but even for smaller projects that are maintained over a long period, a Design System is...
Automated iOS Screenshots with XCTestplan
Apr 18, 2020, 8:00 PM
Taking App Screenshots these day can be a daunting task, especially if your App is universal and supports multiple languages. If your app only supports four languages and both iPad and iPhone, four screenshots quickly result in 64 unique...
Implementing UIPointerInteractions for iPad
Apr 11, 2020, 8:00 PM
With the release of iOS 13.4 the iPad got full mouse, trackpad and therefor also mouse pointer support. With the new Magic Keyboard accessory even more people will be using their iPad with Keyboard and Cursor, instead of touch inputs. In...
Swift: Using SF Symbols
Oct 9, 2019, 8:00 PM
Xcode 11 is now publicly available and with it come over 1500 unique symbols, designed by Apple. These are available as part of an updated version of the SF Pro and SF Compact fonts.
Moving to Jekyll hosted on Zeit Now
Jul 8, 2019, 8:00 PM
I moved my blog, again. But this time I also switched out the underlying framework. Previously I was using Ghost and hosted on Heroku. Before I go in depth into the how I moved, I wanted to point out some pain points I had and why I moved...