Flutter Nedir? Tek Kodla Android ve iOS Uygulaması

Flutter, tek kod tabanından Android ve iOS uygulaması çıkarmayı sağlayan bir araç takımıdır. Nasıl çalıştığını, avantajlarını ve sınırlarını sade bir dille anlatıyoruz.

İçindekiler
  1. Flutter nedir, kim geliştiriyor?
  2. Flutter nasıl çalışır?
  3. İşletme açısından Flutter’ın avantajları
  4. Flutter’ın sınırları
  5. Flutter hangi projelere uygun?
  6. Flutter ile uygulamanızı nasıl birlikte geliştiririz?
  7. Sık sorulan sorular
  8. Sonuç

Bir uygulama teklifinde “Flutter ile geliştirilecek” ifadesini gördünüz ve bunun sizin için ne anlama geldiğini merak ediyorsunuz. Kısaca söylemek gerekirse Flutter, tek bir kod tabanından hem Android hem iOS uygulaması üretmeyi sağlayan bir geliştirme araç takımıdır. Bu yazıda Flutter nedir, nasıl çalışır, hangi projelerde öne çıkar ve nerede sınırlarına ulaşır sorularını teknik olmayan bir dille, ama işin aslını kaçırmadan anlatıyorum.

Flutter nedir, kim geliştiriyor?

Flutter, Google tarafından geliştirilen ve açık kaynak olarak yayınlanan bir arayüz araç takımıdır (UI toolkit). İlk kararlı sürümü 2018’in sonunda çıktı ve o günden bu yana mobil uygulama geliştirmede yaygın kullanılan çapraz platform çözümlerinden biri haline geldi. Android ve iOS’un yanı sıra web, Windows, macOS ve Linux için de uygulama üretebilir.

Flutter uygulamaları Dart adlı programlama diliyle yazılır. Dart da Google tarafından geliştirilmiştir; Java, C# veya JavaScript bilen bir geliştiricinin kısa sürede alışabileceği, okunaklı bir dildir.

Flutter nasıl çalışır?

Flutter’ı diğer çapraz platform çözümlerinden ayıran en önemli özellik, ekrandaki her şeyi kendi çizim motoruyla çizmesidir. Yani düğmeler, listeler ve metin alanları için işletim sisteminin hazır bileşenlerine bağımlı değildir; her pikseli kendisi oluşturur. Bunun iki sonucu vardır:

  • Uygulama Android’de ve iOS’ta neredeyse birebir aynı görünür; tasarımcının çizdiği ekran her iki platformda da tutarlı çıkar.
  • Dart kodu, yayın sürümünde doğrudan cihazın anlayacağı makine koduna derlenir; bu da akıcı animasyonlar ve hızlı açılış sağlar.

Flutter’da her şey bir widgettır. Metin, resim, boşluk, satır, sütun ve hatta tüm ekran, iç içe geçmiş widget’lardan oluşur. Ekranın ortasında bir yazı gösteren en basit widget şöyle görünür:

class Merhaba extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return const Center(child: Text('Merhaba'));
  }
}

Bu yapı ilk bakışta teknik görünse de pratikte şu anlama gelir: Arayüz küçük, tekrar kullanılabilir parçalardan kurulur. Bir kez tasarlanan ürün kartı, uygulamanın her yerinde aynı şekilde kullanılabilir.

Hot reload: geliştirmeyi hızlandıran özellik

Flutter’ın geliştiricilerin en sevdiği özelliği hot reloaddur. Kodda yapılan bir değişiklik, uygulama yeniden başlatılmadan bir iki saniye içinde ekranda görünür. Bu, tasarım düzeltmelerinin ve küçük denemelerin çok hızlı yapılmasını sağlar; dolaylı olarak da proje süresine ve maliyetine yansır.

Flutter ile React Native arasındaki fark

Flutter nedir diye araştıranların karşısına çıkan diğer seçenek genellikle React Native’dir. React Native, JavaScript ile yazılır ve ekranda büyük ölçüde işletim sisteminin kendi bileşenlerini kullanır. Flutter ise Dart ile yazılır ve arayüzü kendi motoruyla çizer. İkisi de olgun ve yaygın kullanılan araçlardır; seçim çoğu zaman ekibin deneyimine, tasarımın ne kadar özel olduğuna ve mevcut web altyapısına göre yapılır. Markaya özel, iki platformda birebir aynı görünmesi istenen arayüzlerde Flutter’ın çizim yaklaşımı belirgin bir kolaylık sağlar.

İşletme açısından Flutter’ın avantajları

Avantaj Size etkisi
Tek kod tabanı Android ve iOS için iki ayrı ekip ve iki ayrı bakım yerine tek bir proje
Tutarlı tasarım Marka görünümü her iki platformda da aynı kalır
Hızlı geliştirme Hot reload ve hazır widget’larla daha kısa geliştirme döngüsü
Geniş paket ekosistemi Harita, kamera, bildirim, ödeme gibi özellikler için hazır paketler
Açık kaynak Lisans ücreti yok, büyük bir topluluk ve belgeler

Flutter’ın sınırları

Dürüst bir değerlendirme için sınırlardan da söz etmek gerekir:

  • Uygulama boyutu: Çizim motorunu da içinde taşıdığı için en basit Flutter uygulaması, eşdeğer native uygulamadan biraz daha büyük olabilir.
  • Platforma özgü özellikler: Çok yeni bir işletim sistemi özelliği çıktığında Flutter paketlerinin buna uyum sağlaması zaman alabilir; gerekirse o kısım native kodla yazılıp Flutter’a bağlanır.
  • Platformun “yerel” hissi: Flutter iki platformun tasarım dilini de destekler, ancak her ayrıntıyı platforma özgü yapmak ek emek gerektirir.
  • Ağır 3D ve oyun: Yoğun 3D grafik veya oyun projelerinde oyun motorları daha uygundur.

Bu sınırlar işletme uygulamalarının büyük çoğunluğunu etkilemez. Native ile çapraz platform arasındaki seçimi daha ayrıntılı tartıştığım native mi hibrit mi yazısı karar vermenize yardımcı olabilir.

Flutter hangi projelere uygun?

  • Sipariş, randevu, üyelik ve sadakat uygulamaları
  • Mevcut web sitesinin verisini kullanan katalog veya içerik uygulamaları
  • Saha personeli, depo ve servis ekipleri için iç kullanım uygulamaları
  • Tablet tabanlı kiosk ve kontrol ekranları
  • Canlı veri gösteren takip ve bildirim uygulamaları

Kendi çalışmalarımdan bir örnek: kuyumcular için geliştirdiğim altın fiyatları eklentisi ve mobil uygulaması, Flutter ile yazıldı ve WordPress eklentisinin sunduğu API’den canlı altın, sarrafiye ve ons fiyatlarını çekiyor. Site ile uygulama aynı veriyi kullandığı için fiyatlar her iki tarafta tutarlı kalıyor.

Uygulama projesinin genel aşamalarını, backend ihtiyacını ve maliyet kalemlerini mobil uygulama geliştirme yazısında ayrıca anlattım.

Flutter ile uygulamanızı nasıl birlikte geliştiririz?

  1. İhtiyacı dinleme: Uygulamanın kimler tarafından, hangi cihazlarda ve hangi amaçla kullanılacağını konuşuyoruz; Flutter’ın projeniz için doğru seçim olup olmadığını birlikte değerlendiriyoruz.
  2. Kapsam ve teklif: Ekranları, veri kaynağını ve gerekli cihaz özelliklerini listeleyip yazılı teklif hazırlıyorum.
  3. Geliştirme ve test: Flutter ile geliştirdiğim test sürümlerini Android ve iOS cihazlarınıza gönderiyorum; hot reload sayesinde geri bildirimlerinizi hızlıca uyguluyorum.
  4. Yayın ve bakım: Mağaza yüklemesini tamamlıyor, Flutter ve işletim sistemi güncellemelerine uyum için bakım desteği sunuyorum.

Aklınızdaki uygulama için Flutter’ın uygun olup olmadığını konuşmak isterseniz iletişim sayfasından bana yazabilirsiniz.

Sık sorulan sorular

Flutter ile yapılan uygulama yavaş mı çalışır?

Hayır. Flutter uygulamaları yayın sürümünde makine koduna derlenir ve kendi çizim motoruyla çalışır; işletme uygulamalarında kullanıcı native uygulamadan farkı genellikle hissetmez.

Flutter uygulaması App Store’a yüklenebilir mi?

Evet. Flutter ile hazırlanan uygulamalar Google Play ve App Store’a diğer uygulamalar gibi yüklenir ve aynı inceleme süreçlerinden geçer.

Flutter’ı Google bırakırsa ne olur?

Flutter açık kaynaktır ve geniş bir topluluk tarafından da desteklenir. Yine de her teknolojide olduğu gibi uzun vadeli bakım planı yapmak ve kaynak kodu elinizde tutmak önemlidir.

Mevcut web sitemle aynı veriyi kullanabilir mi?

Evet. Sitenizin bir API’si varsa ya da eklenirse, Flutter uygulaması ürünler, fiyatlar ve içerikler gibi verileri doğrudan oradan alabilir.

Sonuç

Flutter nedir sorusunun kısa cevabı: tek kodla, iki platformda tutarlı ve akıcı uygulamalar üretmenin pratik yolu. Projeniz için uygun olup olmadığını birlikte değerlendirmek isterseniz bana ulaşabilirsiniz.