The answer to "How can I test that a view controller presents another view controller when something happens?" is as simple as defining a delegate.
Digital minimalists believe that clutter is costly and optimization is important. Let me show you how these ideas apply to software development as well.
The best thing you can do as a software developer is not writing code, but removing it. Here's why.
This is a blogpost version of the content of my talk "Functional Core, Reactive Shell"
A look at how to write classes and structs that expose their dependencies as initialization arguments in Swift.
Sometimes the idea we get when reading a class interface is different from what is actually going on inside its implementation, for example there could be several hidden dependencies. Making a class dependency explicit in its interface is a useful technique to make the code simpler to understand, and easier to test.