Hermes JavaScript Motoru, React Native Uygulamalarının Hızını Arttırıyor - Technopat
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Nasıl Yapılır
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Nasıl Yapılır
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Makale - Hermes JavaScript Motoru, React Native Uygulamalarının Hızını Arttırıyor

Hermes JavaScript Motoru, React Native Uygulamalarının Hızını Arttırıyor

19 Temmuz 2019 - 17:00
- Haber, Makale, Mobil
react-native

Facebook, React Native ile yazılan mobil uygulamaların daha da hızlı çalışabilmesi için kendi JavaScript motorunu geliştirdi.

Hermes JavaScript motoru, Ract Native’in hali hazırda kullandığı açık kaynak kodlu JavaScriptCore motorundan çok daha hafif. Ayrıca bu motor, spesifik olarak React Native uygulamalarını hızlandırmak için optimize edilmiş. Bu da Hermes’i kullanan React Native uygulamalarının boyut olarak öncekine oranla daha küçük olacağı ve daha hızlı çalışacağı anlamına geliyor. Facebook’a göre Hermes’i kullanan React Native uygulamaları iki kat daha performanslı çalışıyor.

Hermes’in de açık kaynak kodlu olduğunu belirtmemiz gerek. Geliştiriciler kendi uygulamalarında Hermes’i kullanmak isterlerse bağlantıdaki resmi rehbere göz atabilirler.

Ne yazık ki Hermes şu an için sadece Android tarafında kullanılabiliyor.

React Native bir aplikasyonu Android için hazırlarken JavaScriptCore motorunu da onun içine ilave ediyor. iOS tarafında ise durum biraz daha farklı. JavaScriptCore aynı zamanda iOS’in kendi tarayıcısı olan Safari’de de kullanıldığı için işletim sisteminin içinde hali hazırda mevcut. Bu sebeple iOS için geliştirilen React Native aplikasyonlarında ekstradan JavaScript motoru bulunmuyor. Onun yerine işletim sisteminde mevcut olan motor kullanılıyor. (Belki Hermes’in varlığı ile bu durum ileride değişir.)

Peki JavaScript motorunun optimize edilmesi neden önemli?

Bu soruya cevap verebilmek için önce React Native’in neden var olduğunu ve onun nasıl çalıştığını anlamak gerekiyor.

Günümüzde iki dominant mobil platform var: Android ve iOS. Bu durum hem geliştiriciler, hem de kendi uygulamasına sahip olmak isteyen firmalar için büyük bir sorun. Geliştiriciler ya tek bir platforma yönelerek diğerini unutmayı tercih ediyor, ya da ikisi için de aynı uygulamayı ayrı ayrı yazarak zaman kaybediyor. Firmalar ise bir uygulamaya ihtiyaç duyduklarında, aslında her platfrom için ayrı ayrı olmak üzere iki uygulama edinmek zorunda kalıp büyük masrafların altında kalıyor.

iOS için Objective C veya Swift programlama dillerini bilmeniz, Android için ise Java veya C++ bilmeniz, daha sonra da ilgili  platformun seçtiğiniz dile uygun olarak hazırlanmış olan API’ını (uygulama programlama arayüzünü) öğrenmeniz gerekiyor. Yani aynı uygulamayı iki farklı platforma yazabilmek için minimum iki farklı dili bilmeniz ve iki farklı API’ı öğrenmeniz gerek.

Neyse ki günümüzde bu sorunun üstesinden gelmek için bazı çözümler mevcut. Facebook tarafından açık kaynak kodlu bir proje olarak geliştirilen React Native de onlardan biri. React Native sayesinde ayrı ayrı dilleri ve API’ları öğrenmek zorunda kalmadan, sadece JavaScript programlama dilini ve React Native’in API’ını öğrenerek iki platforma birden tek seferde aplikasyon yazmak mümkün. Bir kere yazılan aplikasyon, iki platformda birden çalışıyor.

Şahane değil mi? Android ve iOS kendi geliştirdikleri araç gereçleri bırakıp React Native’e neden destek vermiyor ki?

Çünkü bu yaklaşımın çok fazla dezavantajı var. Hepsinden tek tek bahsederek konuyu dallandırıp budaklandırmak istemiyorum. O yüzden sadece bir tanesine, yani bu yazıyı hazırlama sebebim olan dezavantaja odaklanacağım: Performans.

Hadi Android için bir uygulama yazdığımızı hayal edelim. Onu hem React Native, hem de C++ ile iki kez yazalım. Uygulma da ekranın merkezinden duran işlevsiz bir butondan ibaret olsun. Butonu ekranda görene kadar neler olup bitiyor görelim.

C++:

  • C++ ile yazılmış ve cihaza yüklenmeden evvel derlenmiş (yani makinenin anlayacağı 0’lara ve 1’lere dönüştürülmüş) olan uygulama Android’e buton çizme direktifi gönderir.
  • Android bu direktifi anlar ve ekrana butonu çizer.

React Native:

  • JavaScript derlenen değil, yorumlanan bir dil. Yani kod satırları program çalışmadan önce değil, çalıştıktan sonra 1’lere ve 0’lara dönüşüyor. Arada anlık olarak tercümanlık yapacak bir katmana ihtiyaç var; yani bir JavaScript motoruna. (JavaScriptCore ve Hermes bu görevi üstleniyor.)
  • Hatırlarsanız artık Andoid’in kendi API’ını değil de React Native API’ını kullanıyorduk. O yüzden bir çeviri işlemine daha ihtiyaç var. React Native Köprüsü denilen bir bileşen, motor tarafından yorumlanan direktifleri Android’in anlayacağa direktiflere çeviriyor ve işletim sistemine gönderiyor.
  • Nihayet uygulamadan direktif alabilmiş olan Android, butonu ekranın ortasında çizmeye başlıyor.

Velhasılkelam, işlem sayısı React Native tarafında daha fazla. Hız karşılaştırması yaparsanız, platformun kendi dili ile yazılan native (yerel) uygulamalar her zaman React Native uygulamalarından daha hızlı olacaktır. React Native’in Hermes gibi daha optimize çalışan bir motora bu yüzden ihtiyacı var. Motor ne kadar hızlı çalışırsa, native uygulama performansına biraz daha yaklaşılmış olunuyor. Darısı iOS’in başına.

 

Etiketler: cordovaDEVdeveloperflutterhybrid appjavascriptjavascript enginemobile devnativeprogramlamareact-nativeYazılım
PaylaşPaylaşTweetYollaPaylaş
Osman Kırpat

Osman Kırpat

Oynadığı oyun hakkında yazar, çizer, konuşur. Yazılım mühendisidir. Açık kaynak kodlu projeleri sever. Bir kez Linux'a alışmış, bir daha onu bırakamamıştır. #IUseArchBTW

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • 2000-3000 TL arası kablosuz mouse önerisi
  • Ehliyetsizlik cezası ebeveynin e-Devlet'inde gözüküyor
  • Kur'an-ı Kerim'de ilginç bir çelişki var
  • Heavy Rain 14 TL!
  • Trendyol'da Xiaomi TV indirimleri
  • Bajaj Pulsar NS 200 UG 2 motosikletin arka frenleri ses yapıyor
  • Okey Klasik 45'li Prezervatif 274 TL
  • Netspeed yine mi çöktü?
  • Mevcut duvar kâğıtlarınızı paylaşın
  • HyperX Cloud III S Wireless vs SteelSeries Arctis Nova 5

Technopat Video

Şu an oynayan

Fiyat/performans kralı geldi! Sinerji RTX 5070 sistem inceleme

Fiyat/performans kralı geldi! Sinerji RTX 5070 sistem inceleme

Fiyat/performans kralı geldi! Sinerji RTX 5070 sistem inceleme

Haber
Cep telefonları nasıl test ediliyor? Çin’deki fabrikaya gittik, gördük…

Cep telefonları nasıl test ediliyor? Çin’deki fabrikaya gittik, gördük…

Gündem
ASUS TUF Gaming T500MV

Laptop işlemcili kasa olur mu? ASUS TUF Gaming T500MV (2025) inceleme

Haber

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
  • Seçenekleri yönet
  • Hizmetleri yönetin
  • {vendor_count} satıcılarını yönetin
  • Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
  • {title}
  • {title}
  • {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Nasıl Yapılır
  • Yapay Zeka
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal