Just released Sankey 2.0 , an open-source package for building Sankey diagrams in SwiftUI. What? A Sankey diagram visualizes flow: where stuff is coming from, where it’s going, and how much stuff is moving. Thick and thin bands represent the volume of flow. Sankey diagrams are perfect for showing money, user behavior, energy usage—basically anything involving inputs, outputs, and the…
The Composable Architecture ( TCA ) is an iOS app development framework that promises “better state management”, “modular design”, and “testable side effects”. After doing some consulting with a startup looking to adopt the framework, I can confidently say: TCA creates more problems than it solves. Pain. TCA is packed with unnecessary complexity, redundant…
SwiftUI is over 5 years old. While a lot has changed since its introduction at WWDC19, the fundamentals— especially with respect to data flow—remain pretty much the same. Sure, there’s some new Observation framework syntax to learn, but Apple has done a great job at “simplifying” and “unifying” APIs while maintaining backwards compatibility. This post is meant to…
I recently wrapped up some work on a client project that used TCA . While I didn’t love the framework, I’m thankful for the opportunity because it introduced me to something brilliant: the Client Pattern. The Client Pattern The thing that I’m calling the Client Pattern is really just a simplified version of Point-Free’s DependencyClient from their swift-dependencies…
A SwiftUI tribute to the timeless wisdom of “ The Grug Brained Developer ”, a guide that shows simplicity is not just a choice but a way of life. swiftui one day grug find swiftui grug like swiftui swiftui good. swiftui simple. swiftui flow like river but some dev stack rock in river, make waterfall of sad grug think “why fight river with rock???” “why make simple…
Programming basically boils down to two things: data flow and naming stuff. Simple in theory. Super easy to complicate in practice. To illustrate the point let’s look at some iOS code that updates an emoji on a “parent” view from a “child” view action. Boilerplate UIKit In UIKit this relatively simple task becomes a whole sad song and dance: import UIKit class…