Callstack Apr 14, 2021

Bringing Hermes to iOS in React Native

Article Summary

Callstack just brought Hermes to iOS, and the performance gains are real. After years of Android exclusivity, React Native's lightweight JavaScript engine finally runs on Apple platforms.

Hermes was originally Android-only when Meta released it in 2019. Callstack led the effort to compile and integrate Hermes for iOS and macOS, shipping it in React Native 0.64. This article breaks down the technical work behind making it happen.

Key Takeaways

Critical Insight

React Native developers can now use Hermes on iOS for faster startup times and improved memory efficiency, closing the performance gap with Android.

The article links to a deep technical breakdown of how they actually compiled Hermes for Apple's toolchain and integrated it with React Native's architecture.

About This Article

Problem

React Native developers on iOS couldn't use Hermes after Meta released it in 2019. The engine was only available for Android, so Apple platform users missed out on its faster startup times and lower memory usage.

Solution

Callstack took on the work to bring Hermes to iOS and macOS. They implemented bytecode precompilation and AOT compilation to remove JIT overhead and speed up app launches on Apple devices.

Impact

React Native 0.64 shipped with this work included. iOS developers could now match the startup performance and memory efficiency that Android developers had, closing a gap that had existed between the two platforms.