Meta has not shipped iPhone Duo support and has published no guidance for it. What follows is our analysis of how React Native behaves against Apple’s documented behaviours.
The good news
Flexbox is inherently adaptive. A React Native layout built with flex ratios rather than fixed pixel values reflows correctly on the inner display without changes, because the native view hierarchy is resized by UIKit underneath.
What breaks
Cached dimensions. Dimensions.get('window') read once at module scope is the single most common failure. It captures a size that changes when the device folds, rotates, or enters Split View. Use the hook, which re-renders on change:
const { width, height } = useWindowDimensions();
Orientation locking. Locking to portrait in Info.plist or through a library does not work on the inner display, which ignores supported interface orientations. Your app will be laid out in configurations you did not design.
Safe area assumptions. react-native-safe-area-context reports real insets, but application code frequently collapses them — taking the larger of left and right, or applying one horizontal padding value to both sides. Those insets are now genuinely different. Apply insets.left and insets.right separately.
Fixed dimension styles. width: 390 and Dimensions.get('window').width * 0.5 computed at render-time-once have the same problem as native fixed frames.
What is unreachable today
ReservedRegion, ArrangementView, hinge angle, scene accessories, and the vertical bar APIs have no JavaScript bindings. Reaching them requires a native module wrapping the Swift API and bridging values into JS. Until someone ships that, a React Native app can be correct on iPhone Duo but cannot be hinge-aware — it cannot avoid placing content across the fold.
For most apps correctness is enough. For a canvas, editor, or game where the fold matters, budget for native work.
Full analysis: React Native on iPhone Duo.