Mobil Uygulama Geliştirme !
Bugün mobil uygulama geliştirmek isteyenler için güzel bir rehber hazırladım bu rehberi sizinle paylaşmak isterim. Öncellikle Native ve Hybrid dillerden bahsetmek istiyorum.
Native Uyuglamalar: Native uygulamalar üzerinde çalıştığı platformun donanımsal ve yazılımsal olanaklarına doğrudan eişebilir bu da Native uygulamalara Hybrid’e göre yüksek performans kazandırır. Native uygulamalar yazmak için bir çok dil bilmek gerekir bu da en büyük dezavantajdır. Örneğin bir Android uygulama geliştiremek isteyen bir kişi Java veya Kotlin öğrenerek, IOS uygulama geliştirmek isteyen biri Objective-C veya Swift gibi dillerini öğrenerek mobil uygulama geliştirebilir. Böylelikle Android ve IOS platformunda yüksek performanslı uygulamalar geliştirilebilir.
Hybrid Uygulamalar: Hybrid uygulamalar Native uygulamalara göre bulunduğu platformun olanaklarına erişim bakımından Native uygulamlara göre dolaylı yoldan erişebilir. Bu da Hybrid uygulamalara bir dez avantajdır. Ama Hybrid dillerin en önemli avantajı genel olarak cross-platform diller olmalı böylelikle yazdığınız bir kod bazı konfigrasyonlar yaparak hem Android hem IOS hem Web uygulaması olarak çalışabilir. Benimde naçizane tavsiyem Hybrid diller öğrenmekten yana çünkü Hybrid diller sayesinde çok daha hızlı çalışabilirsiniz. Şimdi ise bu Hybrid dillerden bahsetmek istiyorum. Bunların en büyük ikisi Facebook tarafından geliştirilen React Native ve Google tarafından geliştirilen Flutter, bunun yanında Microsoft tarafından geliştirilen Xamarin gibi bir çok Hybrid dil bulunmakta şimdi ise Hybrid uygulama üzerinden ilerliyeceğiz.
Flutter: Flutter, Google tarafından oluşturulan açık kaynaklı bir UI yazılım geliştirme kitidir. Android, iOS, Windows, Mac, Linux ve web için uygulamalar geliştirmek için kullanılıyor. Flutter’ın ilk sürümü “Sky” olarak biliniyordu ve Android işletim sisteminde çalışıyordu.
Yazıldığı Diller: C++, C, Dart
React Native: React Native, Facebook, Inc. tarafından oluşturulan açık kaynaklı bir mobil uygulama çerçevesidir. Geliştiricilerin React’i yerel platform yetenekleriyle birlikte kullanmasını sağlayarak Android, iOS, Web ve UWP için uygulamalar geliştirmek için kullanılır. Qt için eksik bir bağlantı noktası da var.
Yazıldığı Diller: JavaScript, Java, Python, Objective-C
Xamarin: Xamarin, Mayıs 2011’de Mono, Xamarin.Android ve Xamarin.iOS’u yaratan mühendisler tarafından kurulan ve Microsoft’un sahip olduğu San Francisco merkezli bir yazılım şirketidir. Ortak Dil Altyapısı ve Ortak Dil Özellikleri’nin platform uygulamalarıdır.
Yazıldığı Diller: C#, Objective-C
Ionic
Ionic: Ionic, mobil uygulamalar için HTML5 bazında hazırlanmış açık kaynak bir yazılım iskeletidir ve ön uç için yazılmış olduğundan kullanıcılara odaklanmıştır. Kullanıcı arayüzlerini konu alan Ionic, sezgisel kullanımı ve mobil uygulamanın kullanılabilirliğini düzeltmeyi hedefler.
Yazıldığı Diller: Javascript
Native Script: İngilizceden çevrilmiştir-NativeScript, Apple iOS ve Android platformlarında uygulama geliştirmek için açık kaynaklı bir çerçevedir. Başlangıçta İlerleme tarafından tasarlandı ve geliştirildi. NativeScript uygulamaları JavaScript veya JavaScript’e aktarılan herhangi bir dil (TypeScript gibi) kullanılarak oluşturulur.
Yazıldığı Diller: JavaScript, TypeScript
Kivy: Kivy bir Python kütüphanesidir. Uygulama programlamak için kullanılır. Android, iOS, GNU/Linux, OS X ve Windows üzerinde çalışabilir. MIT lisansı altında dağıtılır. Kivy ücretsiz ve açık kaynak kodlu bir yazılımdır.
Yazıldığı Diller: Python, Cython
Şuanlık hybrid dilleri bu şekilde tutabiliriz. gelin bir de bunların özelliklerini bir grafik üzerinde görelim.
Yazma Kolaylığı
Öğrenme Kolaylığı
Ekosistem / Üçüncü Taraf Kütüphaneleri
Popülerlik ve Kapsam
Performans
Yerel Aygıt Özelliklerine Erişim
Kullanım
Peki Ne Seçmeliyim ?
- Burada kötü bir seçim yok, hepsi harika alternatifler!
- Öncelikle, anadili olanlara (Swift, ObjectiveC, Java) bağlı kalmak isteyip istemediğinize karar vermeniz ve iki şeyi öğrenmenin ve iki uygulama yazmanın dezavantajını kabul etmeniz gerekir. Bu çok iş ve iki dilde ve platformda ustalaşmak anlamına gelir.
- Ana dilleri kullanmak istemiyorsanız, ionic’in sunduğu şekilde paketlenmiş bir web uygulama çözümü isteyip istemediğinize karar vermelisiniz. Performans dezavantajına sahip olmakla birlikte.
- Ancak, performans sizin için çok önemliyse – veya birçok (gelişmiş) yerel cihaz özelliğine erişmeniz gerekiyorsa – React Native, Flutter veya NativeScript’e bakmak isteyebilirsiniz.
Ben de derslerime Flutter üzerinden devam ediceğim. Sonraki yazılarda görüşmek üzere kendinize iyi bakın.