Understanding @inlinable in Swift
Dec 22, 2020, 7:00 AM
Understanding @inlinable in Swift
Understanding @inlinable in Swift
December 22nd, 2020
The @inlinable attribute is one of Swift's lesser-known attributes. Like others of its kind, its purpose is to enable a...
DispatchSource: Detecting changes in files and folders in Swift
Nov 24, 2020, 7:00 AM
DispatchSource: Detecting changes in files and folders in Swift
DispatchSource: Detecting changes in files and folders in Swift
November 24th, 2020
The DispatchSource family of types from GCD contains a series of...
How Swift API Availability Works Internally
Sep 29, 2020, 8:00 AM
How Swift API Availability Works Internally
How Swift API Availability Works Internally
September 29th, 2020
We use API availability checks all the time to provide fallbacks for users running older iOS versions, but...
UI Testing Deeplinks and Universal Links in iOS
Sep 15, 2020, 8:00 AM
UI Testing Deeplinks and Universal Links in iOS
UI Testing Deeplinks and Universal Links in iOS
September 15th, 2020
Did you know it's possible to terminate your app in the middle of an XCUITest and launch it again...
Improving Observer Pattern APIs in Swift With Weak Collections
Aug 25, 2020, 8:00 AM
Improving Observer Pattern APIs in Swift With Weak Collections
Improving Observer Pattern APIs in Swift With Weak Collections
August 25th, 2020
Even if you don't know what the Observer pattern is, there's a good...
App Attest: (Properly!) Protecting iOS apps from Jailbreak Tweaks in iOS 14
Aug 11, 2020, 8:00 AM
App Attest: (Properly!) Protecting iOS apps from Jailbreak Tweaks in iOS 14
App Attest: (Properly!) Protecting iOS apps from Jailbreak Tweaks in iOS 14
August 11th, 2020
When jailbreaking of iOS devices first became...
Entry Points in Swift: How @main and @UIApplicationMain work internally
Jul 21, 2020, 8:00 AM
Entry Points in Swift: How @main and @UIApplicationMain work internally
Entry Points in Swift: How @main and @UIApplicationMain work internally
July 21st, 2020
In this article, we'll see how Swift determines the...
Adapting Objective-C APIs to Swift with NS_REFINED_FOR_SWIFT
Jul 14, 2020, 8:00 AM
Adapting Objective-C APIs to Swift with NS_REFINED_FOR_SWIFT
Adapting Objective-C APIs to Swift with NS_REFINED_FOR_SWIFT
July 14th, 2020
If your iOS project uses Objective-C SDKs, you'll find that the compiler does...
Creating Debug Menus in Swift with UIContextMenuInteraction
Jun 30, 2020, 8:00 AM
Creating Debug Menus in Swift with UIContextMenuInteraction
Creating Debug Menus in Swift with UIContextMenuInteraction
June 30th, 2020
Debug menus in iOS are a very effective way to make your day more productive as...
How to create Widgets in iOS 14 in Swift
Jun 23, 2020, 12:10 PM
How to create Widgets in iOS 14 in Swift
How to create Widgets in iOS 14 in Swift
June 23rd, 2020
Widgets existed in iOS for a long time, but iOS 14 completely revamped them. With the new Widget APIs, not you're...
Benefits of using throwing functions (try) - Swift's most underrated feature?
Jun 16, 2020, 8:00 AM
Benefits of using throwing functions (try) - Swift's most underrated feature?
Benefits of using throwing functions (try) - Swift's most underrated feature?
June 16th, 2020
I've always found throwing functions...
How Random Numbers Work In Swift
May 12, 2020, 8:00 AM
How Random Numbers Work In Swift
How Random Numbers Work In Swift
May 12th, 2020
Before Swift 4.2, generating random numbers involved using raw C APIs. With the addition of the RandomNumberGenerator protocol in...
iOS Responder Chain: UIResponder, UIEvent, UIControl and uses
May 7, 2020, 9:00 AM
iOS Responder Chain: UIResponder, UIEvent, UIControl and uses
iOS Responder Chain: UIResponder, UIEvent, UIControl and uses
March 1, 2019
What on earth is this "first responder" thing when I'm dealing with...
Unit Testing Preprocessor Macros in Swift
May 5, 2020, 8:00 AM
Unit Testing Preprocessor Macros in Swift
Unit Testing Preprocessor Macros in Swift
May 5th, 2020
Preprocessor macros are used to bring context to a build, allowing you to transform how your app is compiled...
Discovering which DispatchQueue a method is running on
Apr 28, 2020, 8:00 AM
Discovering which DispatchQueue a method is running on
Discovering which DispatchQueue a method is running on
April 25th, 2020
The DispatchQueue class has lots of interesting and undocumented (unfortunately) hidden...
Weak Dictionary Values in Swift
Apr 14, 2020, 8:00 AM
Weak Dictionary Values in Swift
Weak Dictionary Values in Swift
April 14th, 2020
When dealing with dictionaries and arrays in Swift, it's very important to know that any reference types used as a key or value will...
Understanding Swift's ObjectIdentifier
Mar 31, 2020, 3:25 AM
Understanding Swift's ObjectIdentifier
Understanding Swift's ObjectIdentifier
March 31st, 2020
ObjectIdentifier is one of these obscure Swift types that you only see when looking at the answers for very specific...
Useful Global Swift Functions
Mar 24, 2020, 3:25 AM
Useful Global Swift Functions
Useful Global Swift Functions
March 24th, 2020
Global functions, or functions that can be accessed from anywhere without the scope of a specific type is an old concept that was popular...
How Collection Diffing works in Swift
Mar 18, 2020, 3:25 AM
How Collection Diffing works in Swift
How Collection Diffing works in Swift
March 18th, 2020
Ordered Collection Diffing is a feature added in Swift 5.1 that allows you to calculate and apply the difference between...
Swift Codable: Decoding / Encoding With Context
Feb 5, 2020, 2:25 AM
Swift Codable: Decoding / Encoding With Context
Swift Codable: Decoding / Encoding With Context
February 5th, 2020
The Codable protocols are one of the coolest recent additions to Swift. Even though it works...
Reducing iOS Build Times by using Interface Modules
Jan 23, 2020, 1:00 AM
Reducing iOS Build Times by using Interface Modules
Reducing iOS Build Times by using Interface Modules
January 23rd, 2020
While dividing an app into several modules can improve the build time of an iOS app, the...
How Hashable works in Swift
Jan 13, 2020, 1:00 AM
How Hashable works in Swift
How Hashable works in Swift
January 13th, 2020
Hashing algorithms are functions that map an arbitrary string to a seemingly "random" output with a fixed length. Commonly associated as a...
Using Type Erasure to Build a Dependency Injecting Routing Framework in Swift
Jan 2, 2020, 1:00 AM
Using Type Erasure to Build a Dependency Injecting Routing Framework in Swift
Using Type Erasure to Build a Dependency Injecting Routing Framework in Swift
January 2nd, 2020
With Swift being a very type-safe and...
Faster Array Operations With CollectionOfOne in Swift
Dec 23, 2019, 1:00 AM
collection of a single element. While this sounds a bit weird, there's a good reason for this to exist. Let's check out why.-->
Faster Array Operations With CollectionOfOne in Swift
Faster Array Operations With...
How OptionSet works inside the Swift Compiler
Dec 3, 2019, 1:00 AM
How OptionSet works inside the Swift Compiler
How OptionSet works inside the Swift Compiler
December 3rd, 2019
Swift's OptionSet protocol is the bridged version of Objective-C's NS_OPTIONS enum -- a handy tool that...
NSCopying uses in Swift
Nov 5, 2019, 1:00 AM
NSCopying uses in Swift
NSCopying uses in Swift
November 5th, 2019
Even in apps written in full Swift, interfacing with Objective-C is still a very big part of iOS development. Many types and semantics from...
Swift's Sequence Inside The Compiler: How for loops work internally
Oct 25, 2019, 1:50 PM
Swift's Sequence Inside The Compiler: How for loops work internally
Swift's Sequence Inside The Compiler: How for loops work internally
October 26, 2019
One of my favorite things about Swift is that almost every...
Building a Face Detecting Robot with URLSessionWebSocketTask, CoreML, SwiftUI and an Arduino
Oct 15, 2019, 2:39 PM
Building a Face Detecting Robot with URLSessionWebSocketTask, CoreML, SwiftUI and an Arduino
Building a Face Detecting Robot with URLSessionWebSocketTask, CoreML, SwiftUI and an Arduino
October 16, 2019
iOS 13 marks...
Using SIMD Vector Types in Swift
Sep 29, 2019, 2:00 PM
Using SIMD Vector Types in Swift
Using SIMD Vector Types in Swift
September 30, 2019
SIMD Vector Types is a feature added in Swift 5 that exposes Apple's <simd/simd.h> module to Swift, allowing you to calculate...
Timsort and Introsort: Swift's Sorting Algorithms
Sep 4, 2019, 2:00 PM
Timsort and Introsort: Swift's Sorting Algorithms
Timsort and Introsort: Swift's Sorting Algorithms
September 4, 2019
Have you ever asked yourself which algorithm is used by Swift's sorting method? There are many...
Advanced lldb tricks for Swift - Injecting and changing code on the fly
Aug 8, 2019, 2:00 PM
Advanced lldb tricks for Swift - Injecting and changing code on the fly
Advanced lldb tricks for Swift - Injecting and changing code on the fly
August 8, 2019
While Xcode provides several visual abstractions for...
Swift ExpressibleBy protocols: What they are and how they work internally in the compiler
Jul 17, 2019, 2:00 PM
Swift ExpressibleBy protocols: What they are and how they work internally in the compiler
Swift ExpressibleBy protocols: What they are and how they work internally in the compiler
July 17, 2019
ExpressibleBy...