Mobil uygulama geliştirme trendleri
Mobil cihazlar günlük hayatta vazgeçilmez hale gelmiştir. Akıllı cihazlar olarak diye de adlandırılan bu cihazlar yardımı ile verilere, bilgilere kısacası ihtiyacımız olan birçok şeye bu cihazlara geliştirilen mobil uygulamalar yardımı ile erişme imkanı bulunmaktadır.
Mobil uygulamalar, şirketler, bağımsız geliştiriciler tarafından geliştirilmekte olup, hemen hemen tüm sektörlerin (eğlence, pazarlama, finans, navigasyon vs.) hizmetine sunulmuştur.
Mobil uygulamalar geliştirilirken 3 farklı teknolojik yaklaşım göz önünde bulundurularak geliştirme yapılır.
Bunlar; 1 ) Mobil web uygulaması (HTML5- CSS3- JavaScript) 2 ) Hibrit (hybrid) uygulama 3 ) Cihaza özgü (native) uygulama Mobil Web Uygulaması: HTML5, CSS3, JavaScript gibi web teknolojileriyle ile hazırlanan, web - mobil browserlerden uygulamaya girilebilen, istek durumuna göre mobil cihazları algılayabilip mobil uygulama gibi açılan, genelde mobil cihazların tarayıcılarında uygun görüntüyü alan (responsive tasarım) uygulamalardır.
Bu uygulamalar sunucular üzerinden yayınlanan web sitelerdir. Bu sebeple telefon marka, model ve işletim sisteminden bağımsızdır, herhangi bir mobil cihazın tarayıcısından görüntülenebilir.
Native Mobil Uygulama: Native mobil uygulamalar cihaza özel geliştirilen, her platform için kendi sağlayıcısının ürettiği veya önerdiği IDE (Uygulama geliştirme ortamı) üzerinde geliştirilme yapılan uygulamalardır. Bu uygulamalar kendi platform sağlayıcılarını uygulama mağazalarından yayınlanarak kullanıcılara ulaştırılırlar. Hibrit (Hybrid) Mobil Uygulama: Hybrid mobil uygulamalar, hem native hem de HTML5, CSS3 ve JavaScript kullanılarak oluşturulan karma bir platformdur.
Kısaca native kod içerisinden mobil web uygulamalarına erişebilen uygulamalardır. Hibrit uygulamaları hazırlamak için PhoneGap, PhoneGap Build, Titanium, Kendo UI, Sencha gibi geliştirme yöntemleri kullanılır. Hibrit uygulamalar hem uygulama mağazasından dağıtılabilir, hem de web uygulama özelliklerini taşırlar. Mobil cihazların donanımlarına erişim sağlayabiliyor. Bu 3 platformun kısaca özelliklerinden, avantaj ve dezavantajlarından bahsetmek gerekirse;
Mobil Web uygulama;
- Ortamdan bağımsız HTML5 – JavaScript - CSS3 ile geliştirilebilir.
- Tüm web, mobil tarayıcılar tarafından desteklenir.
- Tek bir uygulama tüm tarayıcılardan desteklendiği için geliştirme maliyeti azdır.
- Geliştirme ve güncelleme yapılması daha kolaydır.
- Güncelleme ve geliştirmelerde son kullanıcı etkilenmez veya kullanıcının herhangi bir işlem yapmasını gerektirmez, değişiklikler otomatik olarak yansır.
- İşlemci hızından bağımsız çalışır. Performans açısından yavaştırlar.
- Çalışırken internet bağlantısına ihtiyaç duyarlar.
- Tüm telefon ve tabletlerde aynı görselliği sunar, genelde responsive tasarım olurlar.
- Donanım özelliklerinin birçoğunu kullanamaz.
Hibrit(Hybrid) Mobil Uygulamalar:
- Geliştirme için farklı platformlar kullanıldığı için seçilen platformu öğrenmek gerekiyor ve her platformun kendi içinde avantaj ve dezavantajları bulunmaktadır.
- "Bir yerde yaz, her yerde çalışsın" sloganından yola çıkarak tek bir kod çıktısı ile birden çok platformda çalıştırılabilmektedir.
- Telefonun birçok donanımına erişim sağlanabildiği için bu özellikler HTML5 ile kullanılabilmektedir.
- Hibrit bir uygulama olsa da native uygulama esnekliğine sahip değildir.
- Performans olarak native uygulamalardan yavaştır.
- Güvenlik olarak native uygulamalardan daha az güvenlidir.
Native Mobil Uygulamalar
- Cihazlara özel olarak geliştirilmektedir.
- İlgili platformun desteklediği geliştirme ortamı kullanılmaktadır.
- Cihazın tüm donanımını kullanabilen, animasyon ve grafikleri yüksek kalitede işlemektedir.
- İşletim sistemi ile birebir uyumlu çalıştığından en performanslı uygulamalardır.
- Her platform ve cihaz için ayrı ayrı kodlanması gerekir. Uygulama geliştiren kişiye/kişilere vakit ve maliyet olarak daha fazla yük bindirmektedir.
- Çevrimdışı da çalışmaktadır.
- Her geliştirme ve güncelleme işlemi doğrudan 3. kullanıcıyı etkilediğinden herhangi güncellemede, kullanıcı uygulama mağazasından güncelleme yapmaktadır.
- Mobil Cihaz boyutlarına göre ayrı ayrı tasarımlar yapmak gerekir.
Tüm bu bilgiler ışığında hangi platformu kullanmalıyım diye soracak olursanız, bunun net bir cevabını bulamayacaksınız. Bir uygulamayı geliştirmeye başlamadan önce o uygulamanın iyi bir şekilde analizlerinin yapılması, ihtiyaçlarının belirlenmesi, kullanıcı kitlesinden uygulama içeriklerine kadar bütün gereksinimleri inceleyerek hangi platformun daha iyi olacağına gereksinimlerinize göre karar verebilirsiniz.