spot_img

Flutter: Cross-Platform UI Geliştirme Kiti

“Herhangi bir ekran için uygulamalar oluşturun.” Flutter’ın web sitesine girdiğimizde bizi bu başlık karşılıyor. Google tarafından geliştirilip 2017 yılında ücretsiz olarak yayınlanan Flutter, platformlar arası uygulama geliştirmeye yönelik bir yazılım geliştirme kitidir. Tek kod tabanında Android, IOS, macOS, Windows, Google Fuchsia ve web için uygulama geliştirmesinde kullanılır. Flutter, Dart programlama dilini kullanır. Dart programlama dili tıpkı Flutter gibi Google tarafından web, mobil uygulama ve IoT cihazların geliştirilebildiği bir programlama dilidir.

Dünya çapında tanınmış markalar tarafından güvenilen ve kullanılan Flutter, küresel geliştiricilerden oluşan bir topluluk tarafından ekosistemini genişletmekte. Dünya üzerinde 100 milyon kullanıcısı olan, kullanıcılarının ödeme yapmasına ve harcamalarını kontrol etmesine olanak sağlayan bir ödeme yöntemi olan Google Pay, Android ve IOS uygulamalarını ayrı ayrı geliştirmek yerine platformlar arası işlevselliği olan Flutter’a yatırım yapmayı tercih etti. Bu sayede Google Pay mühendislerinin iş yüklerinin yüzde 70, yazılan kod satırının da yüzde 35 oranında azaldığı görülmüştür. Android’de geliştirilen bir uygulamayı IOS’a çevirmek için bir o kadar daha üzerinde çalışmak gerekecektir. Bu yüzden 2 kat efor harcanacaktır. Flutter ile Android için geliştirilmiş bir uygulamayı IOS’a çevirirken harcanan efor sadece yaklaşık 1.2 kat olacaktır.

Flutter

Google Pay Mühendislik Direktörü David Ko, Flutter hakkında “Bir kullanıcı arayüzü oluşturmanın ne kadar hızlı olduğundan bahsederken insanların yüzlerindeki heyecanı görebiliyordunuz” sözlerini söylemiş. Aplikasyonunu Flutter ile geliştiren diğer büyük markalara Alibaba, BMW, eBay,
4 Pics 1 Word, Supernova, Toyota, Superlist, Rows, Tonals, Travelstart, Credit Agricole örnek olarak gösterilebilir.

Flutter’ın GitHub’da 148 bin yıldızı, Twitter’da 217 bin takipçisi, Meetup’ta ise 69 bin üyesi bulunuyor. JetBrains 2021 geliştirici ekosistemi durumu anketine göre Flutter dünyadaki en popüler çapraz platformdur. Küresel ölçekte katkıda bulunanlar topluluğu tarafından güvenilen, Google tarafından desteklenen Flutter’ın “pub.dev” web sitesinde binlerce oluşturulmuş paketi bulunuyor. Geliştiriciler için büyük kolaylık sağlayan bu paketlerin en popülerleri olarak “firebase_messaging”, “shared_preferences”, “freezed_annotation”, “flutter_spinkit”, “intl” ve “image_cropper” ön plana çıkıyor. Doğrudan elektronik sektörüne hitap eden çok sayıda Flutter paketi de bulunmakta. Örneğin “flutter_blue” paketini kullanarak geliştirilen bir uygulama ile Bluetooth LE sensörleriyle haberleşme sağlamak mümkün olabiliyor. “esptouch_flutter” paketi ile ESP8266 ve ESP32 cihazları için IOS ve Android uygulamalar geliştirilebilir.

Pub.dev ekosisteminde onaylanmış yayımcıların yanı sıra bireysel kullanıcılar da katkıda bulunabiliyor. Paketlerin beğeni adeti, puanları, popülaritesi de gözüktüğünden dolayı bireysel kullanıcının yayımladığı paketlerin güvenilirliği hakkında daha fazla fikir sahibi olunabilmekte.

Flutter’ın çalışma yapısı hem algoritmayı içeren dart kodlarını hem de görsel tasarım kodlamalarını aynı sayfa içerisinde yapmaya olanak sağlıyor. Flutter ile oluşturulan uygulama IOS için App Store’a, Android için Google Play’e yüklenebiliyor. Flutter için geliştirme ortamları olarak Android Studio, IntelliJ IDEA, Visual Studio gibi IDE’ler kullanılabilmekte. Bunlar arasında en popüler olanı “Android Studio”. Google tarafından geliştirilen bir IDE olan Android Studio, Flutter ile uygulama geliştirirken tüm gereksinimleri karşılayacak özelliklere sahiptir. Android Studio emülatörüne kurulacak sanal cihazlar ile yazılan kodlar anlık olarak test edilebiliyor. Bunun yanı sıra fiziksel olarak Android veya IOS cihazı doğrudan bilgisayara bağlayarak USB debugging yapmak da mümkün. Android box, akıllı saat gibi USB debugging yapmanın mümkün olmadığı cihazlarda da Wi-Fi üzerinden anlık debugging işlemi yapılabiliyor.

Flutter’da null safety özelliği bulunuyor. Uygulamaların çökmesinin sebeplerinden bir tanesi null değişkenlerdir. Programda kullanılan bazı değişkenler null olabilir. Null olabilme ihtimali bulunan değişkenlerin kullanımının kontrollü olması açısından null safety özelliği kullanılır. Flutter’da bir değişkenin null olabilme ihtimaline karşı değişken tanımlanırken “?” kullanılır ve böylelikle değişken null olduğunda hata oluşmaz, korumaya alınır. Değişken tanımlaması yaparken “!” işaretini kullanırsa bu ifade değişkenin null olmayacağını belirtir. Eğer değişken null olursa ve “?” yerine “!” olarak tanımlanmışsa uygulama çökecektir. Kodlamanın sağlıklı olabilmesi açısından bu özelliği kullanmak avantaj sağlayacaktır.

Flutter

Flutter, “hızlı prototipleme” yetenekleri sayesinde hızlı bir şekilde kullanıcı arayüzleri oluşturmayı sağlar. Hot reload özelliğiyle birlikte yazılımda anlık olarak yapılan değişiklikler, uygulamanın yeniden derlenmesine gerek kalmadan geliştirici tarafından hemen görülebilir. Flutter’ın zengin widget kütüphanesi, geliştiricilere görsel arayüz elemanlarını hızla oluşturma ve özelleştirme imkanı sağlar. Material Design ve Cupertino gibi popüler tasarım dillerini destekleyen çok sayıda hazır widgeta sahiptir.

Tüm bunlara rağmen Flutter’ın az sayıda dezavantajı da var. Flutter ile geliştirilen uygulamalardaki başlıca problemlerden birisi dosya boyutlarıdır. Genellikle Flutter ile yazılan uygulamaların boyutu daha büyüktür. Ayrıca Flutter uygulamalarında, uygulamayı ilk başlatma süresi biraz daha yavaş olabiliyor. Bunlar birçok son kullanıcı için gözardı edilebilecek dezavantajlardır. Flutter’ın güçlü ve esnek yapısı, tek kod tabanlı olarak kullanılabilmesi, hızlı geliştirmeye uygun yapısı, zengin widget kütüphanesi, Firebase, GraphQL gibi popüler entegrasyonlar için hazır API’ler sunması, geniş ekosistemi, kapsamlı dokümantasyonu ve aktif topluluk desteği sayesinde geliştirici ve kullanıcı dostu bir yapıya sahiptir.