İkisinden birini baştan seçmek, henüz sorulmamış soruları kapatmak demek. Aynı uygulama hem platformun kendi arayüz katmanında hem tek bir ortak kod tabanında yürüyebilir. Fark, işin nereye değdiğinde ortaya çıkıyor.
Sıra da genelde ters kuruluyor. Mobil uygulama projesinde önce uygulamanın ne yapacağı yazılır, sonra nerede yazılacağına karar verilir.
Beş soru
- Uygulama kameraya, sensöre, arka plan işine ya da mağazanın kendi API'lerine ne kadar yakın duruyor?
- Aynı davranışı iOS ve Android'de ayrı ayrı sürdürmek ekibin günlük işi olacak mı?
- İlk sürümdeki hangi ekranlar iki platformda gerçekten aynı görünmek zorunda?
- Tasarım platformun kendi kalıplarına mı yaslanıyor, tek bir görsel sisteme mi?
- Bakım, yayın ve hata kaydı kimin masasında toplanacak?
Bir tanesine bile "bilmiyoruz" diyorsanız cevap teknoloji adı değil, kapsamı bir tur daha kesmek. iOS ve Android uygulaması ile cross-platform uygulama aynı brief üzerinden konuşulur.
İşin cihaza değdiği yer
Sürekli arka planda çalışan bir saha aracı düşünün. Konum topluyor, pil yönetimine takılıyor, izin ekranlarıyla boğuşuyor. Burada platformun kendi diline yakın durmak arada bir çeviri katmanı azaltıyor.
Katalog, randevu, hesap ve bildirim listesi ekranları ise iki mağazada neredeyse aynı. Bu tarafta ortak kod, iki ayrı ekip kurmadan ilerlemenin en ucuz yolu.
Ortak kodun sessiz maliyeti
"Bir kez yazar, iki yerde çalıştırırız" cümlesi kameraya, ödemeye, bildirime ve mağaza içi satın almaya gelince duruyor. O noktalar yine platforma değecek. Baştan listedeyse sıradan bir iş kalemi; listede değilse proje ortasında ikinci bir mimari çıkmış gibi hissettiriyor.
Ekibin bildiği yığın da bir kısıt. Elinizde tek yığın varsa ikincisini sıfırdan kurmayı doğru mimari diye anlatmak zor. Söylenmesi gereken şey, işin hangi parçasının o yığına rahat sığdığı.
Faturayı bakım kesiyor
İki native uygulamada her değişiklik iki kez planlanıyor, iki kez test ediliyor, iki kez gönderiliyor. Ortak kodda tek gönderim var, ama platforma değen her yama yine iki cihaz ailesinde doğrulanıyor. Yük ortadan kalkmıyor, sadece yeri değişiyor. Kimin taşıyacağını bilmiyorsanız karar henüz olgunlaşmamış.
Mağaza bu kararı vermiyor
Apple'ın inceleme yönergesi ve Google Play politikası iki yol için de aynı şekilde geçerli. Ortak kod reddi engellemiyor, native kod onayı hızlandırmıyor. Gönderim günü okunacak metin seçtiğiniz teknolojiye göre değişmiyor.
Beş sorunun cevabı yazılıysa karar çoğu zaman kendini söylüyor. Cevap yoksa hangi tarafı seçerseniz seçin ilk sürüm yanlış temele oturuyor.

