Exhaustive testing in TCA
Analyzes the downsides of exhaustive testing in The Composable Architecture (TCA), arguing it leads to fragile tests and violates TDD principles.
Krzysztof Zabłocki (merowing_) is a Principal Engineer focused on developer experience and solving complex engineering problems. He builds award-winning apps and tools used by thousands of teams and shares insights on modern development, tooling, and LLM-assisted workflows.
79 articles from this blog
Analyzes the downsides of exhaustive testing in The Composable Architecture (TCA), arguing it leads to fragile tests and violates TDD principles.
A guide to effective code review practices, focusing on goals, culture, and team collaboration for maintaining code quality.
A guide to improving debugging in the Composable Architecture (TCA) by handling large state diffs and filtering noisy actions.
A developer discusses the limitations of Xcode extensions and proposes improvements, using their Sourcery Pro tool as an example.
Announcing Sourcery Pro, a new macOS app that extends Xcode's capabilities, built from over 1000 hours of development work.
A senior iOS developer reflects on a decade of career highlights, including Cocoa projects, indie app development, and lessons learned about teamwork and seniority.
Explains how to speed up iOS development by moving 3rd-party tools like SwiftLint and Sourcery out of build phases and into a separate script.
A guide to adding versioning and migration support to Swift Codable models while preserving automatic derivation.
A developer shares a pragmatic solution for automatically saving and replaying data snapshots to debug bugs in fast-changing apps, using a Swift-based tool.
Improving Swift test debugging by pinpointing exact property differences between object instances instead of generic failure messages.
Introduces LifetimeTracker, a tool for iOS developers to detect retain cycles and memory leaks during development, improving debugging efficiency.
Explains how to use Swift protocol composition to simplify dependency injection and reduce boilerplate in iOS projects.
A Swift developer introduces a 'strongify' function to simplify and clean up the common pattern of weak-strong dancing when avoiding retain cycles in closures.
Article explores what defines a Senior Engineer, focusing on soft skills and principles over technical API knowledge.
A guide to writing maintainable tests for iOS apps, covering the Red-Green-Refactor cycle and the Arrange-Act-Assert pattern.
Explores building a Swift library for real-time, live updates to iOS app UI and themes without recompilation, using Traits and runtime features.
Introducing Sourcery, a meta-programming tool for Swift that automates code generation to reduce repetition and improve safety.
Explores enhancing Swift MVVM architecture using Protocol-Oriented Programming and Objective-C runtime for better view-model binding and reusability.
A developer advocates for investing time in building internal tools and processes to automate repetitive tasks and improve efficiency in software development.
A guide to setting up a custom pre-commit Git hook for iOS projects to prevent common issues like misplaced views and focused tests.