A blog exploring advanced programming topics in Swift.

Composable Architecture 1.0

Monday Jul 31, 2023

After more than 3 years of development, 145 contributors, and 983 closed pull requests, the Composable Architecture has finally reached 1.0! 🎉

The library has been quite stable since its inception, but we weren’t ready to put the “1.0” label on it until we released its navigation tools, which happened just a few weeks ago. If you want to get started with the library today you have two options:

  • This week we are beginning to release a brand new series of episodes to tour the 1.0 library. The first episode builds a simple application from scratch to demonstrate how to implement your first feature, execute side effects, control dependencies, and write a full test suite.

    Next week the tour continues by rebuilding Apple’s Scrumdinger from scratch, using the Composable Architecture. This involves composing together many isolated features, exploring navigation patterns, dealing with complex side-effects, and writing tests to exercise all of the subtle and nuanced logic in the application.

  • The documentation has a full tutorial that explores all of the fundamentals of building a feature in the Composable Architecture. This includes implementing the core logic and behavior of your features with reducers, controlling dependencies, writing tests, and using the library’s navigation tools.

Upgrading to 1.0

In tandem with the 1.0 release we are also releasing 0.57.0, which is a backwards-compatible release that hard deprecates everything that is removed in 1.0. This provides you a soft landing for upgrading your projects. We recommend you first upgrade to 0.57.0, fix all deprecation warnings, and then upgrade to 1.0 and fix any compiler errors for incompatible changes we made to the library.

The future

This is only the beginning for the Composable Architecture. We have big plans to integrate all of the new features of Swift 5.9 and iOS 17 into the library, such as the
Observable protocol and macros. These tools will fundamentally change the ergonomics and power of the library, but as always we will aim to make these additions as backwards compatible as possible.

Update today

If you use the Composable Architecture, then we highly recommend upgrading to 1.0 as soon as possible. And if you do not use the Composable Architecture, then there’s no time like the present. 🥳


Subscribe to Point-Free

👋 Hey there! If you got this far, then you must have enjoyed this post. You may want to also check out Point-Free, a video series covering advanced programming topics in Swift. Consider subscribing today!