Note: this is part of my upcoming Programming React Native book. Enjoy!
You might ask yourself: why do you need navigation? What's a navigation stack? Well, navigation on mobile apps covers these concerns:
- Situational awareness: know where you're at, and possibly, where you came from
- Functional: be able to navigate. Go back, undo, skip, or "deep link" into some functionality of the app
- Infrastructural: consolidate ceremonies that need to be done before rendering a new screen.
- Maintainability: to realize the above concern, often, you'll need to build a state machine. A navigation stack is a state machine. Platforms may let you code this state machine declaratively or visually, and promote maintainability by keeping all of that logic in one place.