FumadocsRN Device Geometry

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

MethodiOSAndroidNotes
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/AAndroid 10.0+ (API 29+)Foldables only
stopHingeMonitoring()N/AAndroid 10.0+ (API 29+)Foldables only

Geometry Features

FeatureiOSAndroidDetails
Display CutoutsiOS 11.0+Android 9.0+ (API 28+)SVG paths, bounds, safe areas
Dynamic IslandiOS 16.0+N/AiPhone 14 Pro and later
Notch DetectioniOS 11.0+Android 9.0+ (API 28+)iPhone X and later
Punch-hole CamerasN/AAndroid 9.0+ (API 28+)Various shapes supported
Corner RadiusiOS 11.0+Android 12.0+ (API 31+)Precise radius values
Bezier CurvesiOS 11.0+Android 12.0+ (API 31+)Requires supportComplex: true
SVG PathsiOS 11.0+Android 9.0+ (API 28+)Requires includePaths: true

Display Metrics

MetriciOSAndroidDetails
Width/HeightiOS 9.0+Android 9.0+ (API 28+)Logical points
Scale FactoriOS 9.0+Android 9.0+ (API 28+)Density multiplier
Refresh RateiOS 10.3+Android 11.0+ (API 30+)ProMotion on iOS, variable on Android
OrientationiOS 9.0+Android 9.0+ (API 28+)Portrait, landscape variants
HDR CapabilitiesiOS 10.0+Android 11.0+ (API 30+)HDR10, Dolby Vision
Color GamutiOS 10.0+Android 11.0+ (API 30+)sRGB, P3, etc.

Events

EventiOSAndroidTrigger Condition
GEOMETRY_DID_CHANGEiOS 9.0+Android 9.0+ (API 28+)Any geometry change
ORIENTATION_CHANGEiOS 9.0+Android 9.0+ (API 28+)Device rotation
DISPLAY_CONNECTEDiOS 9.0+Android 9.0+ (API 28+)External display connected
DISPLAY_DISCONNECTEDiOS 9.0+Android 9.0+ (API 28+)External display removed
HINGE_ANGLE_CHANGEN/AAndroid 10.0+ (API 29+)Foldable device only

React Hooks

HookiOSAndroidNotes
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 cutouts array

Notch

  • Availability: iPhone X through iPhone 13 series
  • iOS Version: iOS 11.0+
  • Cutout Shape: Various (rounded rectangle)
  • Detection: Available via cutouts array

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 cutouts array

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 corners object

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(); // false

Feature 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.