[ Proof ]
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 coverageWorking (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