Hibritin Gücü – Flutter Framework
Flutter, içinde framework, widget ve diğer araçları barındıran, developerlara Android ve iOS platformu için uygulama geliştirmeler imkanı sunan bir mobil uygulama geliştirme kitidir. Google tarafından geliştirilen Flutter, açık kaynak kodlu olup, developerlar tarafından ücretsiz olarak kullanılabilir.
Flutter’ın Avantajları ve Dezavantajları
Google’ın Flutter framework’ü, aynı kod tabanından Android ve iOS’u hedeflemek isteyen developerlar ve her iki pazarda da varlık sağlayan tek bir proje ekibinin değerini bilen işletmeler arasında hızla yayıldı.
Flutter, Google’ın 2018’in sonlarında 1.0 olarak sunduğu hibrit mobil uygulama geliştirme platformudur. Hibrit geliştirme frameworkleri listesine daha yeni girmiş olsa da, arkasındaki harika fikirler, developerların ilgi odağında olmasına neden oldu.
Piyasada daha eski hibrit uygulama frameworkleri olsa da, mobil uygulamaları için Flutter’ı seçen büyük isim şirketlerinin sayısı giderek artıyor. Flutter showcase sayfası bunlardan birçoğunu listelese de, Flutter’ı tüm uygulama için veya önemli bir özellik için kullanan birkaç büyük şirkete ait uygulamaları şu şekilde belirtebiliriz :
- Google Ads uygulaması
- GrabFood’un GrabMerchant uygulaması
- 50 milyondan fazla indirilen Alibaba Group’un Xianyu uygulaması
- eBay Motors uygulaması
Flutter frameworkünün faydalarını hem developer hem de iş birimleri gözüyle değerlendirmek faydalı olabilir. Her iki grubun elde ettiği faydalar birbirinden farklıdır.
Flutter Avantajları (Developer Perspektifinden)
Hızlı Öğrenme Eğrisi
Flutter’ın developerlara sunduğu ilk şaşırtıcı sürpriz, başlamanın ne kadar hızlı olduğudur. Kurulum sürecini tamamlamak ve çalışan bir geliştirme ortamının kurulması 30 dakikadan az sürer. Şimdi, ilk Flutter uygulamanızı oluşturmaya hazırsınız.
Popüler Editör Entegrasyonu
Flutter ayrıca harika editör entegrasyonlarına sahiptir. IntelliJ, VSCode veya Emacs’ı kurmak için kullanılabilecek talimatlar da vardır.
Temiz Geliştirme Süreci
Hibrit uygulama frameworkleri arasında kıyaslama yapıldığında, geliştirme sürecinin de daha temiz gerçekleştirilebildiği görünüyor. Örneğin, birçok öğe içeren listeleri (yaklaşık 100) görüntülemek için WebView’ları kullanıldığında, özellikle kullanıcı listesini kaydırılırken yüksek CPU kullanımı sorunu ile yüzleşmek söz konusu olabiliyor. Flutter’da, inanılmaz bir performansa sahip olan ListView ile listeleri görüntülemek gayet kolay.
Canlı Yeniden Yükleme
Android ve iOS developerların genellikle kod yazması ve ardından değişiklikleri görmeden önce kodların derlenip cihaza veya simülatöre yüklemesi beklenir.
Flutter, developerların “kaydet” düğmesine basar basmaz uygulama kodunun cihaza yeniden yüklendiği canlı bir yeniden yükleme mekanizması sağlar (React Native). Bu, anında geri bildirim vererek geliştirmeyi çok daha hızlı hale getirir.
Performans
Flutter frameworkü aktif olarak geliştirilme aşamasında olduğu için performans optimizasyonlarının yapılabileceği birçok yer bulunmaktadır. Örneğin, daha yeni iOS cihazlarda oluşturma performansını %50’ye kadar artıran ve belirli iş yükü türleri için bellek tüketimini %70’e kadar azaltan Flutter 1.17’de açıkça görülmektedir.
Platformlar Arası Tutarlılık
Her iki mobil platformda da gerçekten tutarlı kullanıcı arayüzleri, Flutter’ın bir başka dikkat çekici özelliğidir. Flutter kendi işleme motorunu kullandığından (daha sonra bahsedeceğiz) UI, iOS ve Android’de tamamen aynıdır. Developerların artık her şeyin tam olarak tasarıma benzemesini sağlamak için platforma özgü stil sorunlarıyla boğuşması gerekmiyor.
Flutter Avantajları (İş Birimleri Perspektifinden)
Çoğu işletmenin düşündüğü en büyük Flutter avantajı, hem iOS hem de Android platformları için yalnızca bir ekip ile çalışmak zorunda olmaktır. Bununla birlikte, birçok işletmenin gözden kaçırdığı daha önemli bir fayda, pazara daha hızlı çıkma süresidir.
Flutter’ı kullanmayı düşünen ancak doğru yol olup olmadığından emin olmayan işletmeler, Flutter’dan kademeli olarak yararlanılabilir: Önceden var olan mobil uygulamalar, Flutter ile her seferinde tek bir parça olarak entegre edilebilir. Aslında, çoğu büyük şirketin, mevcut uygulamalarının küçük bir bölümünü Flutter’da oluşturarak ve ardından faydaları gördükten sonra yavaş yavaş diğer parçaları değiştirerek Flutter ile devam etme stratejisi izlediği görülüyor.
Flutter Kullanmadan Önce Dikkate Alınması Gereken Sınırlamalar (Dezavantajlar)
Diğer taraftan Flutter, henüz nispeten diğer freamworklere göre yeni olduğu için, örneğin React Native gibi diğer hibrit mobil uygulama freamworkleri kullanılmamış, bir başka deyişle test edilmemiş olarak değerlendirilebilir. Sonuçta şöyle de bir gerçeklik var, React Native’in son kullanıcı erişimi, Facebook, Instagram, Skype ve Discord’un mobil uygulamalarını kapsıyor.
Soru, “Flutter kullanmalı mıyım?” Cevap, şimdilik temkinli bir evet. Bunun nedeni, IT yöneticilerinin, hangi gelişmiş özelliklere ihtiyaç duyacaklarını düşünmeleri ve kullanmaya karar vermeden önce bu özelliklerin Flutter’da mevcut olduğundan emin olmaları gerektiğidir. Özellikle, bir ekibin belirli bir uygulamayı oluşturmak için hangi kütüphanelere ve eklentilere ihtiyaç duyabileceğini sormaya değer. Mobil uygulama frameworklerinde yeni sayılan Flutter, React Native’in sahip olduğu kapsamlı kitaplık ve eklenti kapsamına sahip değildir.
Örneğin, yakınlaştırma ve flaş kontrolü henüz resmi kamera eklentisinin bir parçası olmadığı için Flutter’daki kamera desteği henüz tamamlanmadı. Oluşturulan bir uygulamaya fotoğraf/video işlevselliği entegre etmek gerektiğinde ayrı bir eklenti bulmak gerekecektir.
Kaçırılabilecek bir diğer önemli eklenti ise Google Haritalar. Dart’a özgü Google Haritalar eklentisi yoktur ve Google Haritalar’ı Flutter kodunuza entegre etmeye izin veren bir eklenti olsa da, Flutter’ın (platform görünümleri) halen developerların önizleme durumunda olan özelliklerini kullanır.
Pek çok projeyi etkilemeyecek, ancak farkında olmanız gereken bir şey daha, Flutter’ın şimdilik hiçbir 3D özelliğini desteklemediğidir. Ekip şimdilik sadece 2D’ye odaklanıyor. Ancak çoğu uygulama herhangi bir 3D işlevi kullanmaz, bu nedenle developerların çoğu için bu çok da sorun teşkil etmeyecektir.
Kim bilir, belki önümüzdeki dönemde bu dezavantajlar listesi de ortadan kaldırılıp, Flutter’ın rakiplerinin önünde takip edilen bir framework olması sağlanır.