Android, Windows ve iPhone Mobil Platformlarında çalışabilen mobil uygulama nasıl geliştirilir, HTML5 – CSS3 ve JS ile kolay mobil uygulama nasıl hazırlanır?

>> HTML5, CSS3 ve JavaScript (Üçlü)’nün Native Mobil Uygulamalar (APP) Nazaran Önemli Avantajları Nelerdir?
>>> Önemli ve Sıkça Kullanılan Üçlüler İçin Frameworkler
>> FrameWork – Mobil Uygulama Geliştirme Ortamları
>> Adobe PhoneGap
>> Ionic
>> NativeScript
>> ReactNative
>> Diğer Gelişmiş Mobil Uygulama Geliştirme Ortamları
>> Yazılım Mühendislerinin En Çok Tercih Ettiği Ortam Hangisi?

IOS, Windows Phone ve Android fark etmeksizin her üç mobil platform içinde mobil uygulama geliştirmek artık eskisine göre çok daha kolaylaşmıştır. Hiçbir kod bilgisi veya program bilgisi olmadan çevrim içi (online) ortamlarda mobil uygulama geliştirip, hazırlayabilecek bir sürü platform mevcuttur. Ancak burada biraz kodlama bilgisi dâhilinde mobil uygulama yapma ele alınmıştır.

Mobil Uygulama (APP) geliştirme hususunda zaman ve bütçe olmazsa olmazdır. Bütçe ve zaman kısıtlılığı birçok yazılımcı, kurum sahibi ve webmaster için kuşkusuz söz konusudur. Bütün mobil platformlar için ayrı mobil uygulama hazırlamak zaman ve bütçe gerektirmektedir. Native uygulamalara ek çözüm sunan ve işlevi güçlü uygulamalar geliştirebilmek artık mümkün hale gelmiştir. Öyle ki, HTML5, CSS3 ve JavaScript dilleri ile uygulama geliştirme eğilimi popüler bir hal almıştır.

*** Daha pratik ve tasarruflu anlatım açısında HTML5, CSS3 ve JavaScript dilleri için “Üçlü” kavramını kullanacağız.

HTML5, CSS3 ve JavaScript (Üçlü)’nün Native Mobil Uygulamalar (APP) Nazaran Önemli Avantajları Nelerdir?

Yazılım konusunda “Write one, use everywhere (Bir kez yaz, her yerde kullan)” kavramı esastır. HTML5, CSS3 ve JavaScript dilleri ile adeta Web Sayfası hazırlanmaktadır.

Mantık: Web ara yüz ve programlama dilleri ile kodlama yapıyor, Frameworkler ile işlevleştiriyoruz.

Üçlü (HTML5, CSS3 ve JavaScript) ile mobil uygulama geliştirme sürecinde olmazsa olmaz unsur “FRAMEWORK”tür. Bu Frameworkler native uygulamalar gibi cihazın donanımlarına erişmeyi, tasarımın bütüncülleşmesini sağlamaya yardımcı olmaktadır.

Önemli ve Sıkça Kullanılan Üçlüler İçin Frameworkler

  1. Sencha Touch
  2. PhoneGap
  3. Jquery
  4. jQueryMobile
  5. Cordova
  6. Titanium
  7. WorkLight
  8. Corona Labs
  9. Corona
  10. Enyo
  11. iOnic
  12. Lungo
  13. JQTouch

Biz, ilk etap olarak Cordova – PhoneGap ile Mobil Uygulama geliştirmeye değineceğiz.

FrameWork – Mobil Uygulama Geliştirme Ortamları

Mobil uygulama geliştirmede ilk yaklaşım IOS, WİNDOWS PHOHE ve ANDROID vb. platformlar için “Native” uygulama geliştirmektir.

İkinci yaklaşım Web Teknolojileri kullanılarak uygulama geliştirilmesidir (HTML5, CSS3, JS vb.). İkinci yaklaşımda ayrıca PhoneGap gibi araçlar ile WebView içerisinde yayınlama durumu söz konusu olabilmektedir.

Üçüncü yaklaşım ise “Hibrid” uygulama geliştirmektir. Üç yaklaşımında avantajları ve dezavantajları vardır.

Native uygulamalarda işlev ve komutlara daha hızlı tepki söz konusudur. Yerleşik özellikleri platform niteliğine uygun olarak çözümler sunar.

Facebook; “Native uygulama geliştirmenin web temelli uygulamalara göre çok daha iyi ve tutarlı ortam sunduğunu” belirtmektedir.

Fakat native uygulama geliştirmek zaman ve ek bütçe gerektirmektedir. Her platform için ayrı native uygulama geliştirilmesi gerekir. Her platform da birbirinden farklı ortam ve teknoloji kullanır. IOS; Swif veya Objective-C ile kodlama gerektirirken, Android içinde Java vb. programlama dilleri ile kodlama gerekmektedir. Kod yazma süreci de zaman alan zahmetli çalışmalardandır. Native uygulamalara alternatif olan, kolay ve tüm platformlarda çalıştırlabilen ise 2. ve 3. yaklaşımlardır; Hibrid – WebView.

Adobe PhoneGap

Hibrid geliştirmede en popüler ortamlardan birisidir. Açık kaynak kodlu Apache Cordova Kütüphanesi üzerinden kurulmuştur ve HTML5, CSS3 ve JavaScript kullanılarak uygulama geliştirme olanağı sunulmaktadır. Temelde WebView mantığında çalışan ama sahip olduğu zengin kütüphane sayesinde Native uygulamalar gibi performans sağlayan, cihazı GPS, ivmeölçer, kamera vb. özelliklerine erişebilen ve kullanmaya imkan tanıyan uygulamaların geliştirilmesi mümkündür.

Ionic

Hibrid alanında popüler Framework’lerdendir. Mobil gezinim, kaydırma listesi, açılır pencere vb. mobil bileşenler içerir. Bu bileşenler Angular JS framework’ünün üzerine Angular directive kullanılarak oluşturulmuşlardır. Ionic de PhoneGap gibi Cordova üzerine inşa edilmiştir.

NativeScript

Açık kaynak kodlu IOS ve Android tabanlı uygulama geliştirme ortamı sunan, react native benzeri yaklaşımla işlev gösteren uygulamaların geliştirilebildiği gelişim alanıdır. Cordova aksine HTML, CSS ile oluşturulmuş WebView deneyimi sunmaz. NativeScirpt teknolojisi, JavaScriptCore ile cihazlarda çalışan JavaScript programlama dilini temel alır.

ReactNative

Bilindik Web Teknolojileri kullanılarak mobil uygulama geliştirme imkân tanır. Yüksek kaliteli mobil uygulama sunmayı hedeflemektedir. Javascript programlama dili ile uygulama geliştirilip, JSX ile ara yüzü tasarlanmaktadır. Native performansı sağlanmaktadır.

Diğer Gelişmiş Mobil Uygulama Geliştirme Ortamları

Artık günümüzde Web Site ve Bilgisayar Programı gibi Mobil Uygulama geliştirmek içinde birden fazla alternatif bulunmaktadır. Bunlardan popüler diğer çözümler şunlardır;

Xamarin: Microsoft desteklidir. C# programlama dili ile tüm mobil platformlara uygun mobil uygulama geliştirme imkânı sunar.

Flutter: Google’ın tanıttığı açık kaynak kodlu mobil APP geliştirme SDK’sıdır. Dart dili ile yazılmıştır.

Jquery Mobile: Temeli HTML5 olan mobil uygulama geliştirme framework’üdür. Mobil ve Tarayıcı uyumlu uygulama geliştirme imkânı sunmaktadır.

Mobile Angular JS: Bootsrap ve Angular Framework’ünün birleştirilmiş halidir. HTML5 tabanlı hem mobil hem de tarayıcı uyumlu uygulama geliştirmeye imkân sunar.

Yazılım Mühendislerinin En Çok Tercih Ettiği Ortam Hangisi?

React Native!

Çoğu yazılım uzmanı mobil uygulama geliştirmede genellikle React Native tercih etmektedir. Bunun başlıca sebeplerini şu şekilde sıralamak mümkündür;

  • Mevcut proje devamı (React),
  • Çok sayıda geliştiricisinin olması ve açık kaynaklı kodlu oluşu,
  • Javascript temelli olması (JS, günümüzün en büyük atakta olan dillerinden ve Node.js ile çok daha büyük atağa geçmiştir.)

Mobil uygulama geliştirmede nereden nasıl başlayacağınıza, geliştireceğiniz uygulamaya ve dil bilgisi düzeyinize göre karar verebilirsiniz. Sonraki uygulama geliştirme serisinde Apache Cordova & PhoneGap ile HTML5, CSS3 ve JS tabanlı tüm platformlar için mobil uygulama geliştirmeyi ele alacağız.

Mevlüt Baki TAPAN