← Blog · Teknoloji

Neden tüm uygulamalarımı Flutter ile yazıyorum?

Emre Akin tarafından · Teknoloji

Tek başına çalışan bir geliştirici için en kıymetli kaynak zamandır. Aynı uygulamayı iki kez (biri Android, biri iOS için) yazmak, bu kaynağı ikiye katlayarak harcamak demektir. Flutter'ı seçmemin temel sebebi tam olarak bu sorunu ortadan kaldırması.

Tek kod tabanı, iki platform

Flutter ile yazdığım kod, hem Android hem iOS üzerinde aynı şekilde çalışıyor. Bu sadece "kod paylaşımı" değil; arayüz, animasyon, davranış ve iş mantığının tamamı tek yerden yönetiliyor. Bir özellik eklediğimde iki platformda da aynı anda hazır oluyor. Bir hatayı düzelttiğimde her iki platformda da düzeliyor. 90'dan fazla uygulamayı tek başıma sürdürebilmemin en büyük sebeplerinden biri bu.

Hızlı geliştirme döngüsü

Flutter'ın "hot reload" özelliği, yaptığım değişikliği saniyeler içinde çalışan uygulamada görmemi sağlıyor. Bir rengi değiştirdiğimde, bir boşluğu ayarladığımda uygulamayı baştan derlemek zorunda kalmıyorum. Bu küçük gibi görünen ayrıntı, gün içinde yüzlerce kez tekrarlandığında muazzam bir zaman kazancına dönüşüyor ve tasarımla deneme yapmayı çok daha keyifli hale getiriyor.

Oyunlar için Flame

Sadece klasik uygulamalar değil, oyunlarımın çoğunu da Flutter ekosistemiyle geliştiriyorum. Flame oyun motoru, Flutter üzerine kurulu olduğu için aynı dili ve aynı araçları kullanmaya devam edebiliyorum. Ice Tower ve Apex Street Racing gibi arcade oyunlarım bu sayede ortaya çıktı. Ayrı bir oyun motoru öğrenmek yerine, zaten bildiğim ekosistemde kalmak benim için büyük avantaj.

Doğru araç, size yeni bir şey öğretmekten çok, bildiğiniz şeyi daha hızlı yapmanızı sağlayan araçtır.

Tutarlı görsel dil

Flutter kendi çizim motoruyla her pikseli doğrudan kontrol ettiği için, tasarladığım arayüz farklı cihazlarda neredeyse birebir aynı görünüyor. Bu, "şu telefonda neden farklı duruyor?" sorularıyla daha az uğraşmam anlamına geliyor. Tüm uygulamalarımda ortak bir tema sistemi kullanmamı da kolaylaştırıyor.

Peki sınırları neler?

Flutter mükemmel değil ve dürüst olmak gerekirse her senaryo için en iyi seçim de değil. Dikkat ettiğim birkaç nokta var:

  • Uygulama boyutu: Flutter uygulamaları, tamamen yerel (native) yazılmış basit uygulamalara göre biraz daha büyük olabiliyor. Çok basit araçlarda bunu göz önünde bulunduruyorum.
  • Platforma özel özellikler: Bazı çok özel donanım veya işletim sistemi özelliklerine erişmek için yine de platforma özgü köprü kod yazmak gerekebiliyor.
  • Yeni platform sürümleri: İşletim sistemleri güncellendiğinde bazen kütüphanelerin uyum sağlamasını beklemek gerekebiliyor.

Bu sınırların hiçbiri benim için Flutter'dan vazgeçmeyi gerektirecek kadar büyük olmadı. Geliştirdiğim uygulama türleri için kazandırdığı hız, getirdiği küçük bedellerden çok daha değerli.

Sonuç

Eğer tek başınıza veya küçük bir ekiple birden fazla platforma uygulama çıkarmak istiyorsanız, Flutter ciddi olarak değerlendirmeniz gereken bir araç. Bana yıllar içinde binlerce saat kazandırdı ve bu yazıda anlattığım iş akışının temelini oluşturuyor. Tek kişilik üretim sürecimi merak ediyorsanız "Tek başıma 90 uygulamayı nasıl geliştirdim?" yazıma göz atabilirsiniz.