Native Uygulamalar vs Mobil Web Uygulamaları

'GonzaLes

Yaşayan Forum Efsanesi
17 Nis 2015
11,778
252
85
Kayseri
nativeappsvsmobilewebapps2.png


Mobil uygulamaların kullanımı ve popülerliği gün geçtikçe artmakta ve mobil yazılım sektörü daha büyük bir sektör haline gelmektedir. Mobil uygulamalar bu sayede, özellikle son bir kaç yılda çok önemli ticari araçlar haline gelmiştir. Büyük ya da küçük her şirket kendine ait bir uygulamaya sahip olup kendi reklamını, ürün ve hizmet tanıtımını yapmak için birbiriyle yarışmaktadır. Bu yarışta izledikleri stratejiler çok büyük önem teşkil etmektedir. Bu stratejileri en iyi şekilde belirlemeden piyasaya girmek ilerleyen zamanlarda çeşitli sıkıntılar yaratabilir. Bir mobil uygulamaya sahip olmadan önce düşünülmesi gereken en önemli şeylerden biri bu uygulamanın gerçekleştiriminin hangi teknolojiler kullanılarak yapılacağıdır. Bir mobil uygulama 3 farklı teknolojik yaklaşımla ortaya çıkarılabilmektedir.

Uygulamanın cihaza özgü native (doğal) dille yazılarak sunulması
Uygulamanın HTML5, CSS3, Javascript gibi web teknolojileri ile yazılarak browserlarda çalışacak şekilde sunulması (Mobil Web Uygulaması)
Uygulamanın hibrit olarak, adından da anlaşılacağı üzere yukarıdaki her iki teknolojinin birlikte kullanılarak, web içeriğin cihaz özelliklerden daha iyi faydalanabilmek için native container ile sarılıp sunulması
Bu 3 farklı teknolojik yaklaşımın da kendine özgü avantajları ve diğer teknolojilere göre dezavantajları bulunmaktadır.

Native Dille yazılmış bir uygulama, belli bir platforma özel, genellikle platform sağlayıcısının belirtmiş/üretmiş olduğu platform SDK’sı, araçları ve programlama dili yardımıyla geliştirilmiş uygulamadır. Örneğin Objective-C programlama dilini kullanılarak iOS işletim sistemine özel ya da Java programlama dili ile Android işletim sistemine özel geliştirilen bir uygulama Native Uygulamadır.

Mobil web uygulamalarının ise HTML5, CSS3 ve Javascript gibi web teknolojileri kullanılarak gerçekleştirimi yapılır ve adından anlaşılacağı üzere “Web” tabanlıdırlar. Mobil işletim sistemlerine özgü üretilmiş mobil web tarayıcıları üzerinde sorunsuz çalışmaları için optimize edilmişlerdir. Web mobil uygulamaların en öne çıkan özelliği, web tabanlı oldukları için tek seferde geliştirilip, tüm mobil platformda çalışabilir olmalarıdır. Native uygulamalar gibi farklı programlama dilleri kullanılarak ve her işletim sistemine özel olarak geliştirilmezler.

Native mobil uygulamalar animasyonları ve grafikleri yüksek kalitede render ederek sunabilir ve mobil web uygulamalarına göre %15 daha hızlı tepki verebilirler. Bu sayede native mobil uygulamalar kullanıcılara daha iyi bir deneyim sunabilmektedirler. Mobil web uygulamalarında kullanılan cache’lenmiş verinin oluşturabileceği güvenlik açıkları da güvenlik gereksinimi bulunan uygulamalar için, native dille geliştirme yapılmasını zorunlu kılmıştır. Aynı zamanda Facebook’un kurucusu Mark Zuckerberg Native yerine HTML5 uygulama tercih etmelerinin şirketin yapmış olduğu en büyük hata olduğunu belirtmiştir. [1]

Native ve HTML5 uygulamalarını karşılaştırmaya devam edersek, gözümüze çarpan diğer bir farklılık Internet bağlantısı zorunluluğu olacaktır. Bir mobil web uygulamasının cihazınızda çalışması için öncelikle cihazınızın internet bağlantısına sahip olması gerekmektedir. Native uygulamaların bir kısmı da internet bağlantısını kullanır ancak her uygulama için zorunlu değildir. Örneğin bir haber sitesine ait native uygulamayı açtığınızda, anlık güncel haberlere ulaşmak için internete bağlanmanız gerekir. Ancak bir kamera uygulaması için internete bağlanmanıza gerek yoktur. Mobil web uygulamaları çoğunlukla internet bağlantısının zorunlu olduğu, haber, magazin, dergi içeriğine sahip uygulamalardır.

Native uygulamaların işletim sistemi ile birebir uyumlu çalışması, çok daha fazla performanslı olmasını sağlar. Örneğin bir Native iOS uygulaması, çalıştığı cihazın işlemcisini %90-95 gibi yüksek oranlarda kullanabilir. Android platformunda ise işletim sisteminin Dalvik Virtual Machine(Sanal Makine) ile çalışmasından dolayı bu oran %75 civarlarındadır. Mobil web uygulamaları da doğal olarak başka bir Native mobil uygulama olan web tarayıcı üzerinden çalışacağı için daha düşük performansla çalışacaktır. Ayrıca internet bağlantı hızı da mobil web uygulamasının vereceği tepkiyi önemli bir ölçüde etkilemektedir. Ek olarak günümüzde bulunan yaklaşık 15-20 adet farklı mobil web tarayıcısının da HTML5 dilini farklı performanslarda çalıştırdığını da unutmamak gerekir.

Güvenlik açısından bakarsak Native uygulamaların her zaman mobil web uygulamalarından çok daha önde olduğunu görebiliriz. Native uygulamaların kaynak kodları cihazın ve uygulamanın içinde saklı olduğundan obfuscation uygulanmış bir uygulamanın kaynak kodları yeterince korunaklı bir hâle getirilmiş olur, ancak mobil web uygulamalarının kaynak kodları obfuscation uygulansa dâhi yeteri kadar korunaklı değildir. Veri güvenliği olarak Native uygulamalar normal kullanımlarda tamamen güvenlidir. Bunun tam tersi, mobil web uygulamalarında tarayıcılar yeteri kadar güvenli olmadığından önbellekteki veriler kolayca açığa çıkabilir. Mobil web uygulamalarında veri transferi için SSL(Secure Socket Layer -Güvenli Giriş Katmanı) protokolüne mahkûm kalırsınız. SSL yerine VPN(Virtual Private Network-Sanal Özel Ağ) kullanmak da performansı büyük ölçüde düşürür. Bunun yanı sıra Native uygulamaların kendilerine özel şifreleme metotları vardır ve bunlar performansta herhangi bir sorun oluşturmaz.

Native uygulamaların öne çıktığı diğer bir nokta da, üzerinde bulunduğu mobil cihazın donanımlarına tamamen erişim sağlayabilip bunlardan yararlanabilmesidir. Örneğin bir mobil web uygulaması push-notification(bildirim) özelliğini desteklemez. Bu bildirimi yapmak için farklı çözümlere başvurmak zorundasınızdır. Ancak Native uygulama ile push notification ile bildirim özelliğini kullanabilirsiniz. Mobil web uygulamaları mobil cihazınızın donanımına doğrudan erişim sağlayamaz. Bu yüzden, cihazın kamera, flaş vb. gibi donanımlarına erişmek ve onları performanslı bir şekilde kullanmak isteyen geliştiriciler web teknolojilerini kullanarak gerçekleştirim yapmak yerine Native uygulama geliştirmeyi tercih ederler.

Uygulamaları içerik ya da kaynak kodu olarak güncellemek istediğimiz zaman ise mobil web uygulamaları çok daha avantajlı gözüküyor. Native dille yazılmış bir uygulamayı güncellemek için güncel sürümünü o platforma ait her bir mobil uygulama marketine yükleyip onaylanmasını beklemek gerekir. Sonrasında ise kullanıcının internete bağlanıp cihazı üzerinden o uygulamayı indirip güncellemesi zorunludur. Mobil web uygulamalarında ise tek bir seferde yazıldığı gibi, güncelleme yapmak için de her platformla ayrı ayrı çalışmaya gerek kalmadan, tek seferde güncellenir ve güncellemenin hemen ardından kullanıcılar o uygulamayı güncel haliyle kullanabilir durumda olurlar.

Sadece birkaç ay öncesinde mobil web uygulamaları kullanan gazetelerin native dille gerçekleştirilmiş uygulamalara geçiş yapmasının ve mobil uygulama marketlerinin yavaş yavaş native dil haricinde yazılan uygulamalara desteğini çekmesi, native uygulamaların daha fazla ön plana çıkmasını sağlamıştır.

Kısaca özetlemek gerekirse; tek bir seferde yazılıp her cihazda çalışabilen, anında güncellenebilen bir içeriğe sahip mobil web uygulamaları kulağa daha cazip ve hesaplı gelebilir, ancak native uygulamaların çok daha güvenilir ve performanslı olduğu gerçeğini göz önünde bulundurmak gerekir.

Burada yapılması gereken, mobil çözüm taleplerinde gereksinimlerin uzman bir ekiple iyice değerlendirilerek, çözüm olarak maliyeti uygun olacak mobil web uygulaması mı yoksa daha performanslı ve güvenli olacak native mobil uygulamanın seçileceğine doğru bir şekilde karar verilmesidir.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.