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
    • 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
    • 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

  • 3 bin TL'ye mikrofonu iyi oyuncu kulaklığı önerisi
  • Lenovo LOQ 15IAX9 alınır mı?
  • Detroit: Become Human 399 TL!
  • Hangi yazıcı satın alınmalı?
  • PlayStation 5 vs PC
  • 1000 TL'ye mouse önerisi
  • Sahibinden.com satıcısının güvenilir olduğu nasıl anlaşılır?
  • iPhone 13 iOS 18.7.1 güncellenmeli mi?
  • ASROCK B85M PRO3 anakarta ASROCK H97M ANNIVERSARY BIOS'u kurulmuş
  • Razer Cynosa Chroma klavyenin ışıkları yanmıyor

Technopat Video

Şu an oynayan

Apple’ı 20’ye katlayan saat! Huawei Watch GT 6 Pro incelemesi

Huawei Watch GT 6 Pro

Apple’ı 20’ye katlayan saat! Huawei Watch GT 6 Pro incelemesi

Akıllı Saat
Technopat ofisi Eylül ayında neler aldı? 

Technopat ofisi Eylül ayında neler aldı? 

Giyilebilir Teknoloji
Gigabyte AORUS FO27Q5P: 500 Hz QD-OLED ile rekabetçi oyunculara özel monitör

Gigabyte AORUS FO27Q5P: 500 Hz QD-OLED ile rekabetçi oyunculara özel monitör

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}
Onayı Yönet
En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla depolanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için 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 görüntüle
{title} {title} {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

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