Open4
Expo UI (@expo/ui) について

SwiftUI/Jetpack Composeで作られた、完全にネイティブなUIコンポーネント群。
2025/03/14現在はアルファ版として登場した。
@expo/ui
パッケージとしてインストールが可能。
npx expo install @expo/ui
2025/03/14現在、次のUIコンポーネントが用意されている。(現在Androidには対応していないコンポーネントがありそう?🍎がiOSであるもの、🤖がAndroidで用意されているものとして確認)
- Button 🍎 🤖
- PickerView 🍎 🤖
- SectionView 🍎
- ContextMenu 🍎 🤖
- ColorPickerView 🍎
- DateTimePickerView 🍎 🤖
- TextInputView 🍎
- ProgressView 🍎 🤖
- GuageView 🍎

早速試してみようと思ったが、SDK 52でiOSのビルドしようとしたがエラー(Xcode 16.2.0)
❌ (node_modules/@expo/ui/ios/SwitchView.swift:16:55)
14 | struct SwitchView: ExpoSwiftUI.View {
15 | @EnvironmentObject var props: SwitchProps
> 16 | @EnvironmentObject var shadowNodeProxy: ExpoSwiftUI.ShadowNodeProxy
| ^ 'ShadowNodeProxy' is not a member type of struct 'ExpoModulesCore.ExpoSwiftUI'
17 | @State var checked: Bool = false
18 |
19 | var body: some View {
確かに ExpoSwiftUI.ShadowNodeProxy
なんて定義されていない気がする… 🤔

expoを53.0.0-canary、@expo/uiも1.0.0canaryを指定したら動いた
"dependencies": {
"@expo/ui": "^1.0.0-canary-20250320-7a205d3",
"expo": "53.0.0-canary-20250320-7a205d3",
"expo-status-bar": "~2.0.1",
"react": "19.0.0",
"react-native": "0.79.0-rc.2"
}

BottomSheetも対応していた(2025/03/25現在iOSのみ)
ログインするとコメントできます