This document discusses navigation in mobile applications using an advanced architecture. It proposes handling navigation through presenters rather than views to decouple events from semantics. Storyboards are presented as an implementation that is not required. Modular navigation allows passive views and independence from any implementation. Clear benefits include testability, modifying dependency injection, and enabling A/B testing through different navigation implementations in presenters.
25. #MobAppArch
Implementing navigation
and back
★ Navigation destination is NOT decided by
the view event
★ When presented modally, navigation back
requires Unwind segue
★ In a navigation controller things happen
naturally
29. #AdvArchMobile
Having the Information
★ Perform segue & prepare for segue are
disconnected
★ Information for injection:
• Use sender: DON’T
• State in View Controller
• State in Presenter (preferred)
31. #AdvArchMobile
Differences
★ Easier to pass the information
★ Easier to do the injection: Initializer instead
of property
★ Presentation is done by the source
★ No “big picture” or unwind segues
41. #AdvArchMobile
Recap
★ Navigation is a key part of an advanced
architecture:
• Modular
• Allows passive view
• Not bound to implementation (storyboards)
★ Easy to implement & maintain
★ Clear benefits
42. – Anonymous iOS developer
“Fly me to the View
Let me play among the Apps”