Published inITNEXTMake Xcode instantly build again when it says “Build again to continue” (part 2)Introducing XcodeTweaks — a macOS app to run Xcode shortcuts in a timely and automatic way.Oct 7Oct 7
Published inITNEXTMake Xcode instantly build again when it says “Build again to continue” (part 1)Xcode 15 introduced new and wonderful build errors we never could have imagined in our wildest dreams. Let’s see what we can do about them.Jun 29Jun 29
Published inITNEXTCalling Shell commands from Swift using @dynamicCallable and @dynamicMemberLookupSwift has a built-in way to be interoperable with dynamic languages — let’s make a DSL for the Shell!Nov 5, 20231Nov 5, 20231
Published inITNEXTMocking AsyncSequence in Unit TestsWith async / await becoming more popular in Swift, how can we ensure our code is testable when interfacing with third party code such as…Jul 5, 2023Jul 5, 2023
Published inITNEXTChange your default downloads location!Here’s an idea on how to deal with a messy ~/Downloads folder.Aug 1, 2021Aug 1, 2021
Published inStreamotion Tech BlogMagic Dependency Injection in SwiftIn Binge for iOS and tvOS we decided to use a custom Swift Property Wrapper to help us inject dependencies into classes and ensure even…Jun 16, 20211Jun 16, 20211
Published inITNEXTGraphing Xcode project dependencies — Introducing XCGrapherRecently we been migrating our (many) in-house libraries from CocoaPods to Swift Packages. To get an overview of our progress I built a…Apr 15, 2021Apr 15, 2021
Published inITNEXTLeveraging Swift in Xcode’s LLDBHere’s a way you can define helper functions in Swift that are injected into your app at runtime for use whilst debugging!Apr 8, 2020Apr 8, 2020
Published inITNEXTFixing issues caused by future SDKsWhat if you need to fix an issue caused by an iOS version newer than the Xcode version you are using?Sep 16, 2019Sep 16, 2019
Published inITNEXTSynchronous processing in SwiftI recently experienced async/await whilst working in JavaScript. Wouldn’t it be great if we could do the same in Swift!Jun 27, 20191Jun 27, 20191