DİĞERDOSYA

Uygulama geliştirme diline karar vermek

Mobil uygulama geliştirirken neye benzemesi gerektiğini, verilerinizi, iş modelinizi, iş gücünüzü biliyorsunuz ama teknolojiye karar veremediniz. Hangisi sizin için en doğrusu?

Native_Application

Mobil yatırım yapacak pazarlamacıların ilgisini çekecek ve uygulama hazırlarken karar verecekleri dili seçmelerini kolaylaştıracak konuya, mobilike’ın her çeyrekte yayınladığı madreport Q1 2013 sayısında yer veriliyor.

Uygulama geliştirmek için onlarca yol mümkün; hazır uygulama geliştirme çözümlerinden, kiralık üçüncü parti geliştiricilere, “her yerde” çalıştığı iddia edilen HTML teknolojilerden, açık ara daha performanslı olduğu söylenen Native kodlamaya, akıllı TV’ler dahil her donanıma girebilen fakat anlaması zor teknolojilere kadar uzun bir liste var.

Mobil uygulamaların büyük çoğunluğunun yapısal olarak birbirine benzediği aşikar. Görece küçük bir ekran üzerinde belirli bir içeriği okuyabilmenin zorluğu, kullanıcı alışkanlıkları ve popüler biçimler, ister web içeriği sunan bir haber uygulaması düşünün, ister bir multimedia uygulaması tasarlayın, isterseniz bir e-ticaret çözümü planlıyor olun sizi ve tasarımcılarınızı kendini kanıtlamış önyüzlerden birini seçmeye doğru itiyor. Fakat bu uygulama tamamen HTML5 ve Javascript ile geliştirilmiş bir mobil web uygulaması mı olmalı, yoksa tamamen Native mi geliştirilmeli? Bu teknolojilerin hibrit bir formda kullanılması da mümkün. Peki bu seçeneklerin birbirlerine göre avantaj ve dezavantajları nelerdir?

HTML5

Web’in bu günlere gelmesini sağlayan HTML’in yeni sürümü olarak nitelendirebileceğimiz HTML 5, CSS3 ve JavaScript kütüphaneleri doğal olarak tüm browser ve cihazlar tarafından destekleniyor. Yaygın cihaz tarayıcıları web içeriğinin yorumlanması konusunda minör farklılıklar gösterse de, web standartları halen en yaygın önyüz ve uygulama geliştirme standardıdır. Ayrıca ses-video, web depolama (web storage), konum belirleme gibi tarayıcı destekli özellikleri onu avantajlı kılıyor. (1)

Özellikleri;

•Tüm tarayıcılar tarafından desteklenir. (Ufak farklar için ihtiyaç duyduğunuz ek geliştirme, her platforma özgü native kodlama ile karşılaştırılamayacak kadar azdır.)

•Daha az masraflıdır. (Hali hazırda çok sayıda HTML UI geliştiricisi bulunmakta, bu iş için birçok hazır araç da mevcut.)

•Geliştirmesi ve üzerinde güncelleme yapılması daha kolaydır.

•Uygulama güncellemesi son kullanıcıyı etkilemez.

•Uygulamaların cihazda veri depolamasına izin verir.

•Video ve ses özellikleri kullanılabilir.

•Donanım özelliklerinin bir çoğu kullanılmaz.

•İşlemci hızı önem arz etmez. (Büyük ölçüde, zaten temel kısıt burada tarayıcının Javascript’i işleme hızıdır ki, bu sınır her web uygulaması için aynı olacaktır.)

•Çevrimiçi çalışır.

•Bulunduğu sunucu içerisinden veri tabanı erişimi yapılabilir.

Native Uygulamalar

Native uygulamalar cihaza özel olarak geliştirilen uygulamalardır. Her platform için kendi geliştirme dilinde yazılır ve donanımın imkanlarını daha iyi kullanır. Her cihaz için ayrı uygulama yazılacağından HTML5’e göre daha fazla vakit alan ve daha zahmetli bir yöntemdir. Güncelleme yapılabilmesi HTML5’e göre daha zordur ve son kullanıcının uygulamanın son versiyonuna erişebilmesi için güncellemeyi yüklemesi zorunludur.

Cihaza özel geliştirilen uygulamalara örnek olarak App Store, BlackBerry AppWorld, Google Play Store verilebilir.

Özellikleri;

•Donanım ve lokasyon ihtiyacında kullanılabilir. (HTML5 uygulamaları içerisinde tarayıcı API’leri ile eriştiğiniz özellikler artık daha yakındır. Konum güncelleme hızı ve kesinliği gibi noktalarda avantajlıdır.)

•İşlemci hızının önemli olduğu uygulamalarda kullanılır. (Eğer geliştirici kabiliyetleriniz yüksek ise uygulamalarınız da iyi olacaktır.)

•Cihazda veri saklanabilir. (Tarayıcı cookie alanları yerine, uygulama kaldırılmadığı sürece veri saklayabilecek alanlarınız vardır.)

•Cihaza özel uygulamalar yapıldığından cihazın tüm özellikleri kullanılabilir ve böylece daha kompleks ve gelişmiş uygulamalar yazılabilir.

•Çevrimdışı çalışır.

•Güncellemeler son kullanıcıyı etkiler.

•Geliştirmesi masraflıdır.

Hibrit (Hybrid) Uygulamalar

Hibrit uygulamalar Native ve HTML5’in karışımından meydana gelen uygulamalardır. Tıpkı Native uygulamalarda olduğu gibi cihaza özel geliştirilir ve HTML 5’de olduğu gibi web teknolojisi kullanılarak yazılır. Bu şekilde iOS, Android, Blackberry, Symbian gibi platformlarda da web teknolojisi kullanılarak uygulama geliştirmek mümkün olur. Böylece web teknolojisi ile geliştirilen bir uygulama, uygulama mağazasında satılabilir. Hibrit uygulama yapmak için PhoneGap, PhoneGap Build, Titanium, Kendo UI, Sencha gibi geliştirme yöntemleri kullanılanılır.

Hibrit uygulamalar ile daha az masraf ile daha iyi bir performans elde etmek mümkün olur.

Özellikleri;

•Tüm platformlarda çalışıyor fakat her bir platform için gerekli uyarlamaların yapılması gerekiyor.

•Hibrit uygulamalar, hem uygulama mağazasında yer alıyor hem de web uygulama özelliklerini taşıyorlar.

•Native uygulama içerisinden erişim yetkileri alınarak HTML5’e aktarılıyor. Böylece sistem kaynaklarına ulaşılabiliyor.

•Çevrimdışı da çalışıyor.

Hibrit uygulamaların desteklediği donanım sistemlerini şu şekilde sayabiliriz;

•Akselerometre
•Kamera
•Pusula
•Takvim
•Bağlantı
•Kişiler
•Lokasyon
•Dosya
•Depolama
•Medya
•Ağ
•Uyarılar
•Depolama
•Barkod Okuma

Yukarıda verilen özelliklerin kullanılabilirliği platformdan platforma değişiklik gösteriyor. Örneğin iOS ve Android tüm erişimlere izin verirken, Symbian pusula erişimine izin vermiyor. Bu yüzden Hibrit bir uygulama yaparken her platformun özelliğine göre ayarlama yapmak gerekiyor.

Üç uygulama geliştirme yönteminin karşılaştırmasını yaparsak;

Doğal HTML5 Hibrit
Uygulama Özellikleri
Grafik Doğal Uygulama Arayüzü HTML, Canvas, SVG HTML, Canvas, SVG
Performans Hızlı Yavaş Yavaş
Doğal görünüm Doğal Benzetilmiş Benzetilmiş
Dağıtım Uygulama Mağazası Web Uygulama Mağazası
Cihaza Erişim
Kamera Evet Hayır Evet
Bildirimler Evet Hayır Evet
Kişiler, Takvim Evet Hayır Evet
Çevrimdışı Depolama Güvenli Depolama Paylaşılmış SQL Güvenli Depolama, Paylaşılmış SQL
Lokasyon Evet Evet Evet
El Hareketleri
Ekranı kaydırmak Evet Evet Evet
Ekranı küçültmek ve büyütmek Evet Hayır Evet
Bağlantı Çevrimiçi ve çevrimdışı Genellikle online Çevrimiçi ve çevrimdışı
Geliştirme yöntemleri ObjectiveC, Java HTML5, CSS, Javascript HTML5, CSS, Javascript

 

Başa dön tuşu