Native-Html5-Hybrid Mobil Uygulama Geliştirme Diline Karar Vermek

'GonzaLes

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


Bildiğiniz üzere mobil cihazlar artık hayatımızın değişmez bir parçası.Bilgiye ve eğlenceye en kolay ulaşma yolu olan mobil cihazların kullanılma oranı ve kullanılan cihaz sayısıda inanılmaz bir hızla arttığı bu yıllarda aynı oranda geliştirilen uygulama sayısı ,geliştirilen uygulamaların kalitesi ve uygulamaların kullanıldığı alanlarda bi o oranda artmaktadır.Bu oranın artmasıda bir çok yazılım firmasını da mobil uygulama geliştirme alanına yöneltmektedir. Kimi firmalar kendi uygulamalarını yazarken kimi firmalar ihtiyaç duyan başka firmaların uygulamalarını yazmaktadır.

Peki bu yazılan uygulamalar hangi methodlarla, hangi dillerle yazılmaktadır veya yazılmalıdır.

Uygulamalar üç farklı yolla yazılabilir.

1-Uygulamanın cihaza özgü native (doğal) dille yazılarak sunulması.

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. Android için->Java dili,Android Studio IDE, iOS için ->Objective-C,Swift dilleri XCode IDE, Windows Phone için -> C# dili Visiual Studio geliştirme ortamı kullanılmaktadır.Bu dillerin dışında başka bir dille Native uygulama geliştiremezsiniz.

Uygulamalar Platformların Uygulama Store’larından indirilebilir.Android için Google Play,iOS için AppStore,Windows Phone için Windows Phone Store dan indirebilirsiniz.

2-Uygulamanın HTML5, CSS3, Javascript gibi web teknolojileri ile yazılarak browserlarda çalışacak şekilde sunulması (Mobil Web Uygulaması).

Mobil cihazların tarayıcıları ile siteye girdiğimiz zaman tarayıcı user agent’ına göre mobil tarayıcı olduğunu anlayıp ona göre web sitesi değilde uygulama şeklinde yazılmış web uygulaması açılır. (Bunun yerine Responsive site tasarımı’da tercih edilebilir.Hem daha pratik hemde daha az maliyetlidir.)

Storelar’dan indirilemez. Tarayıcılar vasıtası ile erişilir.
3-Uygulamanın hybrid olarak,yani yukardaki iki platformu ortak kullanılarak hazırlanan uygulamalardır. Mobil Web gibi HTML5, CSS3, Javascript gibi web teknolojileri ile yazılır.Bu yazılan uygulama native uygulama componentları içinde çalıştırılır. Aslında daha basitçe açıklamak gerekirse native uygulamalar içinden erişilen mobil web uygulamalarıdır. JQuery Mobile ,Sencha Touch,Titanium gibi javascript kütüphaneleri ile geliştirilmektedir. Mobil web uygulamalarından farkı, cihaz özelliklerini daha fazla kullanabilir ve storelar’dan indirilebilir olmasıdır.Tercih edilme sebebi ise bir kez yazılıp tüm mobil cihazlarda çalıştırılmasıdır.

Peki biz hangisini öğreneceğiz yada hangisi ile uygulamamızı geliştireceğiz.Kime sorsak kendi bildiği teknolojiyi savunmakta ve daha avantajlı olduğunu anlatmaktadır. Bende sizlere hem native ios,android uygulaması yazan hemde Sencha Touch ile hybrid ve mobil web uygulaması geliştiren biri olarak kendi fikirlerimi söyleyeceğim.

Mobil Web aslında tam olarak bir mobil uygulama değildir. Mobil tarayıcılar üzerinden ulaşılan mobil uygulamalara benzetilmiş web siteleridir. Zaten uygulama olarak indirilip kurulamaz. Sadece tarayıcılar üzerinden ulaşılabilinir ve cihaz özelliklerinin (sensör,kamera,database) tamamını kullanamaz.İnternet bağlantısı olmayınca zaten erişim olamaz. O yüzden Mobil Web Uygulamalarını biraz daha konu dışı tutuyorum ve Mobil Web uygulaması yazmayı düşünenlere Responsive site tasarımını öneriyorum. Hem daha az maliyet hemde web sitesinin tüm içeriğini sunma fırsatı veriyor.


Hybrid-vs.-Native-Mobile-Apps1.png


Gelelim native mi hybrid mi?

Bunu iki şekilde değerlendireceğim.

1- Uygulamayı Hangisi İle Yazmalıyım?

Buna karar verirken birden fazla kritere bakılabilir. Uygulamanın içeriği,kullanacağı cihaz donanımları,uygulama geliştirme süresi,güvenlik riskleri bir çok açıdan ele alabiliriz. Hybrid uygulamanın bir çok avantajı vardır.

Bu avantajları şu şekilde sıralayabiliriz.

Daha kolay yada öğrenmesi daha kolay dillerle yazılması
Daha kısa zamanda tüm platformlara geliştirme yani daha düşük maliyet
Anlık güncelleme imkanı
Düşük bakım ve güncelleme maliyeti
Dezavantajları

Performans ekskliği.Native uygulamalar kadar hızlı çalışmaması
Grafiksel yetersizlik
İşletim sistemlerinin yeni sürümleri ile olan uyuşmazlık
Her bir javascript kütüphanesinin farklı IDE kullanması
Bu avantaj ve dezavantajlar göz önüne alınarak seçiminizi yapabilirsiniz. Ama şunu unutmayın örneğin Android bir güncelleme yaparken Sencha kütüphanesini göz önünde bulundurmaz.Yani Android’in 4.0 sürümünde çalışan bir özellik 4.1 sürümünde çalışmıyor olabilir. Bu benim Sencha ortamında geliştirme yaparken yaşadığım en büyük sıkıntıdır. Cihazlar sürüm yükselttiği zaman hybrid uygulamalara güncelleme yapmak gerekiyor. Bu da extra sorun yaratıyor.

Bu konuda benim şahsi görüşüm Native uygulama geliştirmenizdir.Native uygulamalar her zaman daha stabil ve esnek yapıda çalışmaktadır.Ayrıca geliştirme aşamasında çok daha fazla kaynak bulabilirsiniz.

2- Hangisini öğrenmeliyim?

Mobil uygulama geliştirmeye karar verdiniz. Araştırmalarınızı yaptınız ama kararsız kaldınız. Hangisi ile yazmalıyım? Hangisi benim kariyerim açısından iyi olur ? Bu konuda size cevabım net bir şekilde Native uygulama gelliştirme öğrenmeniz olacaktır.Neden diye sorarsanız size çok basit bir yol göstereceğim. Kariyer.net sitesini açın ve bakın kaç firma Native uygulama yazan ,kaç firma Cross Platform yani hybrid yazan geliştirmeci arıyor. Zaten bu dediğimi yaptıktan sonra bana hak vereceksiniz.

Ayrıca şunuda unutmayın örneğin Titanium ile geliştirme yapmayı öğrendiniz. Bu sencha ile uygulama yazabileceğiniz anlamına gelmez. Onu ayrıca öğrenmeniz gerekecektir. Bunların yanı sıra Hybrid uygulama geliştirmek için az da olsa native uygulama geliştirmeyi bilmeniz gerekmektedir.

Tüm bunları göz önüne alarak başlangıç için önce native uygulama geliştirme konusunda tecrübe edindikten sonra hybrid öğrenebilirsiniz.Ama önce native olarak uygulama geliştirme konusunda uzman hale gelmelisiniz.
 
Ü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.