Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 17, 2022 09:00 pm GMT

Flutter State Ynetimi : Blm 2

Bloklar: Mant Bileenleri (Business Logic Components)

B.L.o.C. Mant Bileenleri anlamna gelir. Bu model ilk olarak Dart Konferans'nda ortaya kmtr. Amac, UI i mantn yksek oranda yeniden kullanlabilir hale getirmektir.

Public API'leri yalnzca basit girdi ve ktlardan oluur.
Bloklar injectable (enjekte edilebilir) olmaldr, bu da platformdan bamsz anlamna gelir yani Flutter ve web iin ayn bloklar kullanabilirsiniz.

DartConf 2018 de yaynlanan uygulama tasarm ve UI kurallar:

Uygulama tasarm iin:

  1. Input'lar ve output'lar yalnzca havuzlar ve aklardr.(streams) Fonksiyon, constant ve deikenler yoktur.

  2. Bamllklar enjekte edilebilir olmaldr. Herhangi bir Flutter kitapln bloc'a aktaryorsanz, bu i mant deil, UI almasdr ve bunlar kullanc arayzne tanmaldr.

  3. Platform dallanmasna izin verilmez. Kendinizi if (device == browser)... yazan bir blokta bulursanz, kodunuzu tekrar gzden geirmeniz gerekir.

  4. Bu kurallara uyduunuz srece baka ne isterseniz yapabilirsiniz.

UI ilevsellii iin:

  1. Genel olarak, bloklar ve st dzey Flutter sayfalar bire bir (1:1) (one-to-one) ilikiye sahiptir. Gerekte mesele u ki, her mantksal state znesinin (logical state subject) kendi blou vardr.

  2. Componentler girdileri (input) olduu gibi gndermelidir nk widget'ta i mant olmamaldr! Metni biimlendirmeniz veya bir modeli seriletirmeniz gerekiyorsa, bu ilem blokta yaplmaldr.

  3. ktlar, kullanma hazr widget'lara aktarlmaldr. rnein, grntlenebilir para birimine dntrlmesi gereken bir numaranz varsa, bu blokta yaplmaldr.

  4. Herhangi bir dallanma, basit bloc Boolean logic'e dayanmaldr. Kendinizi bloktaki tek bir Boolean akyla snrlandrmalsnz. rnein, color: bloc.isDestructive ? Colors.red : Colors.blue

if (bloc.buttonIsDestructive && bloc.buttonIsEnabled && bloc.userIsAdmin) { ... gibi karmak Boolean yan tmcelerini kullanmanz yanl kabul edilir.

Aadaki ekil bloklar kullanan bir Flutter uygulamasnn temel grnm katman mimarisinin nasl grndn gsterir.

Image description
Bloklar kullanarak, grnm katman widget'larnz, widget aac boyunca ayn state bilgisi olan snfa bavurabilir.

Not: Yukardaki ekil verilerin widget'lardan bloklara nasl aktn gstermez. Birden ok widget'n ayn, mantksal state parasn temsil eden birka blokla iletiim kurduunu gsterir.

Bu bloklar, servisler, backendler ve hatta iki widget arasnda aracdr.Blok kullanyorsanz, StatefulWidget kullanmanz gereken pek ok durum yoktur.(Genel istisna, formlarda olan ve henz gnderilmemi state'i olan widget'lardr.)

Bloklar nasl alr?

Genel olarak, bloklarn iki grevi vardr. Widget'larn durumu gncellemesine (veri ak girmesine) izin veren aklar ortaya karmal ve yeni bilgiler olduunda ve yeniden oluturmalar gerektiinde widget'lara haber vermelidirler.

Image description

Bu sreler birbiriyle ilikilidir, nk bir birlerine dayanr, ancak ayn zamanda bamszdrlar ve biri olmadan dieri olabilir. Blok'lar bilgi veya verileri alrlar, maniple ederler ve uygun tarafa geri iletirler.

Devam sonra...

Resources: Flutter in Action Chapter 8


Original Link: https://dev.to/gulsenkeskin/flutter-state-yonetimi-bolum-2-2mk1

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To