Section • 5 episodes • 3 hr 37 min

Dependencies can wreak havoc on a codebase. They can increase compile times, are difficult to test, and put strain on build tools. Did you know that Core Location, Core Motion, Store Kit, and many other frameworks do not work in Xcode previews? Any feature touching these frameworks will not benefit from the awesome feedback cycle that previews afford us. This collection clearly defines dependencies and shows how to take back control in order to unleash some amazing benefits.

Related content

The technique of replacing protocols with simple data types goes far deeper than what we discuss above. Almost any protocol can be rewritten as a simple data type, and when you do so you can uncover a lot of interesting forms of composition that were previously hidden from us in the protocol world. To learn more watch our series of episodes on the “protocol witness” technique.

Protocol Witnesses
3 hr 18 min

Well-designed dependencies and the Composable Architecture go hand-in-hand. If your dependencies are properly designed, then you will instantly unlock deep testing abilities of your application, including the ability to exhaustively assert the lifecycle of effects. To learn more watch our series of episodes on dependency management in the Composable Architecture.

Dependency Management
1 hr 52 min

We first talked about dependencies long, long ago in one of our first episodes. In these episodes we introduced the concept of modeling dependencies with simple data types instead of using protocols.

Dependency Injection Made Easy
35 min
Dependency Injection Made Comfortable
28 min