When I started the project that became Using Combine, it was right after WWDC; I watched streamed WWDC sessions online, captivated like so many others about SwiftUI. I picked up this idea that SwiftUI was “built using the new framework: Combine”. In my head, I thought that meant Combine managed all the data – notificationsContinue reading “SwiftUI and Combine – Binding, State, and notification of changes”
Category Archives: Ranting and Reflections
programming tools – start with sketching and build to fully specified
A couple of years ago I was managing a very distributed team – or really set of teams: Shanghai, Minneapolis, Seattle, Santa Clara, and Boston. Everyone worked for the same company, but culturally the teams were hugely divergent. In one region, the developers in the team preferred things to be as loosely defined as possible.Continue reading “programming tools – start with sketching and build to fully specified”
CRDTs and lockless data structures
A good five or so years ago Shevek, a friend I met while building cloud-generating appliances at the (now defunct) Nebula, spent an afternoon and evening describing the benefits of lock-free data structures to me. He went deep into the theoretical aspects of it, summarizing a lot of the research thinking at the time. WhileContinue reading “CRDTs and lockless data structures”
Human Voice
When I joined twitter, it was because my friends were talking about it. Conversations that I could normally only participate in during conferences or meetups became available to me. I tried to follow it slavishly at first, and then I had an epiphany that it was more like chatting with some friends at a restaurantContinue reading “Human Voice”
Using Combine – reference content complete!
I’m thrilled to be announcing that an updated version of Using Combine is now available! It has taken me nearly 6 months to draft it all, reverse engineering and writing tests for all the various publishers, operators, and pieces in between – and documenting what I found. The end result is 182 pages (in USContinue reading “Using Combine – reference content complete!”
Combine: throttle and debounce
Updated March 2020 with more thoroughly accurate timing diagrams, after vetting against iOS13.2, iOS 13.3, and iOS13.4 beta. Combine was announced and released this past summer with iOS 13. And with this recent iOS 13 update, it is still definitely settling into place. While writing Using Combine, I wrote a number of tests to verifyContinue reading “Combine: throttle and debounce”
Using Combine (v0.8) update available!
A new version of Using Combine (v0.8) is now available. The live HTML site for Using Combine is updated automatically, and the PDF and ePub versions are now available on Gumroad. This version has a number of additional notes and changes, primarily from reader feedback, and some references to Combine’s changes with the release ofContinue reading “Using Combine (v0.8) update available!”
Japan
We recently returned from our first visit to Japan. Karen and I have been wanting to go for quite a while, and the time was right – so most of the month of October was dedicated to that endeavor. I loved our trip, and we were fortunate enough to even be in Kyoto during onContinue reading “Japan”
It is OK to test the framework
When I started to write the book Using Combine, I was learning the Combine framework as I went. There was a lot I was unsure about, and especially given that it was released with the beta of the operating system, the implementation was changing between beta releases as it firmed up. I chose to useContinue reading “It is OK to test the framework”
Sharp Knives
After writing extensively with the Swift programming language, I recently spent time writing code in C++11. The experience has been very instructional, and I know have a much deeper appreciation for the guard rails that the language Swift has constructed. To my surprise, it has also left me with a renewed appreciation of the compilerContinue reading “Sharp Knives”