"Uygulamayı native mi yazalım, Flutter ile mi?" sorusu neredeyse her mobil projenin ilk toplantısında gelir. İnternette iki taraf için de ikna edici yazılar bulabilirsiniz. Biz bu soruya teknoloji tercihimizle değil, ürüne bakarak cevap veriyoruz. İki yaklaşımla da ürün yayınlıyoruz ve ikisinin de doğru olduğu durumlar var.

Önce terimler

Native, iOS için Swift, Android için Kotlin ile iki ayrı uygulama yazmak demektir. Flutter ise tek bir kod tabanından iki platform için de uygulama üretir. İlki platformun tüm imkânlarına doğrudan erişim verir, ikincisi geliştirme süresini ve bakım yükünü azaltır.

Sorduğumuz dört soru

  1. Ürün cihazın donanımını ne kadar zorluyor? Gerçek zamanlı video işleme, karmaşık Bluetooth iletişimi, arka planda sürekli konum takibi ya da artırılmış gerçeklik gibi ihtiyaçlarda native daha güvenli bir zemindir.
  2. İki platformda aynı anda mı çıkmanız gerekiyor? Pazara hızlı çıkmak ve iki platformda aynı deneyimi sunmak öncelikliyse Flutter belirgin bir zaman avantajı sağlar.
  3. Arayüz ne kadar size özgü? Markaya özel, platformdan bağımsız bir görsel dil istiyorsanız Flutter bunu tek seferde çizer. Uygulamanın her platformda o platformun standart davranışlarına birebir uyması gerekiyorsa native öne geçer.
  4. Uygulamayı iki yıl sonra kim geliştirecek? Kendi ekibinizi kuracaksanız, o ekibin yetkinliği kararı doğrudan etkiler.

Flutter'ın doğru olduğu durumlar

Rezervasyon, sipariş, içerik, topluluk ve kurumsal süreç uygulamalarının büyük çoğunluğu bu gruba girer. Tek kod tabanı sayesinde bir özellik iki platformda aynı gün yayına girer, hata bir kez düzeltilir. Performans farkı, bu tür ürünlerde kullanıcının fark edeceği düzeyde değildir.

Native'in doğru olduğu durumlar

Ürünün asıl değeri cihazın kendisinden geliyorsa native seçiyoruz: kamera ve sensör ağırlıklı uygulamalar, giyilebilir cihazlarla derin entegrasyon, işletim sisteminin yeni çıkan özelliklerini ilk günden kullanması gereken ürünler. Burada iki ayrı kod tabanının maliyeti, kazanılan kontrolün yanında makuldür.

İkisi birlikte

Karar çoğu zaman ya o ya bu değildir. Flutter ile yazılmış bir uygulamaya, yalnızca ihtiyaç duyulan yerde native modüller eklemek mümkündür. Böylece uygulamanın büyük kısmı tek kod tabanında kalır, donanıma yakın çalışan küçük kısım platforma özel yazılır.

Sonuç

Doğru teknoloji, ürününüzün ihtiyacına ve yol haritanıza uyan teknolojidir. Bu kararı keşif aşamasında, ürünün iki yıl sonra nerede olacağını konuşarak veriyoruz. Yanlış seçimin maliyeti ilk sürümde değil, üçüncü sürümde ortaya çıkar.