Platform Support
Detailed platform compatibility and minimum API levels for all features
Platform Support
Comprehensive breakdown of which features are available on which platforms and their minimum requirements.
Cross-Platform Design - All core APIs are designed to work on both iOS and Android with graceful degradation on unsupported platforms.
Minimum Requirements
iOS
- Minimum Version: iOS 9.0+
- Recommended: iOS 12.0+ for full feature support
- Best Experience: iOS 14.0+ (includes all advanced features)
Android
- Minimum Version: Android 9.0 (API 28)
- Recommended: Android 11.0 (API 30) for enhanced features
- Best Experience: Android 12.0 (API 31)+ for complete feature set
Feature Compatibility Matrix
Core Methods
| Method | iOS | Android | Notes |
|---|---|---|---|
getGeometry() | iOS 9.0+ | Android 9.0+ (API 28+) | Full support |
getDisplayInfo() | iOS 9.0+ | Android 9.0+ (API 28+) | Full support |
hasCutout() | iOS 11.0+ | Android 9.0+ (API 28+) | Returns false on older iOS |
isFoldable() | iOS 9.0+ | Android 9.0+ (API 28+) | Always false on iOS |
addListener() | iOS 9.0+ | Android 9.0+ (API 28+) | Full support |
removeAllListeners() | iOS 9.0+ | Android 9.0+ (API 28+) | Full support |
startHingeMonitoring() | N/A | Android 10.0+ (API 29+) | Foldables only |
stopHingeMonitoring() | N/A | Android 10.0+ (API 29+) | Foldables only |
Geometry Features
| Feature | iOS | Android | Details |
|---|---|---|---|
| Display Cutouts | iOS 11.0+ | Android 9.0+ (API 28+) | SVG paths, bounds, safe areas |
| Dynamic Island | iOS 16.0+ | N/A | iPhone 14 Pro and later |
| Notch Detection | iOS 11.0+ | Android 9.0+ (API 28+) | iPhone X and later |
| Punch-hole Cameras | N/A | Android 9.0+ (API 28+) | Various shapes supported |
| Corner Radius | iOS 11.0+ | Android 12.0+ (API 31+) | Precise radius values |
| Bezier Curves | iOS 11.0+ | Android 12.0+ (API 31+) | Requires supportComplex: true |
| SVG Paths | iOS 11.0+ | Android 9.0+ (API 28+) | Requires includePaths: true |
Display Metrics
| Metric | iOS | Android | Details |
|---|---|---|---|
| Width/Height | iOS 9.0+ | Android 9.0+ (API 28+) | Logical points |
| Scale Factor | iOS 9.0+ | Android 9.0+ (API 28+) | Density multiplier |
| Refresh Rate | iOS 10.3+ | Android 11.0+ (API 30+) | ProMotion on iOS, variable on Android |
| Orientation | iOS 9.0+ | Android 9.0+ (API 28+) | Portrait, landscape variants |
| HDR Capabilities | iOS 10.0+ | Android 11.0+ (API 30+) | HDR10, Dolby Vision |
| Color Gamut | iOS 10.0+ | Android 11.0+ (API 30+) | sRGB, P3, etc. |
Events
| Event | iOS | Android | Trigger Condition |
|---|---|---|---|
GEOMETRY_DID_CHANGE | iOS 9.0+ | Android 9.0+ (API 28+) | Any geometry change |
ORIENTATION_CHANGE | iOS 9.0+ | Android 9.0+ (API 28+) | Device rotation |
DISPLAY_CONNECTED | iOS 9.0+ | Android 9.0+ (API 28+) | External display connected |
DISPLAY_DISCONNECTED | iOS 9.0+ | Android 9.0+ (API 28+) | External display removed |
HINGE_ANGLE_CHANGE | N/A | Android 10.0+ (API 29+) | Foldable device only |
React Hooks
| Hook | iOS | Android | Notes |
|---|---|---|---|
useDeviceGeometry() | iOS 9.0+ | Android 9.0+ (API 28+) | Auto-updates on changes |
Device-Specific Features
iPhone Features
Dynamic Island
- Availability: iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max
- iOS Version: iOS 16.0+
- Cutout Shape:
pill(capsule-shaped) - Detection: Available via
cutoutsarray
Notch
- Availability: iPhone X through iPhone 13 series
- iOS Version: iOS 11.0+
- Cutout Shape: Various (rounded rectangle)
- Detection: Available via
cutoutsarray
ProMotion
- Availability: iPhone 13 Pro and later, iPad Pro (2017+)
- iOS Version: iOS 10.3+
- Refresh Rate: Up to 120Hz
- Detection: Check
metrics.refreshRate
Android Features
Punch-hole Cameras
- Availability: Various manufacturers (Samsung, Google, OnePlus, etc.)
- Android Version: Android 9.0+ (API 28+)
- Shapes: Circle, oval, pill, corner
- Detection: Available via
cutoutsarray
Foldable Devices
- Availability: Samsung Galaxy Fold/Flip series, Surface Duo, etc.
- Android Version: Android 10.0+ (API 29+) for hinge monitoring
- Features: Hinge angle detection, multi-display support
- Detection: Use
isFoldable()method
Rounded Corners
- Availability: Android 12+ devices
- Android Version: Android 12.0+ (API 31+)
- Data: Corner radius for all four corners
- Detection: Available via
cornersobject
Graceful Degradation
The library is designed to degrade gracefully on unsupported platforms:
Unsupported Features Return Safe Defaults
// On older Android versions without corner support
const geometry = await DeviceGeometry.getGeometry();
// corners will have radius: 0 on devices without support
console.log(geometry.mainDisplay.corners.topLeft.radius); // 0 on unsupported
// On non-foldable devices
const isFoldable = await DeviceGeometry.isFoldable(); // falseFeature Detection Example
import { DeviceGeometry } from 'react-native-device-geometry';
import { Platform } from 'react-native';
async function setupGeometryFeatures() {
const geometry = await DeviceGeometry.getGeometry();
// Check for cutout support
if (geometry.mainDisplay.cutouts.hasCutout) {
// Enable cutout-aware features
setupCutoutAvoidance(geometry.mainDisplay.cutouts);
}
// Check for foldable support
if (Platform.OS === 'android') {
const isFoldable = await DeviceGeometry.isFoldable();
if (isFoldable) {
// Enable foldable-specific features
await DeviceGeometry.startHingeMonitoring();
}
}
// Check for corner radius support
const hasCornerData = geometry.mainDisplay.corners.topLeft.radius > 0;
if (hasCornerData) {
// Use corner radius in UI
const borderRadius = geometry.mainDisplay.corners.topLeft.radius;
}
}Testing on Different Platforms
iOS Simulators
- All iOS features work in simulators
- Dynamic Island can be tested on iPhone 14 Pro/15 Pro simulators
- Notch can be tested on iPhone X and later simulators
Android Emulators
- Cutouts can be simulated in AVD settings
- Foldable emulators available for testing fold behavior
- Custom display cutouts can be configured
Physical Devices
- Best for testing actual hardware features
- Required for accurate refresh rate and HDR detection
- Recommended for production validation
Not sure which features work on your target devices? Check the compatibility matrix above or test using the Basic Example to see what data is available.