Üç yaklaşımın maliyeti, performansı, mağaza politikaları ve bakım yükü farklıdır. Hangi uygulama türünde hangisinin doğru seçim olduğunu, karar verirken bakılması gereken teknik ölçütlerle birlikte anlatıyoruz.
Mobil uygulama kararında üç yol vardır: her platform için ayrı yazmak, tek kod tabanıyla iki platforma çıkmak veya web teknolojileriyle uygulama benzeri bir deneyim sunmak. Üçü de doğru cevaptır; hangisinin doğru olduğu uygulamanın ne yaptığına bağlıdır.
Üç yaklaşım arasındaki temel fark nedir?
Native geliştirme, platformun kendi diliyle yazmaktır: iOS için Swift, Android için Kotlin. Cihazın tüm yeteneklerine doğrudan erişilir, arayüz platformun kendi bileşenleriyle kurulur.
Cross-platform, tek kod tabanından iki platforma çıkmaktır. React Native, JavaScript ile yazılır ve platformun kendi arayüz bileşenlerini kullanır. Flutter, Dart ile yazılır ve arayüzü kendi çizim motoruyla üretir; bu yüzden görünüm her yerde aynıdır.
PWA (Progressive Web App), aslında bir web sitesidir; ancak servis çalışanı sayesinde çevrimdışı çalışabilir, ana ekrana eklenebilir ve uygulama gibi açılır. Mağazadan indirilmesi gerekmez.
Hangi ölçütlerde nasıl ayrışıyorlar?
| Ölçüt | Native | Cross-platform | PWA |
|---|---|---|---|
| Geliştirme maliyeti | Yüksek (iki ayrı kod tabanı) | Orta | Düşük |
| Performans | En iyi | Çoğu uygulama için yeterli | Basit senaryolarda yeterli |
| Cihaz erişimi | Tam | Geniş; bazı yenilikler gecikmeli | Sınırlı, platforma göre değişir |
| Arayüz hissi | Platforma tam uyumlu | Yakın | Web hissi kalabilir |
| Mağazada yer alma | Var | Var | Yok (doğrudan bağlantı) |
| Güncelleme hızı | Mağaza incelemesine bağlı | Mağaza incelemesine bağlı | Anında |
| Bakım yükü | İki ekip / iki sürüm | Tek kod tabanı | Web ile aynı |
Native ne zaman gerekir?
Native geliştirme, uygulamanın işi cihazın kendisiyle sıkı bağ kurduğunda gerekir. Somut örnekler:
- Yoğun grafik işleyen uygulamalar ve oyunlar.
- Kamera üzerinde gerçek zamanlı işlem yapan uygulamalar; artırılmış gerçeklik, belge tarama, görüntü işleme.
- Arka planda sürekli çalışan konum takibi veya sensör okuması gereken uygulamalar.
- Cihaz üzerinde ağır hesaplama yapan uygulamalar.
- Platformun yeni çıkan özelliklerini ilk gün kullanması gereken uygulamalar; giyilebilir cihaz uygulamaları, sistem widget'ları.
- Güvenlik gereksinimi çok yüksek uygulamalar; donanım tabanlı anahtar saklama ve biyometrik doğrulamanın derin kullanımı.
Bu listede olmayan çoğu iş uygulaması için native, ödediğiniz bedelin karşılığını vermez.
Cross-platform hangi durumda en verimli?
İçerik gösteren, form dolduran, listeleyen ve bir arka uçla konuşan uygulamaların büyük bölümü bu kategoriye girer: e-ticaret uygulamaları, saha ekibi uygulamaları, rezervasyon ve randevu uygulamaları, kurumsal içerik uygulamaları, sadakat programları.
Avantajı yalnızca ilk maliyet değildir. Asıl kazanç bakımdadır: tek bir hata düzeltmesi iki platformda birden geçerli olur, yeni özellik bir kez yazılır. İki ayrı ekiple ilerleyen projelerde sürümlerin birbirinden ayrışması zamanla ciddi bir yönetim yüküne dönüşür.
React Native ile Flutter arasındaki seçim genellikle ekip yetkinliğiyle verilir. Ekipte JavaScript ve React deneyimi varsa React Native geçiş maliyetini düşürür; ayrıca web ile kod paylaşımı mümkündür. Arayüzün her platformda birebir aynı görünmesi ve karmaşık animasyonlar önemliyse Flutter daha öngörülebilir sonuç verir.
PWA gerçekten uygulamanın yerini tutar mı?
Bazı senaryolarda tutar. Kullanıcının nadiren açtığı, esas olarak bilgi gösteren ve derin cihaz erişimi gerektirmeyen işlerde PWA hem yeterlidir hem de belirgin avantajlar sunar: indirme adımı yoktur, bağlantıyla paylaşılır, güncelleme anında yayılır, arama motorlarında bulunabilir ve mağaza komisyonu söz konusu değildir.
Sınırları da net bilmek gerekir. Bildirim desteği platforma göre farklıdır ve iOS tarafında kullanıcının uygulamayı ana ekrana eklemesini gerektirir. Arka plan çalışma imkânları kısıtlıdır. Bluetooth, NFC ve gelişmiş kamera özelliklerine erişim sınırlıdır. Depolama alanı sistem tarafından temizlenebilir.
Pratik bir yaklaşım şudur: PWA'yı uygulamanın rakibi değil, ilk adımı olarak düşünün. Web tarafınızı PWA olarak kurmak zaten yapılması gereken bir iştir; gerçek kullanım verisi mobil uygulama ihtiyacını doğruladığında native ya da cross-platform yatırımını daha sağlam gerekçeyle yaparsınız.
Mağaza politikaları kararı nasıl etkiler?
Uygulama mağazaları teknik bir kanal değil, kurallı bir dağıtım ortamıdır. Karar verirken bilinmesi gerekenler:
- İnceleme süreci: Her sürüm incelemeden geçer. Acil bir düzeltmede bile yayına alma süresi sizin kontrolünüzde değildir. Uzaktan yapılandırma ve özellik anahtarları bu riski azaltır.
- Dijital içerik satışı: Uygulama içinde tüketilen dijital ürün ve abonelik satışlarında mağazaların kendi ödeme sistemlerini kullanma zorunluluğu ve komisyon oranları vardır. Kurallar bölgeye göre ve zaman içinde değişiyor; iş modeli buna dayanıyorsa güncel koşulları projeye başlamadan doğrulayın.
- Fiziksel ürün ve hizmet satışı: Genellikle bu kapsamın dışındadır; kendi ödeme altyapınızı kullanabilirsiniz.
- Gizlilik beyanları: Hangi verinin toplandığı, izleme yapılıp yapılmadığı ve izin akışları mağaza formlarında beyan edilir. Yanlış beyan, yayından kaldırma sebebidir.
- Hesap silme zorunluluğu: Hesap açılmasına izin veren uygulamalarda, kullanıcının hesabını uygulama içinden silebilmesi beklenir.
- Sürüm bakımı: Uzun süre güncellenmeyen uygulamalar mağazadan kaldırılabilir; platform sürümü yükseldiğinde hedef sürüm güncellemesi gerekir.
Uygulama sonrası maliyetler neler?
Mobil uygulamanın en çok hafife alınan tarafı bakımdır. Web sitesinden farklı olarak, siz hiçbir şey değiştirmeseniz bile ortam değişir: yılda birer büyük sürüm çıkaran iki işletim sistemi, yenilenen cihaz ekran oranları, güncellenen kütüphaneler ve mağaza kuralları.
Yıllık olarak planlanması gereken kalemler: geliştirici hesap ücretleri, sertifika ve imzalama yenilemeleri, işletim sistemi sürüm uyumluluğu çalışması, kütüphane güncellemeleri, hata takibi ve çökme raporlarının izlenmesi, arka uç sunucu maliyeti. Bir uygulamayı yayında ve sağlıklı tutmak, geliştirme maliyetinin belirli bir oranını her yıl tekrar gerektirir; bunu bütçeye baştan yazmak gerekir.
Uygulama gerçekten gerekli mi?
Sorulması gereken ilk soru budur ve çoğu zaman atlanır. Mobil uygulama, kullanıcıdan indirme ve cihazında yer ayırma isteyen bir taahhüttür. Kullanıcı bunu ancak tekrar tekrar kullanacağı bir işlev için yapar.
Uygulamanın anlamlı olduğu durumlar: sık tekrarlanan kullanım, bildirim ihtiyacı, çevrimdışı çalışma gereği, cihaz özelliklerinin kullanımı ve süreklilik taşıyan bir üyelik ilişkisi. Buna karşılık yılda birkaç kez yapılacak bir işlem için mobil uyumlu bir web sayfası hem daha ucuz hem de kullanıcı için daha kolaydır.
Pratik bir gösterge: mevcut sitenizin mobil trafiğinde kullanıcıların ne sıklıkla geri döndüğüne bakın. Geri dönüş oranı düşükse uygulama bu oranı kendiliğinden yükseltmez; yalnızca araya bir indirme adımı ekler.
Yayına almadan önce neler hazır olmalı?
- Uygulama mağazası hesapları ve geliştirici sözleşmeleri; kurum adına açılmalı, kişisel hesap kullanılmamalıdır.
- İmzalama anahtarları ve sertifikalar; kaybedildiğinde güncelleme yayınlanamaz, bu yüzden güvenli biçimde saklanmalıdır.
- Gizlilik politikası ve veri toplama beyanı; mağaza formlarında beyan edilen bilgiyle uygulamanın davranışı örtüşmelidir.
- Çökme ve hata izleme aracının kurulmuş olması.
- Analitik olaylarının tanımlanmış olması; hangi ekranların kullanıldığını bilmeden geliştirme yön bulamaz.
- Uzaktan yapılandırma ya da özellik anahtarları; mağaza incelemesini beklemeden davranış değiştirebilmek için.
- Mağaza görselleri, açıklama metni ve anahtar kelimeler; uygulama mağazası da bir arama ortamıdır ve listeleme kalitesi indirme sayısını doğrudan etkiler.
Karar için beş soru
- Uygulama cihazın hangi yeteneklerine erişmek zorunda? Kamera, konum, bluetooth, arka plan çalışma?
- Kullanıcı bu uygulamayı ne sıklıkla açacak? Nadiren açılacak bir uygulama için indirme engeli aşılmaz.
- Uygulama içinde dijital ürün mü satılacak, fiziksel ürün mü?
- Ekipte hangi teknoloji biliniyor ve uygulamayı kim sürdürecek?
- İki yıl sonra bu uygulamada ne olacak? Sürekli geliştirilecek mi, yoksa bir kampanya işi mi?
Pratik sonuç
Çoğu işletme uygulaması için cross-platform doğru başlangıçtır: maliyeti makul, bakımı tek noktadan yürür ve performansı bu tür uygulamalar için fazlasıyla yeterlidir. Cihazın yeteneklerini derinlemesine kullanan uygulamalarda native gereklidir ve alternatifi yoktur. Kullanım sıklığı düşük, bilgi ağırlıklı senaryolarda ise PWA hem hızlı hem ucuzdur.
Hangi yolu seçerseniz seçin, arka uç tarafını uygulamadan bağımsız kurmak önemlidir. İyi tanımlanmış bir API üzerinden çalışan bir mimaride, ilerde uygulamanın teknolojisini değiştirmek yalnızca istemci tarafını etkiler; veriniz, iş kurallarınız ve entegrasyonlarınız yerinde kalır. Bu tercih, mobil kararının geri döndürülemez olmaktan çıkmasını sağlar.
Karar veremediğiniz durumda işe PWA ile başlamak en az riskli yoldur. Kullanım verisi biriktikçe hangi ekranların gerçekten kullanıldığını, hangi cihaz özelliklerinin gerektiğini ve uygulamanın kaç kişiye hitap ettiğini öğrenirsiniz. O noktadan sonra verilen karar tahmine değil, ölçüme dayanır.