Unlock This Episode
Our Free plan includes 1 subscriber-only episode of your choice, plus weekly updates from our newsletter.
Over the last 9 weeks we have built up a pretty complex application in order to dive deep into the concepts of navigation in SwiftUI. We discovered many new tools along the way that allow us to fully drive navigation off of state, including binding transformations, new overloads on existing SwiftUI Navigation APIs, and even all new SwiftUI views that aid in navigation.
When we first started the series of episodes we boldly stated that the ideas we discussed were just as applicable to UIKit as they were to SwiftUI, and are even applicable beyond Swift and the Apple ecosystem. And now we want to put our money where our mouth is. We are going to rebuild the application in UIKit using everything that modern UIKit APIs have to offer us, and see what new challenges it poses.
Even cooler, we aren’t going to build the entire thing from scratch. We are only going to rebuild the view layer. We are going to reuse all of the view models we built previously without making a single change to them. Hopefully this convinces everyone that thinking of navigation is first a domain modeling problem comes with some huge benefits, one of which is that we can be free to swap out parts of the view layer for a completely different paradigm while the business logic layer is none the wiser.
Navigation is a really, really complex topic, and it’s going to take us many episodes go deep into it. We will show at its heart, navigation is really a domain modeling problem, which means we need to discover tools that allow us to transform one domain into another. Once this is accomplished we will see that many seemingly disparate forms of navigation can be unified in a really amazing way.