Mobil Programlamaya Geçişte Sorulan İlk Soru : Hybrid mi yoksa Native mi?

Muhammet ÇAĞATAY
Android Türkiye

--

Merhabalar,

Uzun zamandır bir seriye başlama niyetim vardı ve kısmet bugüne nasipmiş. Android Türkiye serisi ile hem developer arkadaşlara fikir vermek hem de son kullanıcıları muallakta bırakan sorulara açıklık getirmeye çalışacağım.

Gerek katıldığım etlinliklerde gerek iş toplantılarımda bu soru ile çok karşılaştım, bu yüzden ilk yazımı bu konu üzerine yazmaya karar verdim.

Her ne kadar geliştiriciler kavramlara hakim olsa da, müşteriler yada son kullanıcılar hybrid ve native kavramlarının anlamlarını bilmemektedirler. Bu yüzden önce bunları tanımlamakta fayda var.

Native Programlama :

Geliştirmenin, kullanılan işletim sisteminin sunduğu geliştirme ortamları (IDE), kontroller ve programala dili ile yapılmasıdır.

Örneğin; bir developerin Android Studio, Eclipse gibi ortamlarda Android SDK kontrollerinin kullanılarak, java yada kotlin programlama dili ile geliştirme yapması Native Programlama’ya bir örnektir.

Hybrid (Hibrit) Programlama :

HTML5, JavaScript, Angular.js, Css3 gibi web dilleri kullanılarak geliştirilen ve native programlamanın aksine birden çok platformda çalışabilmesi için yapılan geliştirme adıdır. Bu özellikleri nedeniyle Hybrid uygulamalar Çapraz ( Cross ) Platform uygulamaları diye de adlandırılır.

Mobil Hybrid Uygulama Geliştirme Frameworkleri:

2018 yılı itibarı ile en çok kullanılan Hybrid Frameworklerinden bazıları aşağıdaki gibidir.

  1. Cordova : https://cordova.apache.org/
  2. Xamarin : https://www.xamarin.com/
  3. React Native : https://facebook.github.io/react-native/
  4. Ionic Framework : https://ionicframework.com/
  5. Mobile Angular UI : http://mobileangularui.com/
  6. Onsen : https://onsen.io/
  7. Framework7 : http://framework7.io/

Native ve Hybrid Programlamanın Birbirine göre Avantajları

Mobil dünyaya geçiş yapan gerek yöneticiler, gerek geliştiriciler neden hibrit olasın ki sorusunu genelde kendilerine sorarlar.

Tek dil kullanarak hibrit uygulama geliştirerek birçok platformda çalıştırma fikri ilk başta kulağa çok hoş gelse de bir Native Android Developer olarak Baştan sona Hibrit uygulama geliştirilmesine sıcak bakmadığımı belirtmek isterim. Ama Native bir uygulamanın içerisinde aşırı kompleks içeriklerinin hibrit olarak verilmesinde bir sakınca bulmuyorum. Genelde E-ticaret uygulamalarında bu durum ile sıklıkla karşılaşabiliriz.

Native Mobil Programlamanın Avantajları

Performans : Native programlama yapılırken, işletim sisteminin Sdk’sı kullanıldığı için hibrit uygulamalara göre daha performanslıdır. Her ne kadar Ios cihazlarda hibrit uygulamalar bir tık daha iyi çalışsa da, Android cihazlarda hibrit uygulamalar kullanılamayacak kadar yavaştır. Örneğin hibrit ile yazılmış ve hiç stabil bulmadığım Baksi uygulamasının ne kadar performansız olduğunu android bir cihazda test edebilirsiniz.

Kullanıcı Deneyimi (User Experience): Native uygulamalar her platform için ayrı yazıldığından platformun yeteneklerine göre şekil alırlar. Uygulama geliştirilirken kullanılan bileşenler sistemle aynı olduğu için kullanıcının adapte olması kolaydır.Örneğin Bir Android kullanıcısı listeden bir eleman silmek için üzerine uzun basması gerektiğini bilir. Benzer şekilde İos kullanıcısı da sola kaydırıp sil butonuna basması gerektiğini bilir.Çünkü işletim sistemi yetenekleri bu şekildedir ve Developerlar da standartları takip edip geliştirme yaparlar.

Güvenlik : Native uygulamalar hibrit uygulamalara göre daha güvenlidir. Örneğin native uygulamalarda proguard, dexguard, xguard vb. kütüphanelerle kodları saklamak (obfuscation)mümkün iken hibrit uygulamalarda paketin içerisinde html olarak proje kaynağına erişmemiz mümkündür. Bu da büyük bir güvenlik zaafiyetidir.

İşlevsellik : Native uygulamalar Kamera, Rehber, Gps, Takvim vb. işletim sisteminin çekirdeğindeki birçok bileşene erişebildikleri için geliştiriciye daha özgür bir kodlama alanı sunarlar. Hibrit uygulamalar ilk çıktıklarında nerdeyse hiçbirşeye erişemezken günümüzde hemen hemen Native dünyasına yetişmişlerdir.

Hybrid Mobil Programlamanın Avantajları

Düşük Maliyet: Hibrit uygulama süreci hem tek dil, hem tek IDE kullanılarak tek bir developer tarafından tamamlanabileceği için, native programlamaya göre daha düşük maliyetlidir ki bu da zaten hibrit programlamanın en önemli özelliğidir.

Kolay Öğrenilebilmesi: Hibrit programlamada kullanılan Html türevli diller, gerek nesneye yönelimli olması ( OOP), gerek veri tiplerinin geniş olması gibi nedenlerden dolayı Native programlama dillerine kıyasla ( Java, Objective C, Kotlin, Swift …) öğrenilmesi daha kolaydır.

Yararlı olması dileğiyle…

--

--