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:
- Progressive Web Apps (PWA) Web eriÅŸimini bir masaüstü uygulamasının yetenekleriyle birleÅŸtirebilen web uygulamaları.
- Single Page Apps (SPA) Yalnızca bir defa yüklenen ve internet hizmetlerinden veri alışveriÅŸi yapabilen web uygulamaları.
- Mevcut Flutter mobil uygulamalarının web’e taşınması Yalnızca bir uygulama ile kullanıcıya hem mobil hem de web deneyimi saÄŸlayabilmek.
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:
- Mobil ve masaüstü platformlarında yüksek performans saÄŸlayan Intel ve ARM makine kodlarının dışında web için sıkı bir ÅŸekilde optimize edilmiÅŸ JavaScript çıktıları oluÅŸturan derleyicilerle Dart’ın saÄŸladığı ÅŸaşırtıcı olmayan taşınabilir yapısı. Yani aynı Flutter Framework kaynak kodu, tüm bu hedef platformlarda derlenebilir.
- Masaüstü ve mobil cihazlarda anlık durum bilgili çalıştığınız sırada Dart, Hot Restart özelliÄŸini sizlere sunar. Bu sayede anlık yinelemeli uygulama geliÅŸtirme ve modern UI programlamanın eÅŸzamansız veya eÅŸzamanlı kalıpları için tasarlanmış Dart dil yapısından faydalanabilirsiniz.
- Google’ın geliÅŸtirmiÅŸ olduÄŸu Dart dili sayesinde bahsettiÄŸimiz tüm bu platformlarda Google sınıfı performans elde edebilirsiniz. Ayrıca Runtime’da ve uygulama geliÅŸtirme sırasında Null sınırlamalarını size garanti eden saÄŸlam Null veri güvenliÄŸi yapısı da sizlere Google tarafından sunulmaktadı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;










