Published onMay 8, 2026One JS, Two UXes: Why a Cross-Platform Abstraction Can't Assume Presentation Form Is ConstantReact-NativeExpoSwiftUIiPadMechanism-Analysis@expo/ui's BottomSheet bridges to SwiftUI's .sheet — the same code is a bottom drawer on iPhone and a centered form-sheet on iPad, with presentationDetents ignored. This reveals an implicit premise of cross-platform abstractions.