UISplitViewController
In the beginning, there was the iPhone. And it was good.Some years later, the iPad was introduced. And with some adaptations, an iOS app could be made Universal to accommodate both the iPhone and iPad...
View ArticleSwift Operators
What would a program be without operators? A mishmash of classes, namespaces, conditionals, loops, and namespaces signifying nothing.Operators are what do the work of a program. They are the very...
View ArticleTimeInterval, Date, and DateInterval
Nestled between Madrid’s Centro and Salamanca districts, just a short walk from the sprawling Buen Retiro Park, The Prado Museum boasts an extensive collection of works from Europe’s most celebrated...
View ArticleDateComponents
There are as many mnemonic devices for making sense of time as the day is long. “Spring ahead, Fall back”. That knuckle trick for remembering the lengths of months. Musical theater aficionados can tell...
View ArticlenumericCast(_:)
Everyone has their favorite analogy to describe programming.It’s woodworking or it’s knitting or it’s gardening. Or maybe it’s problem solving and storytelling and making art. That programming is like...
View ArticleValueTransformer
Of all the Foundation classes, ValueTransformer is perhaps the one that fared the worst in the shift from macOS to iOS.Why? Here are two reasons:First, ValueTransformer was used primarily in AppKit...
View ArticleSwiftSyntax
SwiftSyntax is a Swift library that lets you parse, analyze, generate, and transform Swift source code. It’s based on the libSyntax library, and was spun out from the main Swift language repository in...
View ArticleTemporary Files
Volumes have been written about persisting data, but when it comes to short-lived, temporary files, there is very little to go on for Cocoa. (Or if there has, perhaps it was poetically ephemeral...
View ArticleFileManager
One of the most rewarding experiences you can have as a developer is to teach young people how to program. If you ever grow jaded by how fundamentally broken all software is, there’s nothing like...
View ArticleVoid
Fear is an automatic response.It starts with sensory input from our eyes and ears and skin, which moves from the thalamus to the sensory cortex. This information is processed and combined with...
View ArticleLanguage Server Protocol
Last month, Apple announced on the Swift.org forums that it was starting work to adopt the Language Server Protocol (LSP) for Swift and C languages.At Apple we are making it a priority to support...
View ArticleOptionSet
Objective-C uses the NS_OPTIONS macro to define option types, or sets of values that may be combined together. For example, values in the UIViewAutoresizing type in UIKit can be combined with the...
View ArticleCustomPlaygroundDisplayConvertible
Playgrounds allow you to see what your Swift code is doing every step along the way. Each time a statement is executed, its result is logged to the sidebar along the right-hand side. From there, you...
View ArticleMirror / CustomReflectable / CustomLeafReflectable
Reflection in Swift is a limited affair, providing read-only access to information about objects. In fact, this functionality might be better described as introspection rather than reflection.But can...
View ArticleSwift Development with Visual Studio Code
Visual Studio Code (VSCode) is a cross-platform text and source code editor from Microsoft. It’s one of the most exciting open source projects today, with regular updates from hundreds of contributors....
View Articlesimctl
At the heart of Apple’s creation myth is the story of Steve Jobs’ visit to Xerox PARC in 1979. So inspired by the prototype for the Alto computer was he, that — like Prometheus— Steve Jobs would steal...
View ArticleLocale
“You take delight not in a city’s seven or seventy wonders, but in the answer it gives to a question of yours.” Italo Calvino, Invisible CitiesLocalization (l10n) is the process of adapting your...
View ArticleSwift Program Distribution with Homebrew
It’s not enough to make software; you also have to make it easy to install.Apple’s had this figured out for almost a decade. Anyone can go to the App Store and — with a single tap — start using any one...
View ArticleUIActivityViewController
On iOS, UIActivityViewController provides a unified interface for users to share and perform actions on strings, images, URLs, and other items within an app.You create a UIActivityViewController by...
View ArticlemacOS Character Viewer
Emoji is a conspiracy by the Unicode® Consortium to make Americans care about internationalization.For a time, many developers operated under the assumption that user-input would be primarily...
View Article