Praktik pertama: menambahkan Hermes ke project React Native, baik lewat opsi default, konfigurasi Android di gradle.properties, maupun iOS di Podfile. Termasuk menyiapkan build environment Android/iOS, membangun hermesc dari source, dan memverifikasi Hermes benar-benar berjalan di perangkat atau emulator.

Di episode 2 kita memahami arsitektur Hermes secara teori. Sekarang saatnya mengotori tangan: menginstal dan menyiapkan Hermes di project React Native.
Episode 3 berisi tiga hal: menambahkan Hermes ke project, menyiapkan build environment untuk Android dan iOS, lalu memverifikasi bahwa runtime yang berjalan benar-benar Hermes. Sepanjang jalan, kita juga membangun hermesc dari source sebagai persiapan episode 4.
Kabar baik: sejak React Native 0.70, Hermes adalah engine default di Android dan iOS. Jika project kalian dibuat dengan versi itu, Hermes sudah aktif tanpa konfigurasi tambahan. Tapi penting tahu cara mematikan dan menyalakannya kembali — karena di project lama atau saat rollback, kalian akan butuh ini.
Buat project baru dengan template resmi, lalu pastikan Hermes aktif:
npx react-native init BelajarHermes --version latest
cd BelajarHermes
npx react-native configPada React Native modern, output dari npx react-native config tidak langsung menampilkan engine. Cara pasti mengeceknya adalah di file konfigurasi native, seperti yang kita bahas di bawah. Untuk project lama yang belum memakai Hermes, kalian hanya perlu mengaktifkan dua flag berikut.
Untuk Android, Hermes dikontrol dari file android/gradle.properties. Tambahkan baris ini:
hermesEnabled=trueNilai false akan mengembalikan JavaScriptCore. Setelah mengubah file ini, sinkronkan Gradle:
cd android
./gradlew cleanInfo
Di React Native 0.64 ke atas, pengecekan hermesEnabled dilakukan otomatis oleh Gradle plugin. Pastikan tidak ada konfigurasi tumpang tindih di android/app/build.gradle yang menimpa nilai dari gradle.properties.
Untuk iOS, Hermes dikontrol dari ios/Podfile. Aktifkan dengan baris :hermes_enabled pada target aplikasi:
# IOS
platform :ios, min_ios_version_supported
prepare_react_native_project!
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => true
)Setelah mengubah Podfile, install ulang pods:
cd ios
bundle exec pod installbundle exec pod install membaca Podfile dan menyertakan runtime Hermes ke dalam project Xcode. Tanpa baris :hermes_enabled => true, iOS akan jatuh kembali ke JavaScriptCore.
Meski runtime Hermes ikut ter-bundel di React Native, membangun hermesc sendiri berguna untuk eksperimen bytecode di episode 4 dan 5. Repo yang di-clone di episode 0 dibangun dengan CMake:
cd hermes
cmake -S . -B build -DCMAKE_BUILD_TYPE=Releasecmake --build build --target hermesc -j 4Jika berhasil, binary hermesc berada di build/bin/hermesc. Verifikasi:
build/bin/hermesc -versionKeluaran menampilkan versi Hermes dan SHA commit yang dipakai. Cara cepat lain yang tidak perlu build lama: install compiler yang sudah jadi dari npm, misalnya hermes-compiler, dengan npm install -g hermes-compiler.
Sebelum menjalankan app, pastikan toolchain Android lengkap:
java -version.Jalankan pemeriksaan otomatis:
npx react-native doctorPerintah ini memvalidasi JDK, Android SDK, emulator, dan koneksi perangkat. Apabila semua hijau, jalankan app:
npx react-native run-androidUntuk iOS, syarat utama: macOS dengan Xcode dan CocoaPods. Pastikan lisensi Xcode disetujui:
sudo xcodebuild -license acceptKemudian build dari project Xcode atau langsung dari CLI React Native:
npx react-native run-iosSimulator iOS memakai Hermes sejak React Native 0.70, sehingga hasil verifikasi di langkah berikut berlaku juga di sini.
Ada tiga cara memastikan Hermes benar-benar yang berjalan.
Cara 1 — melalui global HermesInternal. Hermes mengekspos object global HermesInternal. Cek lewat developer console atau di dalam kode:
const isHermes = typeof globalThis.HermesInternal === "object";
console.log("Running on Hermes:", isHermes);Cara 2 — lewat menu developer. Di emulator, tekan kombinasi Ctrl+M (Android) atau Cmd+D (iOS) untuk membuka Dev Menu, lalu buka Settings. Jika engine yang ditampilkan adalah Hermes, konfigurasi berhasil.
Cara 3 — lewat ADB. Untuk Android, tekan Ctrl+M, pilih View Logs, dan cari baris yang menyebut Hermes di adb logcat. Kita bisa menyaringnya langsung:
adb logcat -s ReactNative:V | grep -i hermesSuccess
Jika HermesInternal terdefinisi dan Dev Settings menampilkan Hermes, konfigurasi selesai. Mulai episode 4, kita akan bermain dengan bytecode dan pipeline build — dua hal yang dihasilkan oleh konfigurasi ini.
Hermes sudah terpasang dan terverifikasi. Inilah yang wajib kalian bawa pulang:
hermesEnabled=true di android/gradle.properties.:hermes_enabled => true di ios/Podfile, lalu pod install.hermesc bisa dibangun dari source dengan CMake atau dipasang cepat dari npm.HermesInternal, Dev Menu settings, atau adb logcat.Selanjutnya, di episode 4 kita membedah pipeline build: integrasi Hermes dengan Metro bundler, peran HermesBytecodePlugin, dan cara membaca artifact output beserta source maps. Sampai jumpa!