bettadev

Native, cross-platform mu, web mi? İlk uygulamanız için doğru seçim

SwiftUI ve Kotlin, React Native ve Flutter ya da bir web uygulaması: her yaklaşımın size gerçekte neye mal olduğu, nerede parladığı ve gerçek bir projede nasıl karar verdiğimiz.

"Hangi teknolojiyi kullanmalıyız?" bir proje özetinde genellikle "ne kadar sürer?" sorusundan hemen sonra gelen ikinci sorudur. Önemlidir, ama sanıldığı kadar değil. Doğru cevap, o yıl hangi framework'ün moda olduğundan çok ürünün kendisine bağlıdır.

Aşağıda üç gerçek seçeneği teknik jargona boğmadan anlatıyor, ardından aralarında seçim yaparken kullandığımız soruları paylaşıyoruz.

Native: her platforma ayrı uygulama

Native uygulama, her platformun kendi dili ve araçlarıyla yazılır: iPhone için Swift ve SwiftUI, Android için Kotlin ve Jetpack Compose. Tasarımı ve sunucuyu paylaşan ama kodu paylaşmayan iki ayrı uygulama geliştirirsiniz.

Güçlü yanları

  • Mümkün olan en iyi performans ve her platformda en "yerli" his.
  • Yeni işletim sistemi özelliklerine ilk günden erişim: widget'lar, Live Activities, Apple Watch, yeni kamera ve sağlık API'leri.
  • Kodunuzla cihaz arasında daha az katman; ses, video, artırılmış gerçeklik ya da yoğun grafik gibi zorlu işlerde fark yaratır.

Bedeli

İki kod tabanı, hem geliştirirken hem bakımda daha fazla iş demektir. Her özellik iki kez yazılır, iki kez test edilir ve zamanla birbirinden ayrışabilir. Ürün platforma özgü bir yeteneğe dayanmıyorsa, çoğu ilk sürüm için bu ikiye katlanmayı savunmak zordur.

Cross-platform: tek kod tabanı, iki mağaza uygulaması

React Native ve Flutter gibi framework'ler, tek bir kod tabanından mağazalardan indirilen gerçek iOS ve Android uygulamaları üretir. İyi yapıldığında kullanıcılar native bir uygulamadan farkını anlamaz.

Güçlü yanları

  • Kodun büyük kısmı bir kez yazılır; iOS ve Android aynı adımda ilerler, bütçe daha uzağa gider.
  • Gerektiği yerde native modüller kullanılabilir; nadiren bir köşeye sıkışırsınız.
  • React Native'de kodun bir kısmı web sürümüyle paylaşılabilir; küçük düzeltmeler de çoğu zaman, mağaza kurallarının izin verdiği sınırlar içinde, yeni bir mağaza derlemesi beklemeden OTA güncellemeyle yayınlanabilir.

Bedeli

Sizinle platform arasına bir framework eklemiş olursunuz. Bu genellikle görünmezdir ama yeni işletim sistemi özellikleri biraz gecikmeli gelebilir, çok zorlu uygulamalar da sınırlara takılabilir. Cross-platform'u iyi yapmak, native tarafı da anlayan insanlar ister; "bir kez yaz" vaadi uygulamanın çoğunu kapsar, tamamını değil.

Web: tarayıcıda çalışan uygulama

Bir web uygulaması (bazen ana ekrana eklenebilen bir PWA, yani progresif web uygulaması) her cihazda tarayıcının içinde çalışır. Mağaza yok, kurulum yok, tek bir bağlantı.

Güçlü yanları

  • İnsanlara ulaşmanın en hızlı yolu: bağlantıya sahip herkes hemen kullanabilir.
  • Arama motorları onu bulabilir; mağazadaki bir uygulama bunu aynı şekilde sunamaz.
  • Güncellemeler yayına aldığınız anda canlıdır. İnceleme kuyruğu yok.
  • Mağaza uygulamalarına yatırım yapmadan önce bir fikri doğrulamak için idealdir.

Bedeli

Tarayıcı hâlâ kurulu bir uygulamanın yapabildiği her şeyi yapamıyor. iPhone'da bildirimler sadece ana ekrana eklenmiş web uygulamalarında çalışır, arka plan görevleri sınırlıdır ve bazı cihaz özellikleri ya yoktur ya da farklı davranır. Kullanıcılar da ciddi ürünleri App Store ve Google Play'de bulmayı bekler.

Kararı gerçekten belirleyen sorular

  1. Hangi özelliklerden vazgeçilemez? Ürünün merkezinde Apple Watch, ileri kamera kullanımı, artırılmış gerçeklik ya da sağlık verileri varsa native'e yaklaşın. Hesaplar, içerik, ödemeler, sohbet ve bildirimlerse cross-platform bunları rahatça karşılar.
  2. Kullanıcılarınız nerede? Bazı pazarlarda Android, bazılarında iPhone ağır basar. İlk günden ikisine de ihtiyacınız varsa ortak kod tabanı çok şey kazandırır.
  3. Fikirden ne kadar eminsiniz? Kanıtlanmamış fikirler en ucuz dürüst testi hak eder; çoğu zaman bir web uygulaması ya da tek bir cross-platform sürüm.
  4. Yayından sonra bakımı kim yapacak? İleride ekip kuracaksanız, işe alımı kolay, yaygın bir teknoloji seçin. Egzotik tercihler kötü yaşlanır.
  5. İkinci yılın bütçesi ne? İki native uygulamayı güncel tutmak kabaca iki kat maliyetlidir. Planlanmışsa sorun değil.

Genellikle ne öneriyoruz?

DurumunuzMantıklı bir başlangıç
Bir fikri gerçek kullanıcılarla hızlıca test etmekMobil öncelikli bir web uygulaması
iOS ve Android'de ilk mağaza uygulamasıCross-platform (React Native), gereken yerde native modüllerle
Tek bir platformun yetenekleri üzerine kurulu bir ürünÖnce o platform için native
Saat, widget ya da eklenti isteyen mevcut bir uygulamaAna uygulamanın yanında, o parça için native

Kendi ürünlerimizde de bu karışımla çalışıyoruz. Uygulamalarımızı OTA güncellemelerle yayınlıyoruz; Apple Watch çalışmalarımızı ise SwiftUI ile native olarak yazıyoruz, çünkü saat tam da native'in karşılığını verdiği türden bir yer.

En önemli nokta, kararın kapsam belirlenirken, onu geliştirecek kişiler tarafından bilinçli olarak verilmesi ve gerekçeleriyle birlikte kapsama yazılması. Anladığınız bir teknoloji seçimiyle yaşamak, size miras kalmış bir seçimle yaşamaktan çok daha kolaydır.

Sonraki adım

Bu seçenekleri gerçek bir proje için tartıyorsanız, uygulamanın ne yapması gerektiğini ve kimin için olduğunu kısaca bize yazın. Size sade bir dille bir yaklaşım önerip bunun süreye ve bütçeye etkisini anlatalım. Hâlâ bir uygulamaya ihtiyacınız olup olmadığına karar veriyorsanız, dürüst testimizle başlayın.