Good News, Bad News, and Ugly News
Mike Ash announces a hiatus from regular blog posts to focus on completing his book, 'The Complete Friday Q&A: Volume II'.
Mike Ash announces a hiatus from regular blog posts to focus on completing his book, 'The Complete Friday Q&A: Volume II'.
Explores bridging Swift's modern features with a large legacy Objective-C/C++ codebase, discussing practical integration strategies.
A cheatsheet and Swift code sample for navigating Apple's ClockKit complication families and templates for watchOS 5 development.
A developer explains a subtle bug in date comparison code when ignoring time components, using Swift/NSDate examples.
Explains when to use strong vs. weak and optional vs. implicitly unwrapped IBOutlets in Swift/iOS development, with practical rules.
Explains how to use Swift's stride(to:by:) method to safely replace deprecated C-style for loops, especially for edge cases where ranges fail.
Explains how to use Swift protocols to abstract third-party dependencies like NSHTTPCookieStorage, improving code testability and isolation.
A guide to using OHHTTPStubs, a Swift library for stubbing network requests in unit tests to make them faster and more reliable.
A guide to testing asynchronous Swift code using the Quick and Nimble frameworks, covering callbacks and delegate methods.
A guide on how to write unit tests for Swift code that uses the delegate pattern for asynchronous operations, using XCTest and the Spy test pattern.
A tutorial on testing asynchronous callback functions in Swift using XCTestExpectation, part of a series on practical testing.
A guide to preventing unit tests from loading the main AppDelegate in Swift, improving test speed and isolation.
Explains how FlowControllers can improve iOS app architecture by managing navigation and presentation logic, reducing dependencies and spaghetti code.
A technical guide on implementing advanced iOS UI animations like folding, shaking, and button states using Core Animation's 3D transforms.
A developer explains how to create a custom Xcode plugin in Swift to add clickable file links in the console log output.
A guide to creating parameterized XCTest test cases in Swift, including workarounds for NSInvocation limitations.
A technical tutorial on recreating Headspace's animated, imperfect dot logo using iOS graphics and CAShapeLayer.
Explains how Swift handles integer overflow using specific methods like addWithOverflow, preventing crashes.
Explores solutions for splitting Swift initializer logic into functions while adhering to Swift's initialization safety rules.
A guide to converting an Objective-C protocol that returns a protocol-conforming object into Swift, focusing on the use of typealias.