What is Hermes in React Native?
Answer
Hermes is an open-source JavaScript engine optimized specifically for React Native, developed by Meta. It became the default JS engine for React Native 0.70+ (on Android) and 0.71+ (on iOS). Key optimizations: (1) Ahead-of-Time (AOT) compilation: Hermes pre-compiles JavaScript to bytecode during the app build process (not at runtime). The app ships bytecode instead of raw JS source — massively improves startup time; (2) Smaller memory footprint: Hermes is designed for mobile — uses significantly less memory than V8 or JSC (JavaScriptCore); (3) Faster Time to Interactive (TTI): because JS is pre-compiled, the app starts faster — critical for user retention; (4) Garbage collection optimized for mobile — reduces GC pauses. Before Hermes: React Native used JavaScriptCore (the Safari engine). JSC had to parse and JIT-compile JS at runtime — slower startup and higher memory. Enabling Hermes: new projects have it by default. // android/app/build.gradle: project.ext.react = [ enableHermes: true, ] // ios/Podfile: use_react_native!( :hermes_enabled => true ). Hermes Debugger: works with the Hermes Debugger in React Native DevTools (not Chrome DevTools which worked with JSC). Flipper or the new React Native DevTools. Performance impact: significant improvement — apps using Hermes see 10-30% faster startup, 40-50% less memory usage in benchmarks. All new React Native projects should use Hermes.
Previous
What is the difference between development and production builds in React Native?
Next
What is the Image component in React Native?