expo-battery

iOS runs the installed BatteryModule.swift compiled by the Expo Swift route; Android registers a package-local ExpoBattery seam. upstream expo-battery JS runs unchanged on both.
90%
API coverage
No visual proof cases have been published for this package yet. The registry summary below describes what the compat layer implements.
Working (5)
upstream isAvailableAsync/getBatteryLevelAsync/getBatteryStateAsync/isLowPowerModeEnabledAsync/isBatteryOptimizationEnabledAsync/getPowerStateAsync/hooks run unchanged; requireNativeModule("ExpoBattery") answers from compiled Swift on iOS: isSupported=false-1 battery levelUNKNOWN statelowPowerMode=falsestartObserving/stopObserving per event; Android seam serves the shared battery snapshot; upstream JS handles the iOS-missing isBatteryOptimizationEnabledAsync method
Missing (2)
real battery telemetry and change events are unavailable in the browser worker; iOS mirrors the simulator branch of the Swift sourcewith no paired iOS simulator run recorded