Flutter’a ilk dokunuşumda deneyimlediklerim

Flutter, Google tarafından geliştirilen ve Dart programlama dilini kullanan, cross-platform mobil uygulamalar geliştirmenize olanak sağlayan bir framework. Hibrit bir şekilde hem Android’e, hem de iOS’a odaklanarak uygulama geliştirmenize imkan sağlayan Flutter, daha çok UI tarafında sunduğu tasarımsal özelliklerle ve yüksek performansıyla ön plana çıkıyor.

Cross-platform uygulama geliştirmeye olanak sağlayan framework’ler son zamanlarda oldukça popülerleşti. 2011 yılında Microsoft tarafından duyurulan Xamarin ile başlayan hibrit geliştirme modeli, 2013 yılında Ionic, 2015 yılında ise Facebook’un temelini attığı React Native ile devam etti. 2018’in son aylarında betadan çıkan Flutter ise hibrit geliştirme alanında oldukça iddialı.

Bazı özelliklerine değinelim:

  • Hot reload: Bu özellik ile geliştirmekte olduğunuz uygulamada yaptığınız değişiklikleri saniyeler içerisinde test edebiliyorsunuz. Android Studio ile çalışmış olanlar bilir ki, yapılan en ufak değişikliği test edebilmek için hatırı sayılır bir süre beklemek zorunda kalıyorsunuz. Flutter ile bu bekleme mevzusu tarihe karıştı.
  • Geliştirilmiş UI: Flutter, uygulama ekranını katmanlara bölünebilmesine olanak sağlıyor. Böylelikle geliştirici uygulamanın tüm görünümüne hakim oluyor ve kullanılabilecek yüzlerce farklı widget ile uygulamayı zenginleştirebiliyor. Ayrıca bu katman elementlerinin animasyon haline getirilmesi oldukça kolay.
  • Native performansı: Flutter, Android ve iOS platformlarında uygulamalarla platform odaklı diller gibi yüksek performans sunuyor.


Flutter ile ilk tanıştığımdan beridir Dart programlama dilinin Flutter’da kullanımında StatefulWidget ve StatelessWidget isimli iki temel Widget’ın ne iş yaptığını anlayamamıştım fakat Flutter Create yarışması sağolsun, kafama vura vura öğretti. 🙂 Şimdi bu iki Widget’a bakalım.

This image copied from Flutter UI Components: Flutter Part IV – gradeup

Stateless Widget

Sayfa içerisinde bulunan, durumu değişmeyecek Widget’ları içerir. Örneğin: Text, Button, Icon gibi nesneler sayfada yerini aldıktan sonra asla değişmez. Bir buton elbette üzerine tıklandığında bir metot çağıracaktır fakat buton asla değişmeyecektir. Bu tür Widget’lar, StatelessWidget olarak yazılır ve bu Widget’lar immutable yani oluşturulduktan sonra değiştirilemezlerdir.

Stateful Widget

Durumu bulunan Widget’lar ise dinamiktir. Örnek olarak sayfa üzerinde bulunan bir ListView dinamiktir. İçerisine yazı, görsel vs. eklenir. Veri göndermek için kullandığımız formlar dinamiktir. Kısacası uygulama içerisinde bir veriyi değiştirmek, bir Widget’ı etkilemek için kullanılacak bütün metotlar Stateful Widget’ı miras alır.

Bu şekilde anlaması kolay gözükmeyebilir. Flutter’da bir şeyler yazmadıkça maalesef Widget mantığı kesinlikle pekişmeyecektir. Bu yüzden hibrit geliştirmeye meraklıysanız veya kendinize başka iş alanları oluşturmayı planlıyorsanız, Google tarafından geliştirilen Flutter tam size göre.

Flutter ile geliştirilen bazı uygulamaları merak ediyorsanız buraya tıklayabilirsiniz.