Amended by 0180: the app count, the release train and
the store process.
Settled by 0268: R17: mobile modules are
compile-time. A product variant is compiled into the app, not loaded at run time, and is not a
separate app. Decision 3’s TODO is settled.
Context
0011 rejects expo-router in favour of code-based React Navigation, and this ADR is consistent with it. The mobile app wants platform-native tab bars, including iOS Liquid Glass, whichreact-native-bottom-tabs provides. Support is verified in its documentation but not yet built with Xcode 26.
Decision
- Mobile navigation is React Navigation 7, fed by the adapter in 0053.
- Tabs use
react-native-bottom-tabs(native tabs, Liquid Glass,minimizeBehavior, search role). - There is one mobile app. Products that need variants use compile-time modules later (TODO), not separate apps.
- A build with Xcode 26 must succeed before this ADR is Accepted.
Consequences
- Native look and feel on iOS and Android.
- A native-module dependency to track on each Expo SDK upgrade.