Günümüzde pek çok işletme, hizmet veya ürünlerini pazarlamak için dijital pazarlama dünyasının gereğiyle mobil uygulamalara ihtiyaç duyuyor. Keza işletmelerle beraber şahsi olarak mobil uygulamalar üretmek de mümkün. Söz konusu mobil uygulamaları geliştirirken karşımıza çıkan hybrid ve native terimleri işin yazılım kısmıyla alakalıdır.
Önce mobil uygulama geliştirmeden önce hangisinin kullanılacağına dair karar verilmesi gereken native ve hybrid terimlerini teker teker inceleyelim. Çoğu durumda gelişim stratejisi bakımından “mükemmel” olan tercih yoktur fakat elde konu geliştirme rotası olduğunda ilerisi ile ilgili bir planlama yapmak, uygulama geliştirme konusunda doğru yolu belirlemede yardımcı olacaktır.
Native
Native, uygulama yazılırken platformun verdiği dil ve IDE ile uygulama geliştirmektir. Eğer geliştirmeci native IOS developer ise Apple’ın verdiği dil olan Swift veya Objective C dilini bilmesi gerekir. IDE olarak da Xcode kullanması şarttır veya geliştirmeci native android developer ise Google’ın verdiği dil olan Kotlin’i veya Java’yı bilmesi gerekir. IDE olarak da Android Studio kullanması elzemdir. Bu dillerle yazılan tüm uygulamalar Native’dir.
Hybrid
CSS, HTML5 ve JavaScript kullanılarak yazılır. Tek kola bütün platformlar geliştirilebilir. Çapraz platform uygulama geliştirme olarak da bilinir. Bütün platformlar için aynı sonuç üretilir ve tek kodla native’e benzer uygulama geliştirilebilir.
Neden Native?
- Daima en iyi performansı verir.
- Söz konusu platformla ilgili bütün API’lere ulaşılabilir.
- Daha fazla kaynağa ulaşılır.
- Bir sorunla karşılaşıldığında çözüm için başvurulacak yerler daha fazladır.
Neden Hybrid?
- Hybrid sadece mobil ile kısıtlanmamalıdır.
- Desktop için uygulama geliştirilen frameworkler de vardır. Örneğin: Electron. Electron ile Windows, Mac ve Linux’a uygulama geliştirebilir.
Hybrid Uygulamanın Dezavantajları Nelerdir?
Java ile Android ya da Swift ile IOS uygulama geliştirirken iki katmanda çalışma yapılır. Bunlardan altta bulunan işletim sistemidir, üstündeki ise yazılan kodlardır. Böylece kolayca uygulama geliştirilen cihazın internet, kamera, konum gibi işletim sistemine ait olan özelliklerine erişilip müdahale edilebilir. Ancak hybrid uygulamalarda işletim sistemiyle uygulama katmanları arasına bir katman daha eklemek gerekiyor. Bu katman da API yani yazılım programlama yüzü veya diğer ismiyle erişim anahtarı katmanı. Bu katmanın görevi, hybrid bir uygulama yazıldığında cihazın özelliklerine erişmek isteniyorsa yardımcı olmasıdır. Ancak bu maalesef ki beraberinde performans kayıplarını getiriyor. Hybrid’in en büyük handikaplardan biridir. Yani hybrid uygulamalar, native uygulamalara göre performans açısından daha geri plandadır.
Native Uygulamanın Dezavantajları Nelerdir?
Eğer Android uygulaması geliştirilecekse ona özel Java veya Kotlin gibi dillerle uygulama geliştirilmelidir. Sonrasında IOS için aynı uygulama geliştirilmek istendiğinde Objective-C veya Swift ile tekrar aynı uygulamayı yazmak gerekir. Zaman ve harcanan efor noktasında büyük ölçüde kayıplar olacaktır. Ancak bunun sonucunda tasarım ve performans alanında daha başarılı bir uygulama oluşturmak mümkün.
Özetle; hybrid uygulama, bir kere kod yazarak tüm platformlar için (Android, IOS, Windows) native uygulama geliştirebilme çabasıdır. Bir kez yazacağınız bir kodla tüm platformlar için uygulamalarınız çalışır hâle gelecek. Uygulamayı ileride güncellemeniz gerekirse tekrar aynı kod üzerinden geliştirip tek bir kodla bütüm platformlara native uygulama hazırlayabilirsiniz. Dahası bu geliştirdiğiniz uygulama Google Play, App Store gibi mağazalardan indirilebilecek.