How to learn The Composable Architecture
Our tips for getting started with TCA from Pointfree
If you’re like us, it can feel a little daunting to pick up a new software architecture, especially once you’ve learned the ins and outs of another one already! Even if you aren’t planning on switching to or starting your app with a new architecture, it can be really beneficial to check out new ways of doing things. You never know what you might learn that might help!
This post is not an attempt to teach you how to use The Composable Architecture (TCA). Instead, we’re going to provide a good path for how to get started with learning the framework. The fine folks at Point-Free have done an excellent job with providing resources, but we know it can feel overwhelming to jump into something for the first time and not know where to start.
First, in order to use something, you need to know what it is! Fortunately, that’s answered pretty readily in the Readme of the Swift Composable Architecture GitHub page. Not only does it clearly define the What and Why of TCA, it provides a large number of examples, documentation, and other resources to help you really understand how to accomplish your goal of making a well-engineered app. We recommend at least reading the “What is the Composable Architecture?” section, and skimming through the rest to familiarize yourself with some terminology.
Next, if you’re looking for a practical way to start learning TCA, follow this great Getting Started guide. It walks you through the basics of building and testing a feature in an easily digestible manner. We find practical implementation of concepts to be a great way to solidify those ideas after reading. This guide not only illustrates the key concepts but also explains how testing works in TCA, which is a core benefit of this architecture.
Some of the concepts and naming standards are pretty different than what you might be used to from Apple tutorials on Swift or SwiftUI, like Reducer or Effect. It’s a good idea to take time to understand them in detail. Now that you’ve had a chance to learn and use some of those concepts already, we recommend following along with the first chapter of tutorials provided by Point-Free. It’s a great way to reinforce the ideas you’ve learned about, to make sure you understand the foundations you’re going to build upon.
Next is a video series called “A tour of the Composable Architecture,” which will give you a look at a number of important concepts through the lens of TCA, like navigation and persistence. This will be invaluable as you expand beyond the simple examples from the previous steps, and also provides the information in a different, more visual format if you’re not a text-based learner. Much of the video content is subscriber-only, but you can watch one video for free to get a taste — and we highly recommend subscribing if you’ve made it this far!
Finally, return to the interactive tutorials, focusing on Chapter 2 this time. This is a more in-depth look at navigation, and gives you insight into how to start handling more complex interactions between features and screens. This will help solidify a lot of what you’ve learned from previous sections.
Learning with a team
For other agencies, there are a few ways you can support your team as they learn together — you could open a Slack channel for people to ask & answer each other’s questions, watch videos together with a group discussion afterward, and work through coding challenges. Point-Free also has special pricing for teams of two or more people, so you can get everyone on the same subscription plan.
Wrapping up
To summarize, we recommend following these steps to start your TCA journey:
- Check out the README to understand the fundamentals & terminology
- Follow the Getting Started guide
- Do Chapter 1 of the Point-Free tutorials
- Dip into the video series
- Do Chapter 2 of the Point-Free tutorials
All of these helpful resources will expose you to the core concepts of The Composable Architecture. Whether you’re someone who was already interested in checking out TCA or someone who hadn’t heard of it before, hopefully this gives you a little push into checking out something new!