Nimble: when to use waitUntil or toEventually
Explains the differences between Nimble's toEventually and waitUntil for testing asynchronous Swift code, with guidance on when to use each.
Gio Lodi is a software developer and author writing about Test-Driven Development, Swift, automation, and developer productivity. He is the author of Test-Driven Development in Swift with SwiftUI and Combine.
191 articles from this blog
Explains the differences between Nimble's toEventually and waitUntil for testing asynchronous Swift code, with guidance on when to use each.
A Swift developer recreates Ruby's 'unless' keyword in Swift, discussing its differences from 'guard' and sharing the implementation.
A tutorial on using XCTest closure-based expectations with NSPredicate to test asynchronous Swift code.
A guide to using dependency injection with static methods and classes in Swift to improve testability of legacy code.
A developer shares insights from contributing to danger-swiftlint, focusing on selective linting, Ruby testing with RSpec, and mocking Tempfile.
Advocates for writing descriptive, story-like Git commit messages to improve codebase history and debugging efficiency.
Tips for improving Xcode Run Script Build Phases by extracting scripts to separate files for better readability and maintainability.
A guide to manually integrating Google Firebase into an iOS project without using CocoaPods, covering framework setup and linking in Xcode.
Explains the difference between implicitly unwrapped and force unwrapped optionals in Swift, highlighting their dangers and appropriate use cases.
A technical guide on creating a Cloud 66 deploy hook to automate Postfix SMTP installation and configuration on a server.
Explains the dangers of force unwrapping Swift optionals (!) and why it should be avoided, promoting safer alternatives like optional binding.
Explains how to use the Swift Either enum for type-safe handling of two possible value types, with a practical example for table view data sources.
A developer shares three powerful mindset principles from a Thoughtbot podcast: strong opinions loosely held, nothing is set in stone, and rejecting 'because we've always done it'.
A tutorial on implementing a custom, generic version of Swift's 'if let' optional unwrapping construct to understand how optionals work.
Explains Swift's Optional type, its implementation as an enum, and the importance of understanding it beyond basic nil-checking.
Tools and tips for managing multiple Xcode versions, especially beta releases, to streamline iOS/macOS development workflows.
Explains how to use Swift's @available attribute to mark methods as unavailable, with examples for subclassing and legacy code.
Explores the 'Functional Core, Reactive Shell' software architecture pattern, contrasting it with spaghetti and lasagna code to improve testability.
Explains the benefits of using language-agnostic automation scripts in software projects to simplify onboarding and CI/CD processes.
A quick reference for iOS/macOS developers on configuring NSDateFormatter to parse standard JSON date strings (ISO 8601 format).