Flutter, yeni versiyonuyla web, mobil ve masaüstü uygulamalar geliştirebilmenize imkan sağlıyor
Geliştiricilerin herhangi bir platform için güzel, hızlı ve taşınabilir uygulamalar oluşturmasına olanak sağlayacak büyük yeniliklerle birlikte gelen Flutter 2, Google tarafından duyuruldu. Flutter 2 sayesinde yalnızca tek kod yapısıyla iOS, Android, Windows, macOS ve Linux için; ayrıca Chrome, Firefox, Safari veya Edge üzerinde çalışacak web uygulamalarını Native olarak sunabilmektedir. Flutter, çevresel bir bilgi işleme dünyası sağlayabilme amacıyla en yaygın ve taşınabilir deneyimi sağlayarak artık arabalarda, TV’lerde ve akıllı ev aletlerinde dahi gömülü olarak kullanılabilmektedir.
Flutter’ın buradaki amacı, “Hedeflediğiniz platformun hangisi olacağını düşünmeniz değil; oluşturmak istediğiniz uygulama deneyiminin nasıl olacağını düşünmeniz önemli” fikriyle geliştiricilerin uygulama geliştirme konusundaki düşüncelerini temelden değiştirmektir. Flutter, markanızı ve tasarımınızı ön plana çıkarabileceğiniz güzel arayüzler üretebilmenizi sağlar. Flutter, kaynak kodunuzu hızlı bir şekilde makine koduna derleyebilir, ayrıca çalışırken sağladığı “Stateful Hot Reload” özelliği sayesinde yorumlanmış kodda da üretkenliği elde etmenize olanak verir. Böylece uygulamanız çalışırken üzerinde değişiklikler yapmanıza ve sonuçları anında görmenize imkan tanıyor. Ayrıca Flutter açık kaynak kodludur ve binlerce katılımcının Flutter Framework’e sunduğu kod desteğiyle ve oluşturdukları paketler ile birlikte Flutter ekosistemi genişlemeye devam ediyor.
Google tarafından yayınlanan Flutter 2 ile artık Flutter mobil bir Framework’ten taşınabilir bir Framework’e evrimleştirildi. Bu sayede uygulamalarınızı çok az değişiklikle veya hiç değişiklik yapmanıza gerek dahi olmadan farklı platformlarda çalıştırabilme serbestliği geliştiricilere sağlanıyor. Halihazırda yalnızca Play Store’da 150.000’den fazla Flutter ile oluşturulmuş uygulama bulunmakta ve bu uygulamaların her biri Flutter 2 sürümüne yükseltilmekte. Çünkü artık geliştiriciler yazdıkları kodu tekrardan yazmaya gerek duymadan uygulamalarını masaüstü ve web’i de hedefleyecek şekilde büyütebiliyorlar.
WeChat, Grab, Yandex Go, Nubank, Sonos, Fastic, Betterment ve realtor.com gibi popüler uygulamalar tarafından da olmak üzere Flutter, Dünya’nın her yerinde kullanılıyor. Ayrıca Google’da çalışan 1000’den fazla mühendis de Dart & Flutter ile uygulamalar geliştiriyor. Stadia, Google One ve Google Nest Hub da dahil olmak üzere Dart ve Flutter ile hazırlanan bu uygulamaların çoğu halihazırda Google tarafından son kullanıcılara açık.
Google Pay’in mobil uygulaması da yalnızca birkaç ay önce yapısını Flutter’a geçti ve şimdiden üretkenlik ve kalitede büyük kazanımlar elde ettiği bilgisi Google tarafından paylaşılıyor. Ayrıca Google Pay ekibi, kod tabanını da birleştirerek platformlar arasında bulunan özellik eşitsizliğini de ortadan kaldırmış bulunmakta. Bu sayede Google Pay kaynak kodlarından yarım milyondan fazla kod satırını ortadan kaldırdıkları Google tarafından
açıklandı. Ayrıca Google Pay, hem iOS hem de Android platformlarındaki mevcut teknik sorunlarda büyük bir azalma ve güvenlik incelemeleri ve deneyler gibi Flutter’ın sağladığı birleşik sürüm süreçleri sayesinde mühendislerinin çok daha verimli çalışabildiklerini bildiriyor.
Web’de Flutter
Flutter 2 ile alakalı belki de en önemli duyuru Flutter’ın artık web için içerik üretimine destek sunabilmesidir. Web’in ilk temeli yalnızca belge merkezliydi. Zamanla web platformu, donanım hızlandırmalı 2D ve 3D grafikler ile sayfa üzerinde esnek düzen ile birlikte renk API’leri ile oldukça karmaşık uygulamalara olanak tanıyan daha zengin platform API’lerini de kapsayacak şekilde geliştirildi. Flutter, bu tip yeniliklerin üzerine inşa edilmiş, modern web teknolojisinin sunduğu avantajları tam olarak kullanan, uygulama merkezli bir Framework sunuyor.
Bu web desteği sunan ilk Flutter sürümü, özellikle şu üç uygulama senaryosuna odaklanıyor:
Flutter, web desteğinin stabil sürümü hazırladığı sırada WebAssembly ile oluşturulmuş yeni bir CanvasKit destekli görüntü işleme motorunu da yapısına ekleyerek performans optimizasyonu konusunda da ilerleme kaydetmiştir. Flutter topluluğu üyesi Felix Blaschke tarafından oluşturulmuş bir demo olan Flutter Plasma web sayfası masaüstü veya mobil cihazlarda da yerel olarak çalışabilmekte. Bu demo web sayfası Dart ve Flutter ile gelişmiş seviyede web grafik deneyimleri oluşturmanın kolaylığını sergiliyor.
Flutter, web platformunda kullanıcılara ve geliştiricilere en iyisini sunabilmek için geliştirilmeye devam ediyor. Son aylarda otomatik metin doldurma, adres çubuğu URL’leri ve yönlendirmesi üzerinde denetim ve PWA bildirimleri desteği Flutter’a eklenmiştir. Bunun dışında masaüstü tarayıcılar da mobil tarayıcılar kadar önemli olduğundan dolayı etkileşimli kaydırma çubukları ve klavye kısayolları desteği de Flutter’a eklenmiştir. Masaüstü modunda varsayılan içerik yoğunluğu seviyesi artırılmış ve Windows, macOS ve ayrıca Chrome OS’de erişilebilirlik altında ekran okuyucu desteği de Flutter’a eklenmiştir.
Flutter ile halihazırda oluşturulmuş bazı web uygulaması örnekleri mevcut. Eğitimciler tarafından bilinen iRobot markası, Root eğitim robotları ile de bilinmektedir. Flutter’ın web için sunduğu üretim desteği sayesinde iRobot, eğitim için kullanılan programlama ortamını web ortamına taşımıştır. Ayrıca Flutter sayesinde iRobot, Chromebook’larda ve yalnızca tarayıcı üzerinden eğitim verilebilecek diğer cihazlarda da kullanılabilir hale gelmiştir. iRobot’un blog yazısı, şimdiye kadar izledikleri işlem adımlarını ve neden Flutter’ı tercih ettikleri hakkındaki bütün ayrıntıları içermektedir.
Diğer bir örnek ise görsel tasarımcıların herhangi bir platforma gönderilebilen özel animasyonlar oluşturabilmelerini sağlayan bir araç sunan Rive’dir. Artık beta sürümü mevcut olan Rive’in web uygulaması tamamen Flutter ile oluşturuldu ve Flutter’ın web ortamındaki yeteneklerini de göstermektedir.
Flutter ekibinin Medium platformunda yayınlamış olduğu makaleden Web’de Flutter hakkında daha fazla bilgi edinebilirsiniz.
Masaüstü Bilgisayarlarda, Katlanabilir Cihazlarda ve Yerleşik Cihazlarda Flutter 2
Mobil cihazların ve web’in ötesinde Flutter, diğer cihaz türlerinde de kullanılabilecek halde geliştirilmektedir.
İlk olarak Canonical, Flutter’ı masaüstüne getirmek için Flutter ekibi ile birlikte çalışmalar yürütmektedir ve Canonical mühendisleri Linux’ta Flutter geliştirme ve dağıtımını desteklemek için Flutter’a katkıda bulunmaktalar. Flutter 2 duyuru etkinliği sırasında Ubuntu ekibi, Flutter ile baştan yazılmış Ubuntu Installer uygulamalarının ilk demosunu sundu. Canonical ekibi açısından birçok farklı donanım üzerinde kaya gibi sağlam, ayrıca güzel kullanıcı deneyimi sunabilmek çok önemlidir. Gelecekte Flutter’ın Canonical tarafından oluşturulacak masaüstü ve mobil uygulamalarda ilk tercih olacağı öngörülüyor.
İkinci olarak Microsoft, Flutter desteğini genişletmeye devam ediyor. Flutter için yüksek kaliteli Windows desteği sunmak amacıyla devam eden bu iş birliğine ek olarak Microsoft, yakın zamanda ortaya çıkan katlanabilir Android cihazları da destekleyen Flutter motoruna da katkılarda bulunuyor. Bu katlanabilir cihazlar, içeriği genişletebilen veya iki farklı ekran üzerinde ayrı ayrı bir deneyim sunmak için çift ekran doğasından yararlanabilen uygulamalarla yeni tasarım modeli sunmaktadır. Microsoft Surface mühendislik ekibi, yayınladıkları bir blog gönderisinde bu yaptıkları çalışmaları sergilemekte.
Son olarak dünyanın en çok satan otomobil üreticisi olan Toyota, Flutter destekli bilgi-eğlence sistemleri oluşturarak araçlarında piyasadaki en iyi dijital deneyimi sağlama planları olduğunu duyurdu. Bir açıdan Flutter’ın bu amaçla kullanılması, geçmişte araç içi yazılımların geliştirilme yöntemleri göz önüne getirildiğinde bu durum büyük bir devrimi işaret etmektedir. Toyota’nın Flutter’ı tercih sebebi olarak Flutter’ın sunduğu yüksek performans, kullanıcı deneyimi tutarlılığı, hızlı tepkime süresi ve geliştirici ergonomisiyle birlikte akıllı telefon tipi dokunmatik ekran mekaniği sağlaması gibi maddeleri listeleyebiliriz. Toyota, Flutter’ın Embedder API’si sayesinde araç içi sistemin benzersiz sistemleri Flutter üzerinde uyarlayabiliyor.
Flutter ekibi, araçlara, televizyonlara ve ayrıca gömülü cihazlara destek sağlayabilmek için Toyota ve diğer şirketler ile birlikte çalışmalarına devam etmektedir.
Büyüyen Flutter Ekosistemi
Şu anda Flutter ve Dart için oluşturulmuş 15.000’den fazla 3. parti paket bulunmakta. Bunların bazıları Amazon, Microsoft, Adobe, Alibaba, eBay ve Square gibi şirketlerden. Bunun dışında Lottie, Sentry ve SVG gibi önemli paketlerin yanı sıra sign_in_with_apple, google_fonts, geolocator, ayrıca sqflite gibi Flutter Favorite paketleri de bulunuyor.
Bu paketler dışında Google Mobile Ads for Flutter’ın beta sürümü de yayınlandı. Google Mobile Ads for Flutter SDK’sı banner, geçiş reklamı, native ve ödüllü video reklam biçimlerini uygulamanıza entegre edilebilmenizi sağlar. Bu SDK, Latin Amerika’daki bağımsız sanatçılar için en büyük müzik platformu olan Sua Música gibi birkaç önemli kuruluşlarda halihazırda denendiği Google tarafından açıklanmıştır.
Ayrıca Google, temel Firebase hizmetini Flutter’da sunabilmek için bazı Flutter eklentilerini de güncelleniyor. Bunlardan bazıları: Kimlik Doğrulama, Cloud Firestore, Cloud Functions, Cloud Messaging, Cloud Storage’ın yanı sıra Crashlytics, Sound Null güvenliği desteği ve Bulut Mesajlaşma paketleridir.
Dart: Flutter’ın Arkasındaki Gizli Sos
Yayınlanan Flutter 2 versiyonu sayesinde Flutter, artık birçok farklı platforma destek sunabilmektedir. Flutter’ın web, masaüstü ve gömülü sistem desteğini sunabilmesini sağlayan yapı, büyük ölçüde Google’ın çok platformlu geliştirme için optimize etmiş olduğu Dart programlama dili ile oluşturulmuştur.
Dart, uygulama oluşturabilmeniz için size benzersiz bir dizi özelliği sunmaktadır:
Tüm bu yetenekleri bir arada barından mevcut başka bir programlama dili bulunmamakta; belki de bu sebeple Dart, GitHub’da son zamanlarda en hızlı büyüyen dillerden biri olarak grafikte görülebiliyor.
Şu anda yayında olan Dart 2.12 sürümü, Sound Null güvenliği desteğiyle birlikte 2.0’dan beri duyurulan en önemli Dart sürümüdür. Dart’ın sunduğu Null güvenliği, can sıkıcı bir durum olan Null referans hatalarını ortadan kaldırma potansiyeline sahiptir. Ayrıca uygulama geliştirme esnasında ve Runtime’da, veri türlerinin yalnızca geliştiricinin açıkça belirtmesi durumunda Null değer barındırabileceğine dair bir garanti sunar. Hepsinden iyisi, Null güvenliği özelliğini Flutter kodunuza kolay bir yolla ekleyebilirsiniz. Bu işleme hazır olduğunuzda Flutter’ın sunduğu; size yardımcı olabilecek versiyon taşıma araçları sayesinde kendi isteğinize göre kademeli olarak bu yapıyı kodunuza ekleyebilirsiniz.
Dart diline gelen bu güncelleme, C tabanlı API’lerle birlikte çalışabilen yüksek performanslı kod yazmanıza olanak tanıyan FFI (Foreign Function Interface) uygulamasını da içermektedir. Flutter ile yazılmış kodu, DevTools araçları sayesinde yeniden derlemeden, herhangi bir ücret ödemeden Flutter kodunuzun sürümünü yükselten bir dizi performans ve boyut iyileştirmesi de sağlamaktadır. Daha fazla bilgi için Dart 2.12 duyurusunun yapıldığı blog içeriğine de göz atabilirsiniz.
Flutter 2: Artık Yayında
Yeni Flutter 2 sürümü hakkında değinebileceğimiz birçok nokta bulunuyor. Flutter ekibi, bu yeni sürümün geliştiricileri memnun edeceğini düşünüyor. Flutter 2 sürümü ile gelen birçok yeni özellik ve performans iyileştirmesi hakkında daha fazla bilgi için Flutter ekibi tarafından hazırlanmış Flutter 2 teknik blog içeriğini inceleyebilirsiniz .
Ayrıca, Kanada’nın Edmonton şehrinde bulunan ödüllü bir tasarım ekibi olan gskinner ile Flutter ekibinin iş birliği içinde oluşturdukları; bahsettiğimiz her şeyin sergilendiği başka bir örnek daha bulunuyor. Flutter Folio , mobil ve masaüstü cihazlar için tasarlanmış, web platformundan da erişilebilir olan bir not defteri uygulamasıdır. Küçük, mobil ekran deneyimi içerik oluşturmak için tasarlanmıştır. Daha büyük ekranlar, masaüstüne ve tablete özgü içerik düzenlemeyi destekler ve web platformu ile de içerik paylaşımı yapabileceğiniz şekilde uyarlanmıştır. Tüm bu uyarlanmış deneyimler, aynı açık kaynak kod tabanını paylaşır ve bu kodlar, Flutter geliştiricilerinin inceleyebilmesi için Flutter Folio’yu geliştiren ekip tarafından açık kaynak olarak paylaşılmıştır.
Flutter ekibi, Flutter platformunu kullandığınızda uygulama geliştirme becerinizi ciddi derecede arttırabileceğinizi düşünmekte. Flutter’da, hem Google’ın hem de uygulama geliştiricilerinin taleplerini karşılamak için oluşturulmuş, tek bir kod tabanından mobil, masaüstü, web ve gömülü cihazları hedefleyen güzel ve hızlı uygulamalar oluşturmak için açık kaynaklı bir araç seti sunulmuştur.
Flutter ücretsiz ve açık kaynaklıdır. Flutter 2 ile geliştirdiğiniz uygulamaları görmek için sabırsızlanıyoruz!
Bu yazının hazırlanmasında Google’ın yayınlamış olduğu Flutter 2 Duyurusu başlıklı makaleden faydalanılmıştır.
Yazının orijinaline aşağıdaki linkten ulaşabilirsiniz;