The other evening, in the wake of a bit of nostalgia, I tested running an emulator project on an iPhone 5 simulator running iOS 10.3 in Xcode 11 (more on that in a future podcast episode). It surprised me at the time—but it probably shouldn’t have—that I got the notorious “‘App Name’ has not been […]
Author Archives: evankstone
Enums and CaseIterable in Swift
In your journeys with Swift since 4.2 released, you may have seen the CaseIterable protocol when working with enums. Since this is a relatively new language feature in 4.2, you might wonder what that is or what it does. In this article on raywenderlich.com, Getting to Know Enum, Struct and Class Types in Swift, Adam […]
The Curious Case of Audiobooks on iOS and macOS
I don’t use Audible (yet), but the situation regarding Audiobooks on macOS Mojave and iOS 12 feels a bit like a UX conundrum at the very least. For starters, the Audiobooks feature resides in iTunes on macOS, but it’s in Books on iOS. I understand arguments for both, but it feels like Apple’s design or […]
How To Configure Charles Proxy to Debug SSL Connections from iOS Apps
If you’re doing extensive debugging and introspection with your web APIs (or perhaps debugging Web Views), here’s how to configure Charles to proxy SSL connections from the Simulator and on-device: SSL connections from within iPhone applications • Charles Web Debugging Proxy As of Charles v3.9.3 there is an item in the Help menu, “Install Charles […]
How #available works in Swift
This article from the Big Nerd Ranch blog goes back to 2016, but it’s a great little rundown by Mark Dalrymple of #available, introduced back in Swift 2.0. Hi! I’m #available! Sometimes we just use language features like this and don’t really think about what’s going on under the hood when we use them, or perhaps […]
Handy Swift Resource: Hacking With Swift’s Auto Layout Cheat Sheet
This is a pretty great one-stop-shopping resource for Auto Layout by Paul Hudson. The Auto Layout cheat sheet – Hacking with Swift Auto Layout is a powerful tool for creating flexible, maintainable rules for your user interface. It can also be a real brain vortex if you’re unlucky – it’s something that makes hard things […]
How to Force Bluetooth Headphones to Use Internal Microphone in macOS
I love using my AirPods with my Mac. The problem is that—at least for me and some other users—macOS always selects the headphones’ microphone as the Input device when you connect your AirPods or other bluetooth headphones. Here’s a fairly quick and easy solution for dealing with this problem permanently.
When Worlds Collide: How to call complex Objective-C selectors from Swift
When developing in Swift, you will eventually need to interact with Objective-C APIs. Most of the time this is fine, and fairly straightforward to do using #selector. However, every once in a while you will need to invoke an Objective-C selector that you did not write (usually when the selector is part of the iOS […]
iOS Dev Break Episode 13: 2017 September Apple Event
The latest iOS Dev Break episode was released on September 13, 2017, but a new episode is coming soon! iOS Dev Break Episode 13: 2017 September Apple Event iOS Dev Break 013: Thoughts and comments for iOS developers about today’s Apple Event and launch of the iPhone X! IDB013: 2017 September Apple Event
Fixing Git SSH After Upgrading to macOS Sierra
Yes. I’m a latecomer to the Sierra game (due mainly to an audio hardware driver I had to wait on to be upgraded to Sierra, which finally was updated but probably won’t be updated to High Sierra…), and most developers have probably already run into this problem and have dealt with it accordingly. However, I […]