Mobil uygulama: native mi, Flutter mı?
Native geliştirme, iOS için Swift, Android için Kotlin ile ayrı ayrı yazmaktır; en yüksek performansı ve platform özelliklerine en hızlı erişimi verir ama iki ekip ya da iki kat süre ister. Flutter (Google) ve React Native (Meta) tek kod tabanından iki platforma çıkar; iş uygulamaları, paneller ve içerik uygulamalarının büyük çoğunluğu için yeterlidir. Ağır grafik, kamera, ses işleme ya da derin sistem entegrasyonu gerekiyorsa native tarafa yaklaşmak gerekir. Biz stüdyoda çoğu projeyi Flutter ile kuruyoruz.
- Karar, ekip ve bütçe kadar teknik gereksinime bağlıdır
- Tek kod tabanı, iki katı bakımdan kurtarır
- Mağaza kuralları sadece web sitesi paketlemeye izin vermez
- Uygulamanın ömrü, ilk sürümünden uzundur
Seçenekler neler?
- Native: iOS için Swift/SwiftUI, Android için Kotlin/Jetpack Compose. İki ayrı kod tabanı.
- Flutter: Google'ın açık kaynaklı arayüz araç takımı; Dart diliyle yazılır, tek kod tabanından iOS, Android ve masaüstüne çıkar (flutter.dev).
- React Native: Meta'nın çatısı; JavaScript/React bilen ekipler için doğal seçim (reactnative.dev).
- PWA: Uygulama gibi davranan web sitesi. Mağaza gerektirmez, ama donanım erişimi sınırlıdır.
Hangisi hangi işe uyar?
| İhtiyaç | Uygun yaklaşım |
|---|---|
| Form, liste, panel, sipariş, saha uygulaması | Flutter / React Native |
| Yoğun kamera, AR, gerçek zamanlı ses/video işleme | Native |
| Yalnızca içerik gösterimi, düşük bütçe | PWA |
| Platforma özel yeni özelliği ilk gün kullanmak | Native |
Maliyet nerede birikiyor?
İlk sürümün maliyeti buzdağının görünen kısmıdır. Uygulamanın gerçek maliyeti; iki mağazanın yıllık kuralları, işletim sistemi güncellemeleri, cihaz çeşitliliği ve destek talepleridir. Tek kod tabanı bu tekrar eden maliyetin yaklaşık yarısını ortadan kaldırır. Buna karşılık, platforma özel bir davranış gerektiğinde köprü kod yazmak gerekir.
Mağaza kuralları
Apple'ın App Store İnceleme Kuralları, "asgari işlevsellik" başlığı altında yalnızca web sitesini paketleyen uygulamaları reddeder. Yani "sitemizi uygulama yapalım" fikri, uygulamanın kendine ait bir değeri yoksa mağazada durmaz. Bildirim, çevrimdışı çalışma, kamera/QR ve cihaz özellikleri bu değeri oluşturan tipik unsurlardır.
Kendi deneyimimiz
Kendi ürünümüz xPersonel'in çalışan uygulamasını Flutter ile yazdık: QR okuma, konum doğrulama, bildirim ve çevrimdışı kayıt tek kod tabanında çalışıyor. Yönetici tarafı web panelde durduğu için mobil tarafın kapsamı bilinçli olarak dar tutuldu. Bu, mobil projelerde en çok işe yarayan kararlardan biridir: her ekranı telefona taşımayın.
Doğru soru "hangi teknoloji daha iyi" değil, "bu uygulamayı iki yıl boyunca kim güncelleyecek" sorusudur.
Kaynaklar
Sık sorulan sorular
Flutter uygulamaları yavaş mı?
Hayır. İş uygulamaları, paneller ve içerik uygulamalarında kullanıcı farkı hissetmez. Fark, ağır grafik ve gerçek zamanlı medya işlemede ortaya çıkar.
Tek kod tabanıyla iki mağazaya çıkmak yeterli mi?
Kod tek olsa da mağaza hesapları, ekran görüntüleri, gizlilik formları ve inceleme süreçleri ayrıdır.
Web sitemi uygulama yapabilir miyiz?
Sadece paketlemek mağaza kurallarına takılır. Uygulamanın bildirim, çevrimdışı çalışma gibi kendine ait bir değeri olmalıdır.
Uygulama yayınlandıktan sonra maliyet biter mi?
Bitmez. İşletim sistemi güncellemeleri ve mağaza kuralları yılda birkaç kez bakım gerektirir.



