Uygulama geliştirmedeki zor karar: Hibrit uygulama mı? Native uygulama mı?

Uygulama geliştirmedeki zor karar: Hibrit uygulama mı? Native uygulama mı?

Uygulamalar, akıllı cihazların artık her an elimizin altında olmasıyla birlikte, gündelik hayatımızın vazgeçilmezleri haline geldiler. Bugün herhalde sunduğu hizmetin hedef kitlesinde, mobil cihaz kullanıcılarının olmadığını iddia edebilecek kimse yoktur. Ancak uygulamalar dünyası heyecan verici olduğu kadar da kafa karıştırıcı: “Nasıl bir uygulama geliştirmeliyiz?” sorusunu sorduğunuzda net bir cevap almak yerine, cevap vermeniz gereken daha fazla soruyla karşı karşıya kalmanız gayet olası. Bu yazımızda belki de bu kafa karıştırıcı soruların en önemlisinden, “native uygulama mı, hibrit uygulama mı?” ikileminden bahsedeceğiz.

Mobil cihazlar dünyası hız kesmeden gelişmeye devam ediyor ve bu gelişmeler de kullanıcıların hayatında büyük değişiklikler meydana getiriyor. Özellikle IoT cihazların artık hayal olmaktan çıkıp hayatımıza girmesiyle birlikte mobil cihazların kullanımı tamamen farklı bir dünyayı karşımıza çıkarttı. Sadece e-posta okumak, not almak ve oyun oynamakla başlayan uygulamalar artık arabanızın kontrollerinden, fırındaki yemeğimize, evinizin güvenlik ve temizliğinden sağlık kontrollerinize kadar neredeyse her ortamda hayatımızın bir parçası oldular. Belki de bu yüzden de artık mobil cihaz kullanıcılarının hedef kitlesi olmadığı hiçbir hizmet ve/veya ürün kalmadı denebilir. Bu kadar büyük çapta etkisi olan uygulama dünyasının geliştirilmesinde de farklı teknolojiler ve seçenekler hayatımıza girdi.

Native uygulamalar

Akıllı telefonların hızlı yükselişiyle birlikte hayatımıza giren uygulamaları çok sevdik ve 2016’nın ilk yarısı itibariyle, Android platformundaki uygulamaların sayısı 2,5 milyona, iOS platformundaki uygulamalarsa 2 milyona dayandı. İlk uygulamalar dünyasının öncü birlikleri olan native uygulamalar, bugün dahi mobil uygulama deyince ilk akla gelen format olma özelliğini korumaya devam ediyorlar.

iPhone ile başlayan “App Store” standartları, geliştiricilerin karşısına, hem tasarım hem de yazılım alt yapılarında uyulması zorunlu olan belli başlı kurallar getirdi. Apple, başta güvenlik olmak üzere çeşitli sebepleri öne sürerek, cihazlara dışarıdan uygulama yüklenememesi gibi kısıtlamalarla, bu standartlara uyulmasını da zorunlu hale getirdi. Geliştiriciler bu standartlar doğrultusunda ve zorunlu yazılım geliştirme altyapılarıyla uygulama geliştirmeye başladılar.

Sonrasında çıkan Android gibi farklı işletim sistemleri de her ne kadar dışarıdan uygulama yükleme gibi kısıtlara gitmeseler de kullanıcıların iPhone’dan alıştıkları “Uygulama Pazarı” konseptini devam ettirdiler. Uygulama geliştirme işlemleri için de yavaş yavaş kendi standartlarını ortaya koymaya başladılar. Ancak bu yazılım alt yapılarının ve işletim sistemi standartlarının birbirinden farklı olması, bir uygulama hizmeti sunmak isteyenlerin karşısına başta maliyet olmak üzere farklı sorunlar çıkartmaya başladı. Cihaz kullanıcılarının yaşadıkları deneyimin birbirinden farklı olması, tasarım ve yazılım standartlarındaki farklılığın getirdiği kullanım şekillerinin farklılığı bir cihazda hem tasarım hem de kullanıcı deneyiminde farklı noktalardan düşünülmesini gerekli kılmaya başladı.

Native uygulamalardaki bu kısıtlamalar, aslına bakarsanız kullanıcı deneyimi ve performans açısından büyük avantajlar sağlıyor. Cihazın donanımsal özellikleri dikkate alınarak oluşturulan bu standartlar, uygulamanızda kullanıcılar için en iyi deneyimi sunmanızı sağlıyor.

Native uygulamaların avantajları:

  • Kullanıcılarınıza hızlı, güvenilir ve tutarlı çalışan uygulamalar sunmanızı sağlar.
  • Native uygulamalar kullandığınız cihazların donanımsal ve yazılımsal bütün fonksiyonlarına erişebilmenizi sağlar.
  • Yayıncılar gibi sürekli güncellenen sistemler için cihazın kendi bildirim sistemini kullanmanızı sağlar.
  • Kullanıcılar uygulamalarda daha fazla zaman geçirirler.
  • Native uygulamalar cihazlardaki yeni geliştirilen teknolojilere daha kolay uyum sağlayabiliyorlar.
  • Native uygulamalar sayesinde cihazın kendi design kitlerini de kullanabilirsiniz.

Native uygulamaların en büyük dezavantajı, sadece hazırlandıkları platformda çalışabiliyor olmalarıdır. İşletim sistemleri arasındaki farklılıklardan dolayı, bir platform için hazırlanan uygulamanın başka bir platformda da çalışabilmesi için bambaşka bir altyapı ve donanımla tekrar hazırlanması gerekir. Yukarıda da saydığımız gibi cihazlardaki kullanım alışkanlıklarının bile birbirinden farklı olmasından dolayı yeniden tasarlanması gerekebilir. Birden fazla platformda desteklenebilen bir native uygulama oluşturulamaz. Eğer bütçeniz yeterliyse, native uygulama kullanıcı deneyimi açısından en ideal çözüm yoludur.

Web Uygulamaları

Web uygulamaları tıpkı mobil uyumlu web siteleri gibi tarayıcılar üzerinde görüntülenirler. Bu uygulamalar için herhangi bir yükleme işlemi gerekmez. Cihazınızın uygulamaları arasına kısayol olarak da eklenebilirler. Hatta manifest.json dosyasında yapabileceğiniz bazı düzenlemelerle, tarayıcıların tam ekran kullanılmasını sağlayarak, bir uygulama görünümünde çalıştırabilirsiniz.

Web uygulamaları arama motorları tarafından taranabilirler. URL olarak paylaşılabilir ve link verilebilirler. Güncellenme ihtiyaçları yoktur.

Web uygulamaları bir uygulama görünümde tasarlanabilirler. Oluşturulmaları çok hızlı ve kolaydır. Ama bu basitlik de web uygulamalarının en büyük dezavantıjıdır. Web uygulamalarının özellik geliştirilebilme imkanları kısıtlıdır ve genellikle internet bağlantısına ihtiyaç duyarlar. Cihazın donanımıyla bağlantı kuramazlar. Mikrofon gibi HTML5’in sağladığı kısıtlı da olsa donanım erişimi durumları vardır. Bu yüzden mobil cihazlardaki bir çok donanıma erişemez, bildirim sistemlerini kullanamazlar. İnternet bağlantısının olmadığı durumlarda kullanılamazlar, yavaş bağlantı hızlarında çalışmalarında sorunlar ortaya çıkabilir.

Web uygulamalarının en önemli avantajı geliştirme maliyetlerinin düşük olması ve platformların farklılığından etkilenmemesidir. Tarayıcı tabanlı oldukları için bütün cihazlarda çalışabilirler.

Hibrit uygulamalar

Hibrit uygulamalar, native uygulamalar ile web uygulamaları arasında konumlandırılabilirler. Bunlar genellikle native uygulamalardan daha hızlı oluşturulurlar ama tarayıcı tabanlı web uygulamalarından daha iyi çalışırlar. Hibrit uygulamalar da, web uygulamaları gibi HTML, CSS ve JS ile tasarlanırlar. Cihazlardaki bazı fonksiyonlara erişebilmek için cihazın kendi yazılım ve donaım özelliklerinin neredeyse tamamını kullanabilirler. Bu durum yukarıda native uygulamaların sağladıkları olanakların da tamamını yapabilmenizi sağlıyor. Hibrit uygulama geliştirmek için hazırlanan frameworklerdeki gelişmeler sayesinde de hibrit uygulamalarla native uygulamalar arasındaki farklar kapanıyor.

Farklı işletim sistemleri için farklı geliştirme yazılım ve donanımlarına ihtiyaç duymazlar. Uygulama marketlerinde yayınlanabilir, kullanıcılar tarafından indirilip, kurulabilen uygulamalar haline dönüştürülebilirler.

Hibrit uygulama geliştirme dünyasında birçok framework var. Bu frameworkler hibrit uygulama geliştirme süreçlerini daha da hızlandırır. Uygulamaların native uygulamalara kıyasla daha zayıf olan noktalarda güçlendirilmesini de sağlarlar.

Nasıl seçim yapmalıyız?

Native uygulamalar, kullanıcıların kullanım frekansının yüksek olduğu uygulamalarda tercih edilirler. Bu tip durumlarda performans ve cihaz kullanım alışkanlıklarının daha önemli hale gelir.

Web uygulamalarının oluşturulma ve hizmete sunulmasına kadar ki bütün süreçte maliyet ve zaman açısından büyük tasarruf sağlanır. Daha basit kullanımlarda kullanım frekansının düşük olduğu uygulamalar için kullanılabilirler.

Web teknolojileri, JavaScript ve arayüz geliştirmeye dair her şey 30 Haziran’da Frontend Teknolojileri Konferansı’nda! Detaylı bilgi için tıkla.

Hibrit uygulamalar, web uygulamalarının ve native uygulamaların avantajlarını aynı anda kullanabildiği için çokça tercih edilmekteler. Hibrit uygulama geliştirmede kullanılan ionic gibi frameworklerdeki gelişmelerle, artık native uygulamaların deneyimine daha yakın uygulamalar geliştirilmeye başlandı. Birçok uygulamada ikisi arasındaki farkları anlamakta zorlanabilirsiniz. Mobil dünyasının en tepesinde iki işletim sistemi var. Android ve iOS. Bunların herhangi birini tercih etmeye kalktığınızda 2 milyon kullanıcıdan vazgeçmek zorunda olduğunuzu düşündüğünüzde, hibrit uygulama dünyası daha cazip bir konuma geliyor. Tabi ki bu tercihteki en önemli etkenler, hedef kitlenizi iyi tanımanız ve ihtiyaçlarını bilmeniz, mobil cihazlardaki işletim sistemlerini iyi tanımanız ve bütçeniz her şeyden önemli.

  • Mehmet Turac

    Elinize sağlık güzel bir yazı olmuş ama san ki hibrit uygulamaların üzerinden çok (ama çok) yüzeysel geçilmiş gibi geldi. Son bölümde her ne kadar hibrit uygulamalarında performansı ve geliştirme hızı ile native uygulamalara yaklaştığını söyleseniz de (en azından benim için) native maddeleri hibrit uygulamalar da pek geçerli değilmiş gibi anlaşılıyor.

    Özellikle “native” avantajlarındaki listede ki pek çok şey de hibrit uygulamalar içinde geçerli.
    Cihazından bazı özellikleri yerine de pek çok özelliklerine erişim sağlıyoruz da diyebiliriz, “bazı” denildiğinde sanki sadece bir kaç tane özelliğine erişebiliyormuşuz gibi anlaşılıyor. Ama dosya sisteminden, fotoğraflara oradan ‘force touch’a kadar pek çok özelliği kullanabiliyoruz. Özellikle ionic gibi bi’ framework kullanılıyorsa, biraz daha rahat kullanılıp entegre edilebiliyor.

    “Yayıncılar gibi sürekli güncellenen sistemler için cihazın kendi bildirim sistemini kullanmanızı sağlar.” Bu sistem gayet, güzel şekilde hibrit mimarisi üzerinde de işliyor. Her hangi bir şekilde sıkıntı da çekilmiyor.

    • Fatih
      Fatih

      Yorumunuz için teşekkürler. Hibrit uygulamalarla ilgili bölümde native uygulamalar gibi yazılım ve donanıma erişebildiklerinden bahsetmiştim ama o bölüm konuyu yeterli kadar açıklayamıyor. Burasıyla ilgili daha anlaşılır olması için bir güncelleme yaptım.

  • Deniz Yılmaz

    Elinize sağlık. En başta, bu bahsettiğiniz iki farklı sistemi tsnimlasaydiniz daha iyi olurdu bence. Teşekkürler.

Bugün ilk makalen bizdendi.
Daha fazlası için SHERPA Blog okuru olmalısın.
Giriş Yap Ücretsiz kaydol
İLGİNİ ÇEKEBİLİR
Hızır idi Yunus idi: A/B testi nasıl yapılmaz?
Alper Gökalp

Hızır idi Yunus idi: A/B testi nasıl yapılmaz?