Abstracting Navigation in SwiftUI

Currently, implementing navigation between SwiftUI views usually means adding navigation logic that is tightly coupled to a View's body implementation. However, there are things we can do to reduce this coupling, and in this post, Omar demonstrates an approach he uses to decouple navigation logic from Views using some abstraction.