Flutter Web ve Paketleri
Merhaba değerli okurlar. Bugün sizlere Flutter Web ve paketlerinden bahsedeceğim. Bilindiği üzre Flutter ile sadece mobil uygulama değil web ve masaüstü uygulamalarıda geliştirilebiliyor. Bu esnekliği sayesinde adete bir isviçre çakısı dediğimiz ve sevip bağrımıza bastığımız Flutter, Web tarafında da kullanmasını bilene bazı çözümler sunuyor.
Çözümlerin ilki Dart ve Flutter aşinalığı olanların bildiği temel olarak kullanılabilecek Flutter Web.
FLUTTER WEB
Flutter web, Dart ve Flutter tarafına hakim olanların rahatlıkla kullanacağı bir yapıda. Öğrenme eğrisi Dart ve Flutter öğrenen biri için gayet soft olduğundan geliştirme yapmak konusunda zorlanılmayacaktır.
Ancak Flutter Web’in SEO açısından sorunları olduğu, henüz tam manasıyla SEO uyumlu web siteleri geliştirmek için uygun olmadığını bildirmek isterim. Flutter Web Application veya SEO kaygısı gütmeyen statik sayfalar için daha uygun olacaktır.
Performans noktasında her geçen gün daha da ilerleyen Flutter Web, web uygulamalarınız için daha uygun bir zemin sunuyor.
Sizlere incelemeniz için Flutter Web ile yapılmış bir web app linki paylaşıyorum;
https://demo.invoiceninja.com/
Temel olarak gelen Flutter Web dışında da çözümler mevcut, şimdi gelin bu çözümlere göz atalım birlikte.
JASPR Paketi
Jaspr paketi, Flutter web uygulamasını React yaklaşımı ile harmanlıyor ve kullanıcılara Flutter — React karışımı bir yapı sunuyor. React kullanan ve aşina olanlar için oldukça sürükleyici olacağını belirtmem gerek.
Jaspr component tabanlı bir yapı sunuyor. Flutter Widgetlerinin dışında HTML ve CSS ile özelleştirme imkanı sunuyor.
Jaspr paketi özellikle SEO ve performans kaygısı güdüp, Flutter standartlarının bir nebzede olsa dışına çıkarak daha farklı ve üst düzey web site ve uygulamaları yaratmak isteyenler için uygun olacaktır.
Öğrenme eğrisi olarak Dart ve Flutter bilenler için orta zorlukta olabilir ancak React aşinalığı olanlar için daha anlaşılır ve kolay olacaktır.
Paket Linki;
https://pub.dev/packages/jaspr
Dokuman Linki;
https://docs.page/schultek/jaspr
AngularDart— Angular Bloc Dart
AngularDart ya da Angular Bloc Dart, Google tarafından geliştirilen ve web uygulamaları için kullanılan Angular framework’ünün Dart diline port edilmiş bir versiyonudur. Angular’daki component, service, directive gibi
konseptlerin Dart versiyonunu içerir ve güçlü bir yapısal mimari sunar.
AngularDart ve Angular Bloc Dart iki ayrı paket olsada temelde Angular’dan portlanmış paketin üzerin inşa edilmişlerdir. Bu paketlerin güncelliği ve verilen desteklerin az olduğunu ve bunu geliştiren küçük bir community olduğunu bildirmek isterim. Angular Bloc Dart paketi state managment işlemi yapmanız için imkan tanımakta.
Oldukça performanslı olduğunu iddia eden bu paketlerin kullanım alanı yine performanslı ve özelleştirilebilir yüksek gereksinimli web siteleri içindir.
Öğrenme eğrisi olarak oldukça dik ve zor bir eğrisi olduğunu söylersem abartmış olmam. Ancak Angular temeliniz varsa biraz daha hızlı adapte olacağınızdan şüpheniz olmasın.
Paket Linkleri;
https://pub.dev/packages/angular_bloc
https://pub.dev/packages/ngdart
Web site ve Dokuman;
https://angulardart.xyz/
Static Shock
Static Shock diğer yapıların aksine adından da anlaşılacağı üzre tamamen statik web sayfaları için geliştirilmiştir. Örneğin bir wiki sitesi oluşturmak readme sitesi oluşturmak isteyenler için oldukça kullanışlıdır.
Static Shock’un performansı oldukça yüksektir çünkü tüm içerikler önceden oluşturulmuş ve bir CDN üzerinden hızlı bir şekilde indiriliyor. Ancak dinamik sayfalar oluşturmak için maalesef önerilen bir çözüm olmadığını belirteyim.
Öğrenme eğrisi statik içerikli bir site geliştirilmede kullanılacağı için Dart ve Flutter bilenleri zorlamayacaktır diye düşünüyorum.
Paket Linki;
https://pub.dev/packages/static_shock
Dokuman;
https://staticshock.io/
Değerlendirme ve Karşılaştırma
Aşağıdaki Tablodan karşılaştırma yapabilir sizin için uygun olan Flutter Web paketini seçip kodlamaya çalışabilirsiniz. Şimdiden çalışmalarınızda başarılar dilerim. Meraklıları için makalenin faydalı olmasını temenni ederim :)