Installation
npm install react-native-platform-components
yarn add react-native-platform-components
iOS
cd ios
pod install
- Minimum iOS version: iOS 15.1+ (React Native sets this floor; the podspec follows it)
- Uses
UIDatePicker, SwiftUI Menu, andUIContextMenuInteraction
Android
- Uses native Android Views with Material Design (including
PopupMenufor context menus) - Supports Material 3 styling
- Works with the default React Native and Expo AppCompat theme. To have the Material 3 components use your app's colors, see Android Theme Configuration
Expo (Managed Workflow)
Note: This library is not supported in Expo Go. It requires native code and must be used with Expo Dev Client or EAS Build.
npx expo install react-native-platform-components
npx expo prebuild
npx expo run:ios
# or
npx expo run:android
The library includes an Expo config plugin that handles all native configuration automatically. No manual native setup is required.
EAS Build:
eas build --platform ios
eas build --platform android
Config Plugin:
Add to your app.json. The android.theme option re-parents Expo's generated AppTheme onto Material 3, which SegmentedControl, Button, ButtonGroup, FloatingToolbar and the material: 'm3' modes use for their colors (see Android Theme Configuration):
{
"expo": {
"plugins": [
[
"react-native-platform-components/app.plugin",
{ "android": { "theme": "material3" } }
]
]
}
}
Either form of the reference works: react-native-platform-components/app.plugin
as above, or the bare package name.
For a complete working example, see the example-expo/ directory.
React Native New Architecture
This library is built for the React Native New Architecture (Fabric + TurboModules).
| Feature | Status |
|---|---|
| Fabric (New Renderer) | Supported |
| Codegen | Used for type-safe native bindings |
| TurboModules | N/A (view components only) |
| Old Architecture | Not supported |
Compatibility:
| Platform | Minimum |
|---|---|
| React Native | 0.81 with the New Architecture enabled |
| Expo SDK | 54, with a dev client or EAS Build (not Expo Go) |
| React | 19 |
| iOS | 15.1 (LiquidGlass needs iOS 26) |
| Android | API 24 (Android 7.0); Material Components 1.14 is bundled |
iOS sets that minimum. LiquidGlass uses iOS 26 APIs, so the library has to be
built with Xcode 26, and React Native's bundled fmt only compiles under Xcode
26 from 0.81 on. The Android code itself builds against React Native 0.76, and
CI keeps it that way.
Requirements:
- New Architecture must be enabled in your app
- For bare React Native: set
newArchEnabled=trueingradle.properties(Android) and use theRCT_NEW_ARCH_ENABLEDflag (iOS) - For Expo: set
"newArchEnabled": trueinapp.json