Code obfuscation
- React Native kursu
- Uzman
- Ders 37/47
- 5 dk
Code obfuscation ve minification öğrenirsin.
Code obfuscation nedir?
Code obfuscation, derlenen JavaScript kodunu insanların okumasını zorlaştırmaktır. Değişken adları kısaltılır, boşluklar atılır, mantık yeniden düzenlenir. Sonuç: tersine mühendislik yapan kişi anlamsız kod görür.
React Native'de minification bunun temelidir. Hermes motoru JS'i byte koduna çevirir; bu da okunabilirliği düşürür. Üretim derlemesinde minification varsayılan olarak açıktır. Ek koruma için react-native-obfuscating-transformer gibi araçlar kullanılır. Obfuscation uygulamayı yavaşlatmaz; yalnızca kodu gizler. Bu, ticari mantığın çalınmasını zorlaştırır.
Hermes ve üretim derlemesi
Hermes, React Native için optimize edilmiş bir JS motorudur. JS kodunu byte koduna çevirir; bu hem hızı artırır hem de kodu gizler. Üretim derlemesinde Hermes varsayılan olarak açıktır.
app.json'da "jsEngine": "hermes" ayarıyla etkinleştirilir. Hermes çıktısı doğrudan okunamaz; tersine mühendislik araçları gerektirir. Bu, obfuscation'ın temel katmanıdır. Üzerine ek obfuscation araçları eklenebilir; ama Hermes tek başına da ciddi koruma sağlar. Geliştirme derlemesinde Hermes bazen kapalı olur; hata ayıklama kolaylığı için.
Uygulama Hermes ayarını ekle
Bir app.json iskeletine "jsEngine" alanı ekle. Değer "hermes" olsun. Alan "expo" bölümü içinde yer alsın.
Başlangıç kodu
{
"expo": {
"name": "Uygulama"
// jsEngine ayarını buraya ekle
}
}Örnek çözüm
{
"expo": {
"name": "Uygulama",
"jsEngine": "hermes"
}
}Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Minification ne yapar?
const longName = getValue();- Ekranı kilitler
- Uygulamayı hızlandırır
- Değişken adlarını kısaltır Doğru cevap
- Veritabanını şifreler
Açıklama: Minification değişken adlarını kısaltır ve boşluğu atar.
2 Hermes motor ayarı
"jsEngine": ____
"jsEngine": "hermes"
Açıklama: jsEngine hermes ayarı Hermes'i açar.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
obfuscation |
Kodu gizler |
minification |
Adları kısaltır |
Hermes |
Byte koduna çevirir |
app.json |
Ayar dosyası |