Uzmanlık

Flutter Uzmanı

Flutter, tek kod tabanından iOS ve Android uygulaması üreten bir mobil geliştirme çerçevesi. Yirmi yılı aşkın süredir mobil yazılım geliştiriyorum; Flutter'ı kurumsal saha uygulamalarından yapay zekâ destekli ürünlere kadar gerçek projelerde kullandım. Bu sayfada Flutter'ın ne olduğunu, bir Flutter uzmanının ne iş yaptığını ve projeniz için doğru seçim olup olmadığını anlatıyorum.

Flutter nedir?

Flutter, Google tarafından geliştirilen ve tek kod tabanıyla iOS, Android, gerektiğinde web ve masaüstü uygulaması üretmeyi sağlayan açık kaynak bir çerçevedir. Dart diliyle yazılır. Arayüzü kendi çizim motoruyla oluşturduğu için uygulamanın görünümü ve davranışı iki platformda büyük ölçüde aynıdır.

Pratikte anlamı şudur: aynı işi iki kez yazmak yerine bir kez yazıp iki mağazaya çıkarırsınız. Ancak bu, "tek kod her şeyi çözer" demek değildir. İzinler, arka plan davranışları, bildirimler ve mağaza kuralları platforma göre hâlâ ayrı ele alınır. İyi bir Flutter uzmanı bu farkı bilerek çalışır.

Flutter uzmanı ne iş yapar?

  • Mimari kurar. Arayüz, durum yönetimi, veri ve servis katmanlarını projenin büyüklüğüne göre ayırır. Küçük bir uygulamaya ağır mimari, büyük bir ürüne düzensiz kod yazmaz.
  • Durum yönetimini seçer. Provider, Riverpod, Bloc gibi yaklaşımlar arasından moda olduğu için değil, ekibin büyüklüğüne ve ürünün ömrüne göre karar verir.
  • Native entegrasyonları yazar. Kamera, konum, bildirim, dosya, ödeme, biyometrik giriş ve cihaz güvenliği gibi platform kanallarını kurar.
  • Performansı ölçer. Soğuk açılış süresi, kare düşmeleri, bellek kullanımı ve ağ trafiğini izler; "cihazda akıcı" hissini tesadüfe bırakmaz.
  • Test ve otomasyon kurar. Birim, widget ve entegrasyon testleri; CI/CD, sürüm imzalama ve mağaza yayın hattı.
  • Bakım ve devri planlar. Flutter sürüm yükseltmeleri, paket güncellemeleri, mağaza politika değişiklikleri ve kaynak kodun dokümantasyonuyla birlikte devri.

Flutter ne zaman doğru seçim?

  • iOS ve Android'i aynı anda hedefliyorsanız ve bütçeniz iki ayrı ekip kaldırmıyorsa.
  • Görev, anket, sipariş, saha takibi, raporlama gibi form ve veri ağırlıklı iş uygulamalarında.
  • Hızlı MVP çıkarıp gerçek kullanıcı geri bildirimiyle ilerlemek istiyorsanız.
  • Arayüzün marka kimliğine göre birebir kontrol edilmesi gerekiyorsa; Flutter bu konuda native'e yakın esneklik verir.

Ne zaman native düşünülmeli?

  • Çok özel donanım entegrasyonu varsa: artırılmış gerçeklik, düşük seviye kamera işleme, özel sensörler.
  • Platformun yeni API'lerine günü gününe bağımlı, donanıma yakın bir ürünse.
  • Tek platform için çok küçük bir uygulama yapılıyorsa; Flutter'ın getirisi maliyetine değmeyebilir.
  • Mevcut büyük bir native uygulamaya küçük bir ekleme yapılıyorsa; modül bazlı geçiş planı gerekir.

Bu liste Flutter'ı kötülemez; maliyet ve risk karşılaştırmasıdır. Aynı konuyu daha ayrıntılı olarak Flutter mı native mi yazımda da ele aldım.

Deneyimim

Açık Deniz Bilişim'de CTO olarak FMCG saha ekipleri için görev, anket ve konum tabanlı raporlama uygulamaları geliştirdim. Bu projelerde Flutter'ın yanında native Android (Java) ve iOS (Swift) de kullandık. ERP entegrasyonu, çevrimdışı çalışma ve saha koşullarında dayanıklılık kritikti.

DoktorAsistan'da mobil tarafı Flutter ile kurdum; backend Laravel ve Python, yapay zekâ katmanı LLM ve RAG üzerine oturuyor. Native geçmişim, hangi noktada platform kanalına inmem gerektiğini ve mağaza kurallarının nerede sorun çıkaracağını önceden görmemi sağlıyor.

Bir Flutter projesi nasıl ilerler?

İşi aşamalara bölerek ilerliyorum; her aşamanın sonunda çalışan bir çıktı ve onay var:

  1. Keşif ve teknik plan. Ekran akışları, veri modeli, entegrasyon listesi ve kapsam dışı maddeler.
  2. İskelet. Giriş, bir gerçek ekran ve cihazda çalışan test sürümü.
  3. Ana akış. Ürünün asıl işi çalışır: sipariş, görev, mesaj, randevu veya ödeme.
  4. Entegrasyon ve test. Bildirim, ödeme, e-posta, hata senaryoları ve mağaza hazırlığı.
  5. Yayın ve devir. App Store ve Google Play yayını, kaynak kod, dokümantasyon ve bakım planı.

Aşamaların nasıl işlediğini iş neden aşama aşama yapılmalı yazımda anlattım.

Sık yapılan hatalar

  • Durum yönetimini proje büyüdükten sonra değiştirmek; her değişiklik tüm ekranları yeniden yazdırır.
  • Paketleri güncellemeden bırakmak; bir yıl sonra Flutter sürüm yükseltmesi haftalar alır.
  • Testleri sonraya bırakmak; mağaza yayını öncesi en pahalı hatalar burada çıkar.
  • "Tek kod" beklentisiyle platform farklarını yok saymak: izin metinleri, arka plan kısıtları ve bildirim davranışları hâlâ ayrıdır.

Sık sorulan sorular

Flutter mı native mi kullanmalıyım?

Hedef platformlar, ekip yapısı ve donanım ihtiyacı belirler. iOS ve Android'i birlikte hedefleyen iş uygulamalarında Flutter genellikle daha hızlı ve ekonomiktir. Ağır donanım, artırılmış gerçeklik veya platforma özel derin entegrasyon gerekiyorsa native daha doğru olabilir.

Tek kod tabanı gerçekten yeterli mi?

İş mantığının ve arayüzün büyük bölümü ortaktır. Ancak izinler, arka plan çalışması, bildirimler, mağaza metadata'sı ve bazı native kütüphaneler platforma göre ayrı ele alınır. Doğru planlandığında toplam işin yaklaşık yüzde 85-95'i ortak koddan gelir.

Bir Flutter uygulaması ne kadar sürede çıkar?

Süre ekran sayısına, entegrasyonlara ve tasarımın hazır olmasına bağlıdır. Küçük bir MVP genellikle 4-8 hafta aralığında çıkar; kurumsal entegrasyonlu uygulamalarda bu süre uzar. Kesin süre ancak keşif aşamasından sonra verilebilir.

Mevcut native uygulamaya Flutter eklenebilir mi?

Evet. Flutter, mevcut iOS veya Android uygulamasına modül bazında eklenebilir. Önce hangi ekranların taşınacağı ve iki taraf arasındaki veri geçişinin nasıl olacağı planlanır; ardından kademeli geçiş yapılır.

Mağaza yayınını kim yapar?

Yayın sürecini ben yürütürüm: sürüm imzalama, mağaza metadata'sı, ekran görüntüleri ve inceleme süreci. Geliştirici hesapları her zaman sizin adınıza kalır; erişim ve sahiplik sizde olur.

Bakım ve devir nasıl olur?

Kaynak kod, dokümantasyon ve sürüm notlarıyla birlikte teslim edilir. Flutter sürüm yükseltmeleri, paket güncellemeleri ve mağaza politika değişiklikleri için istenirse aylık bakım anlaşması yapılır.

Flutter ile web veya masaüstü uygulaması da yapılır mı?

Uygun senaryolarda evet. Ancak karmaşık, SEO kritik veya ağır etkileşimli web ürünlerinde ayrı bir değerlendirme gerekir; her proje için doğru araç aynı değildir.