Web arayüzü geliştirme macerasıyla dünyaya merhaba diyen JavaScript günümüzde Hibrit uygulamalarında öncüsü olmuştur. Bu konuda bir çok proje hayata geçirilmiş ve bir çoğu kendi hedef kitlesince benimsenerek ilerlemiştir. Mobil iletişim vs. araçların yaygın olarak kullanılması ile de artık Javascript ile artık mobil uygulamalarda geliştirilmesini sağlayan teknolojilerin çıkması ve ilerlemesini sağlamıştır. JavaScript ile artık;
- Window/MacOS/Linux için masaüstü uygulamalar,
- Anroid/iOS için mobile uygulamalar
geliştirebilirsiniz.
Masaüstü Uygulamalar Geliştirmek
JavaScript ile masaüstü sistemlerde kullanılmak üzere küçük ve orta hatta büyük ölçekli uygulamalar geliştirilebilir. Bu geliştirme ortamlarının en başarı olanları Intel firması sponsorluğunda geliştirilen NW.js ve Github sponsorluğunda geliştirilen ElectronJS‘dir. Şimdi bunların teknik özelliklerini kısaca karşılaştıralım.
NW.js | ElectronJS | |
---|---|---|
Proje Başlangıç Tarihi | 2011 | 2013 |
Sponsorlar | Intel | Github |
Lisans Tipleri | Open Source, MIT Licence | Open Source, MIT Licence |
Kullanılan Yerleşik Tarayıcı | Chromium | libchromiumcontent |
Uygulamanın Başlama Yeri | Bir HTML dosyası | Bir javascript dosyası |
Kurulum veya Dağıtım Boyutu | 139 MB (52 MB ile sıkıştırma ile) | 125 MB (45 MB sıkıştırma ile) |
Window Platform Desteği | Windows 7+ (x86 ve x64) | Windows 7+ (x86 ve x64) |
Windows XP Desteği | LTS versiyonunda var. | Yok |
Mac Platform Desteği | Mac OS X.9+ | Mac OS X.9+ |
MacOS X.6 | LTS versiyonunda var. | Yok |
Mimari Desteği | 32 Bit (Win), 64 bit (Win/Mac) | 32 Bit (Win), 64 bit (Win/Mac) |
Chrome API desteği | Var | Yok |
Eklenti Desteği | NaCL, Pepper | Pepper |
Adobe Flash Desteği | Eklenti ile mevcut | Eklenti ile mevcut |
Mac Store Desteği | Var | Var |
Windows App Store Desteği | Var | Windows 10+ |
Uygulama İmzalama | Var | Var |
Otomatik Güncelleme | Unclear (module ile) | Squirrel ile |
Kod Güvenliği | V8 Snapshot | ASAR Archive Desteği |
SSL Sertifika | Var | Kısmen |
Yazdırma Önizleme | Var | Yok |
Hata Ayıklama | DevTools + extensions | Devtron Module |
Octane 2.0 Score | 27205 | 27343 |
NW.js ve ElectronJS arasında pek bir fark bulunmamaktadır. Fakat projeler incelendiğinde NW.js size normal bir web ortamının mümkün olduğunca taklit eden bir programlama ortamı vermeye çalışır. ElectronJS’de çok sayıda platformlara özgü entegrasyonlar mevcuttur. Bu da bazen bir özellikten faydalanmak için programcının electron kodu yazması demektir.
Yakın zamanda duyurulan Nidium projesi Chromium veya NodeJS’i kullanmadan uygulama geliştirmenize izin verir. Mozilla JavaScript moturu SpiderMonkey ile geliştirilmiştir. ElectronJS ve NW.js’den farklı olarak içerisinde bir tarayıcı barındırmaz. Ancak içinde DOM uyumlu bir katmana sahip küçük bir düzen motoru ile birlikte gelir, böylece uygulamanızda ReactJS gibi çerçeveler kullanmanıza müsade eder. Ayrıca Nidium projesi mobile cihazlarda da çalışabilir.
Mobil Uygulamalar Geliştirmek
Mobile iletişimin ve cihazların gelişmesi, firmaların bu konuda teknik donanımlara yatırım yapması ve daha küçük fakat daha çok işlem ve hafıza gücüne sahip cihazlara da artık JavaScript ile uygulama geliştirilmeye başlandı. JavaScript ile Mobile uygulama geliştirme ortamlarını kısaca incelersek;
- Apache Cordova
- React Native
hemen hemen diğer bütün teknolojiler bu iki teknolojinin çalışma prensibi etrafında küçük farklılıklar ortaya koyarak çalışmaktadır. Apache Cordova bir çok mobile cihaza uygulama çıkartırken, React Native şu an için sadece Android ve iOS işletim sistemine sahip cihazlara uygulama çıkarabilmektedir.
Apache Cordova çalışma prensibi olarak tıpkı masaüstü geliştirme ortamında belirttiğim gibi kodunuzu yerleşik olarak işletim sisteminin içinde var olan tarayıcıya benzer bir tarayıcı (WebView) içinde kodunuzu çalıştırmasıdır. Bu şekilde mobil hibrit uygulama elde edilmiş olur ve uygulamanızı bir çok ortama rahatlıkla taşıyabilirsiniz.
React Native 2015 yılında önce iOS sonrasında Android platformunda yayınlanan belki de şimdiye kadarki alternatif çalışma ve geliştirme yöntemlerinin en iyisidir. React Native farklı olarak kodunuzu JavaScript ile yazmış olmanıza rağmen uygulamanızı yerel (Native) olarak çalıştırır.
Prensip olarak JavaScript ile geliştirdiğiniz Virtual DOM görünümlü View veya Componentler derlenme ve çalıştırma sırasında Native olarak hazırlanmış View ve Componentler arasında bir köprü kurarak WebView fikrinin aksine tamamen Native Componentler ve View’ler uygulamanızda çalıştırılıyor. Bu şekilde siz JavaScript yazarsanız ama derlenme ve çalıştırma sırasında Native olarak hazırlanmış kod blokları çalışır.
Kaynaklar:
http://www.wikipedia.org
https://electronjs.org
https://nwjs.io/
https://facebook.github.io
https://cordova.apache.org/
Cevapla
Want to join the discussion?Feel free to contribute!