Flutter, Google tarafından geliştirilmiş ve açık kaynak kodlu olan, topluluğun geliştirmesine sunulmuş bir mobil uygulama geliştirme SDK sı olmaktadır.
En önemli özelliği tek bir kod tabanı ile hem iOS, hem Android, web ve masaüstü için yüksek performanslı şekilde ve yüksek kaliteli uygulamalar oluşturmayı sağlayan – hedefleyen yazılımcılar için bir uygulama SDK sıdır.
Flutter’ın Önemli Özellikleri
Flutter’ın temel amacı; çok platformlu UI araç kitleri ile uygulama geliştirmenin ana noktasını hedeflemektir. Flutter başlangıçta oluşturulurken hem yeni başlayanlar hem de deneyimli geliştiriciler tarafından kullanılmak üzere tasarlanmıştır.
Flutter, geliştiricilerin kodlarını denemelerine olanak tanıyan Hot Reload adlı bir özelliğe sahiptir. Bu sayede geliştiriciler, kodda değişiklik yapabilir ve hatalarını o an düzeltebilirler. Mobil uygulama konusunda gezinme ve kaydırma söz konusu olduğunda, iOS ve Android platformları arasında büyük farklar bulunmaktadır. Bu nedenle Flutter, Native Android ve iOS uygulamaları oluşturmak için kullanılabilecek bir dizi özelleştirilebilir widget ile birlikte gelir.
Google Flutter, kullanıcı deneyimini geliştirmeye odaklanan, etkileyici ve esnek bir kullanıcı arayüzüne sahiptir. Katmanlı mimarisi sayesinde mobil yazılım açısından kullanıcı arayüzünün (UI) esnek tasarımlarla özelleştirilmesini sağlar.

Flutter’ın Avantajları
Flutter’ın en önemli avantajı aynı anda hem Android hem de iOS için birlikte mobil uygulama geliştirme imkanı sağlamasıdır. Daha önce büyük mobil uygulamalar Android öncesi iOS’a gelirdi. Bu da her platform için geliştirmenin kendine özgü zorlukları olduğunu göstermekteydi.
Bu nedenle iki ayrı platform için farklı uzmanlar ve çok sayıda çalışma gerekliliği ortaya çıkmaktaydı. Geliştiriciler daha önceleri iOS ya da Android özelinde çalışmalarını seçmeleri gerekiyordu. Bu sayede Google Flutter, geliştiricilerin seçme zorunluluklarını ortadan kaldırmış oldu.
Flutter açık kaynak kodlu oluşu, popüler kodlama araçlarıyla kullanılabilen ve her iki platform için geliştirebilme özellikleriyle mobil yazılım alanında büyük bir fark yaratmıştır.
Neden Flutter?
- Dart dili üzerinde geliştirme yapmanız ve compile edilebilir bir dil olması dolayısıyla yapacağınız en ufak bir sözdizimi gibi durumlarda compile edilmediğini göreceksiniz bu durum react-native tarafında oldukça can sıkıyor eğer typescript üzerinden react-native geliştirmesi yapmıyorsanız o zaman daha da can sıkan durumlar ortaya çıkabiliyor özetle Dart ile geliştirme yapmanın ayrı bir keyif verdiğini belirtmek isterim.
- Flutter cross-platform olduğundan farklı mobil işletim sistemleri için bir yerden yazacağınız kod ile çıktı alabilirsiniz.
- Flutter widget olarak çok zengin olduğunu belirtmek isterim ayrıca tasarım olarak Android için Material Design ve iOS içinde Cupertion tarzı stile sahip widget’lara sahip olduğundan platform özelinde tasarımsal çıktılar alabileceksiniz.
- Daha önce sıklıkla React Native tarafında kullandığımız ve Flutter tarafında daha optimize olarak çalışan “Hot Reload” özelliği sayesinde geliştirme esnasında yazdığınız kodların anlık olarak mobil ortamda çıktısını görebiliyoruz.
- React Native gibi araya bir Javascript Bridge(Javascript Köprüsü), Xamarin Gibi araya Mono Compiler’ını ve son olarak cordova gibi araya bir webview koymadan native olarak çıktı almanızı sağlayan şuan için en başarılı mobil cross platform geliştirme araçlarından biri olma ünvanını elinde bulunduruyor.
Flutter mı React Native mi?
Aslında bir üstteki Neden Flutter kısmında bu karşılaştırmaların bazılarına değindim ama burada her iki karşılaştırma için derlenmiş olarak bulabileceksiniz.
- Flutter araya herhangi bir ekstra arayüz dönüştürücü koymadığından performans olarak React Native’den daha üstün. React Native .jsx yada .tsx dosyaları içerisindeki tanımlamalarımız arayüz’e dönüştürürken bir Javascript Bridge adını verdiği mekanizma ile asenkron olarak ekran çıktısı ürettiğini biliyoruz bu durumda çok küçük ve orta ölçekli uygulamalarınızda react-native üzerinde bir performans sorunu ile karşılaşacağınızı düşünmüyorum. Diğer bir konu ise çalışma zamanında React Native’in tür dönüşümlerinden çok can sıkıcı hatalar verdiğine şahit oldum ve varolan uygulamalarım üzerinden de şahit olmaya devam ediyorum.
- Flutter üzerinden yerleşik olarak gelen daha fazla widget yer alıyor. React native tarafında basic seviyedeki button, view, listview dışındaki herşey için component indirmeniz gerekiyor buda büyük projelerde component yığını oluşmasına sebep olabiliyor, tecrübe ile sabittir.
- Cross platform geliştirme araçlarının sloganı genellikle “Bir kez yaz, her yerde kullan” olsa da özel tüm ihtiyaçlar için ekstra bileşen yada component indirmeniz gerekiyor ama Flutter tarafında bu en aza indirilmiş seviyededir.
- React Native 2015 yılında, Flutter ise 2017 yılında piyasaya sürülmüştür o yüzden Ekosistem olarak React Native daha büyük bir kaynağa sahip iken Flutter yeni yeni React Native’e yetişmeye başladı ve çok hızlı bir şekilde aradaki açığı da kapatıyor.
Anıl KAHRAMANOĞLU | BLOG Kişisel Blog Sitesi