We have now spent many, many weeks building up our Composable Architecture from first principles. Its core design was motivated by trying to solve five problems that we found crucial for any application architecture to solve.
We then refined this design by addressing a couple memory leaks and a potential performance concern with how our architecture originally interfaced with SwiftUI. Tackling the latter issue provided us with an opportunity to enhance our architecture to be more adaptable to various situations, which allowed us to share core business logic across many platforms while refining the way each platform interacts with that shared logic.
We still have many, many things we want to explore in our architecture, but with these leaks and performance concerns addressed, we think it’s time to package things up to use in our applications. We could maybe even share it with the world as an open source project.
But before we do, we feel there is still some room for improvement. For one thing, we haven’t spent a ton of time on the ergonomics of the Composable Architecture. The core library is pretty small: less than a couple hundred lines of code. But even with such little surface area, I think we can take inspiration from earlier episodes of Point-Free as well as new Swift features to smooth out some of the rough edges around using these APIs.