How to make a SwiftUI component that draws a Shape with light

While I was experimenting with SwiftUI, one of the effects I wanted to re-create was taking a shape and making “stroke effects” on it. The goal was to create a SwiftUI component that could take an arbitrary path, apply this effect to the shape, and render it within the context of a larger SwiftUI view.Continue reading “How to make a SwiftUI component that draws a Shape with light”

Introducing and explaining the PreviewBackground package

While learning and experimenting with SwiftUI, I use the canvas assistant editor to preview SwiftUI views extensively. It is an amazing feature of Xcode 11 and I love it. There is a quirk that gets difficult for me though – the default behavior of the preview provider uses a gray background. I frequently use multipleContinue reading “Introducing and explaining the PreviewBackground package”

Four strategies to use while developing SwiftUI components

Lets start out with the (possibly) obvious: when I code, I frequently make mistakes (and fix them); but while I am going through that process function builders are frequently kicking my butt. When you are are creating SwiftUI views, you use function builders intensely – and the compiler is often at a loss to explainContinue reading “Four strategies to use while developing SwiftUI components”

Using Combine v1.1 is available

After getting the major edits for the existing content done, I called the result the first release. As with any creative product, I wasn’t happy with some of the corners that still had rough edges. Over the past two weeks I fleshed those in, wrote a bunch of unit tests, figured out some of theContinue reading “Using Combine v1.1 is available”

Using Combine – first edition available

I just finished my first edit pass of the content of Using Combine, and am incredibly pleased. Sufficiently pleased, in fact, that I am going to call this version the “first edition”. It is certainly not perfect, nor even as complete as I would like, but a significant enough improvement that I wanted to putContinue reading “Using Combine – first edition available”

SwiftUI and Combine – Binding, State, and notification of changes

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”

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”

A Using Combine update now available!

A new version of Using Combine (v0.7) is now available!  The free HTML site of Using Combine has been updated automatically, and the PDF and ePub versions are available on Gumroad. This version has relatively few updates, primarily focused on some of the missing publishers and resolving the some of the egregious flaws in ePubContinue reading “A Using Combine update now available!”

Using Combine (v0.6) available!

A new version of Using Combine is available! The free/online version of Using Combine is updated automatically as I merge changes, and the PDF and ePub versions are released periodically and available on Gumroad. https://gumroad.com/js/gumroad.js Purchase Using Combine The book now has some amazing cover art, designed and provided by Michael Critz, and has benefitedContinue reading “Using Combine (v0.6) available!”

navigating Swift Combine, tuples, and XCTest

What started out as a Github repository to poke at SwiftUI changed course a few weeks ago and became a documentation/book project on Combine, Apple’s provided framework for handling asynchronous event streams, not unlike ReactiveX. My latest writing project (available for free online at https://heckj.github.io/swiftui-notes/) has been a foil for me to really dig intoContinue reading “navigating Swift Combine, tuples, and XCTest”