Flutter PoC Overview
The purpose of this repo is to provide a PoC for achieving the following requirements. This not only will provide a base from which an actual app could be built, but will also provide a place for soliciting community input on code and pattern refinement.
- Tabbed navigation, without losing state when switching tabs
- Show a flow of screens from Module 1, with some screens embedded from Module 2, without these two modules being coupled beyond interface requirements.
- Module 1 =
- Module 2 =
graph TD A((Home Screen with Tabs)) --- B(M1: Screen 1) B -- Button Tap --> C(M1: Screen 2) C -- Button Tap --> D(M2: Screen 1) D -- Button Tap --> E(M2: Screen 2) E == Button Tap, Passes Value ==> C C -. Native Back .-> B D -. Native Back .-> C E -. Native Back .-> D style B fill:#BC6E8C style C fill:#BC6E8C style D fill:#BC9E6E style E fill:#BC9E6E linkStyle default stroke-width:1px,fill:none,stroke:black;
General Module Architecture
The root app will depend on Module 1 and Module 2, implementing them and providing parameters to configure them appropriately.
The modules need to be independent of each other; M1 and M2 can’t be hardcoded to reference the other.
Module 1 should show some screens from Module 2 as if they’re part of a continuous flow.
graph LR A(App) --> B[Module 1] A(App) --> C[Module 2] style B fill:#BC6E8C style C fill:#BC9E6E linkStyle default stroke-width:1px,fill:none,stroke:black;
Outstanding Questions / Known Issues
- How should M1p1 get the value from M1p2 when you go from M1p2 to M1p1 (native back button or the screen button)?