How XcodeGen reduced the TDD in Swift codebase by 58,000+ lines
How using XcodeGen to generate Xcode projects eliminated over 58,000 lines of code and simplified managing a multi-project Swift codebase.
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
How using XcodeGen to generate Xcode projects eliminated over 58,000 lines of code and simplified managing a multi-project Swift codebase.
Argues that well-written unit tests serve as the most reliable and up-to-date form of documentation for software code.
A guide on introducing Test-Driven Development (TDD) to a software team through leading by example and building consensus.
Argues that GitHub's 'Create a merge commit' option is the best merge strategy for maintaining a clear, useful Git history with atomic commits.
Explains why XCTNSPredicateExpectation is slow for async tests and recommends using Nimble's toEventually for faster, more reliable tests.
Explains when to directly access vs. subscribe to Swift @Published properties in unit tests, focusing on testing initial values versus value changes over time.
A guide to writing unit tests for SwiftUI apps by decoupling layout from logic, enabling testable code without relying solely on UI previews.
Announcing a new book on Test-Driven Development for Swift, focusing on SwiftUI, Combine, and practical iOS application testing.
A summary of new testing features announced at WWDC21, including Xcode Cloud, async/await for testing, and new XCTest APIs.
A guide to writing unit tests for Swift async/await code using XCTest in Xcode 13, comparing it to older callback patterns.
A guide to writing deterministic Swift tests for date comparisons by avoiding reliance on the system clock and injecting reference dates.
A software engineer explains the benefits of distributed vs. remote work, focusing on asynchronous communication, autonomy, and deep work.
Learn how to use Scenario Builders in Swift to simplify unit test setup for complex object networks, making arrange phases cleaner.
Explores the downsides of constant communication tools like Slack and proposes ideas from Cal Newport's book to improve focus and productivity in software development.
Explains asynchronous release processes using GitHub labels and milestones to coordinate app releases across global teams without synchronous meetings.
Explains the 'working backwards' problem-solving technique, using a child's puzzle and Amazon's product development process as examples.
A software developer explains how embracing boredom, like waiting in line without a phone, can train your brain for better focus during demanding cognitive work.
A cheat sheet for writing unit tests for Swift Combine Publishers in Xcode, including code snippets for common assertion scenarios.
Explores the value of 'boring' iterative plans for tech projects, using a cloud migration example and drawing parallels to Test-Driven Development.
A tutorial on converting a SwiftUI app to use the UIKit App Delegate life cycle in Xcode, covering file updates and configuration.