Mobil Uygulama

Platformlar ve Geliştirme Aşamaları

Gün geçtikçe masaüstü uygulamalar yerini mobil uygulamalara bırakmaya başladı. Gelecek yıllarda teknolojik gelişmeler ile birlikte internet tabanlı uygulamalar mobil cihazlar ile tamamen bütünleşeceği kesin gibi. E-ticaretten, borsa işlemlerine, oyun sektöründen sağlık sektörüne kadar birçok alanda kullanılan mobil uygulamalar hemen hemen her yaştan insanın hayatına dokunmuş durumda. Peki, mobil uygulama geliştirme pazarının büyüklüğünü rakamlar ile açıklamaya çalışalım.

Geliştirilen mobil uygulamanın etkili bir şekilde kullanılabilmesi, gereksinimlere cevap verebilmesi için; Performans, Anlaşılabilirlik, Görünüm ve etkileşim (kullanıcı dostu arayüzler), Uygulama güvenliği Stabilite, Geliştirme, test ve bakım süreçleri, Yeni geliştirmelere destek, Kullanılacak platform ve eklenti desteği gibi birçok kriter saymak mümkündür. Bu açıdan bakıldığında günümüzde mobil uygulama geliştirirken teknolojik altyapıya uygun çözümler üretilmektedir. Mobil uygulama geliştirilirken projenin yapısına göre yerel (native), melez (hybrid), uyumlu (responsive) ve çapraz (cross) yapılar kullanılmaktadır.

Mevcut mobil cihazlar incelendiğimizde karşımıza Apple IOS, Google Android, Windows Mobile, RIM BlackBerry gibi işletim sistemlerine sahip olduklarını görmekteyiz. Bu cihazlar için geliştirilen uygulamalara Apple Store, Google Play, Windows Store gibi uygulama mağazalarından erişebilmekteyiz. Mobil uygulamaların farklı özellikteki cihazlar ayrı ayrı geliştirilmesine Yerel (Native) uygulama geliştirme çözümü olarak tanımlamaktayız. O zaman ilk akla gelen soru ben native bir uygulama geliştirmek istiyor isem nasıl geliştireceğim ve hangi programlama dillerini bilmem gerekiyor sorusudur. Native bir uygulama geliştirmek için sahip olmanız gereken uzmanlıklardan birkaçını aşağıdaki tabloda bulabilirsiniz.

Mobil Platformlar Programlama Dilleri Apple IOS C, Objective C Google Android Java Windows Mobile .NET, C# Window 7 Phone .NET, C# Symbian C, C++, Phyton, HTML/CSS/JS RIM BlackBerry Java (J2ME) HP Palm WebOS HTML/CSS/JS Samsung Bada C, C++, HTML/CSS/JS MeeGo C++

Melez (Hybrid) mobil uygulama geliştirme temel anlamda tek bir kodlama yapısının kullanılarak geliştirilen uygulamanın birden fazla mobil platformda (Apple IOS, Google Android vb.) kullanılabilmesi esasına dayanmaktadır. Hybrid mobil uygulama geliştirmek için genellikle HTML5, CSS3 ve JavaScript dilleri ile geliştirilen uygulama çözümleri karşımıza çıkmaktadır. Farklı platformlardaki farklı cihazlara uyum sağlayabilecek bir altyapı ile geliştirme yapılmaktadır. Hybrid olarak geliştirilen mobil uygulamalar genellikle mobil cihaz içerisindeki gömülü web tarayıcısı (browser) üzerinden çalışmaktadır. Hybrid mobil uygulama geliştirmenin maliyetinin Native uygulama geliştirmeye göre daha düşük olması avantajı olarak görülmekle beraber birçok dezavantajı da yanında getirmektedir. Mobil cihazların kaynaklarını etkin kullanamaması, gömülü web tarayıcının yeni sürümlerinde tüm mobil cihazlar için tek tek yazılmış kod parçalarının testinin yapılması gerekliliği, performans gerektiren karmaşık projelerde kullanımında ortaya çıkan sorunlar hybrid mobil uygulama geliştirmenin önündeki handikaplar olarak görülmektedir.

Geliştirilen web sayfalarının, farklı ekran boyutlarına sahip mobil cihazlar üzerinde (cep telefonu, tablet vb) bir web tarayıcısı aracılığı ile düzgün bir şekilde görüntülenebilmesi için oluşturulmuş tasarım tekniğidir. Aslında geliştirilen web sayfasının mobil cihazlarda da sağlıklı çalışabilmesi için web tasarımcısı tarafından yapılan kodlamadan ibarettir. Fazla kod bilgisi ve becerisi gerektirmeden gerçekleştirilebilir. Bu yüzden uygulama marketlerinde yer almadan mobil platformlarda olmanın basit yoludur. Responsive tasarım HTML5, JavaScript, CSS gibi standart web teknolojileri kullanılarak geliştirilmektedir. Esnek tasarım teknikleri ile tasarlanmış yapı ile geniş kitlelere mobil cihazlar ile hızlı bir şekilde ulaşmak en büyük avantajı olarak saymak mümkündür. Ancak API’lere sınırlı erişim, uygulama marketlerinde bulunamama gibi dezavantajları bulunmaktadır. Kurumsal işletmelerin tercih ettiği bir yöntem değildir.