3.Gün — StatefulWidget Nedir ve Çalışması ile ilgili örnek

Gürkan Fikret GÜNAK
4 min readOct 19, 2020

--

Merhabalar,

Bugün sizlerle birlikte en önemli araçlardan bir tanesi olan StatefulWidget i inceleyeceğiz. kullanım alanı olarak, birçok kişinin akla yeri geldiğinde karışıyor bu konu ile ilgili Biraz açıklık getirerek yazı yazmayı düşünüyorum. bazı dökümanlarda, bazı yazılarda veya makalelerde detaylı bir şekilde anlatım sağlanıyor ama yazılım geliştiricileri kullanım veya bu işi detaylı anlamaya geldi biraz ister istemez takıldığı noktalar olabiliyor.

Basit Yalın bir dille ifade edecek olursak Yapıların kendi içerisinde sürekli değişken ve dinamik durumlar olduğu sürece karşımıza StatefulWidget gelecektir. Bununla ilgili en basit bir açıklayıcı yapı olarak, artan eksilen güncel bir şekilde değişim sağlayan veya veri bankasında girdi verilerine göre sonuç verisini yansıtma gibi dinamik değişimi görüntülemek StatefulWidget için idari süreçler biraz mimari yapısını inceleyelim ve anlayalım.

Stateful = Durumsal

Stateful yapı Hakkında teknik yorum olarak şunu söylemekte fayda var. Eğer ki data bizde Somut bir şekilde bir pencerenin görüntülenmesini istiyorsan ve Bunun içerisinde sürekli mekanik olarak bir metodun yenileme ve güncelleme yaptığında ekrana basılarak görüntülenmesi.Evet karşınızda Stateful bir yapı vardır. Bu yapıların daha verimli ve esnek çalışması içinde araçları kullanarak geliştirme sağlayabiliriz ve bu araçlar kendi içerisinde 2 ayrılıyor, ileriye dönük güncellemeler ve geçmiş verilerden gelen güncellemeler şeklinde şekilleniyor.Bu araçlarda zaten kullanım süreçlerinde bizim karşımıza çıkarak Stateful yapıların kullanımını kolaylaştırıyor.

Önceki yazımda da anlattığım gibi durumsal yapıları değişimlerini ekranda görüntüleyebilmek için tetikleyici kodları ve fonksiyonların olması gerekmektedir. bunlardan bir tanesini Geçen ki Yazım da zaten gördük ve konuştuk setState() ,

Ama bu süreçler tek sadece bir durum ayarlama ile olan yapılar değildir Bazı yapılar kendi içerisindeki verileri depolayarak ekranlarda istenilen araçlara bastırılarak görüntülü alınabilir.Bunlardan bir tanesi, Stream ve diğer bir taneside ChangeNotifier dir. Ve bu yapılar durumsal olarak değişimleri hızlı bir şekilde ekranda görmemizi sağlarlar.

Yazmış olduğunuz örnek uygulamamızda şunu da düşünebiliriz, durumsal değişimler tek bir yapıda değil aslında tamamen bütün kod ağacımız da görüntülenebilir bir şekilde karşımıza çıkıyor yani yapmış olduğumuz en ufak değişiklik tamamen bütün yapıda görüntülenmesinde bize yardımcı oluyor bu dekoratif arayüz tasarımı en güzel ölçekli bir şekilde oluşmasını karşımıza çıkar ara performans ve ara kayıplardan kurtulmanıza yardımcı oluyor. herhangi bir durumun değişimi diğer araçlar içerisinde hızlıca sonuç almamız da sağlıyor.

Global key Tanımlaması yapıldıktan sonra eşsiz bir şekilde sadece tek bir araç içerisinde durum ve yapıyı güncelleyebiliriz. Bu da bloglar arasındaki iletişimin arasındaki iletişimsizliği ortadan kaldırarak eşsiz bir şekilde istenilen araç iletişime geçerek sonucun görüntülenmesini sağlar.

StatefulWidget kendi içinde iki gruba ayrılır.

Birinci olarak ifade edeceğim özel yapısı ise, araç oluşturulduktan sonra kendine sadece Tek seferlik Bir güncelleme veya Yukarıdaki bahsetmiş olduğumuz tetikleme sürecinde yararlanır dinamik değişim oluşturulur.Sürekli güncelleme dahil değildir.

Etkileşim içinde olduğu Widget’lar — ChangeNotifier, Stream

İkinci olarak ifade gemis Yapı ise, bütün kod bloğu arasında sürekli iletişim halinde olup sürekli değişimleri tekrardan oluşturarak kendini inşa eden yapılır burada ki olan yapı InheritedWidget İle genişleterek sürekli Güncellemeleri alarak gösteren araçtır.

Her seferinde kendi içinde tekrarlanabilir yeni bir yapı inşaa eder.

Örnek verecek olursak,

Buna en basit örnek saat yapısı verilir.Örnek verelim bir tane buton hayal edelim butona basıldığı anda saati gösterir ve sadece buradaki tetik nokta aldıktan sonra İnşaat eder ve güncellemesiz şekilde kalır.Ama bu kullanım açısından çok verimli değildir. Bizim istediğimiz şeyse an ve an sürekli saat değişimine ekrana vererek kişiye-kullanıcıya göstermek İşte buradaki süreç karşımıza gelerek ikinci yapıyı kullanmamızı sağlamaktadır. performans açısından bazı uygulamalarda yorucu olsa da son kullanıcı açısından günü kurtardığına emin olabilirsiniz.

Buradaki Örnek bir videoyu izleyebilirsiniz.

Özet

Uygulamamızın içerisindeki birden fazla değişimleri yeni bloklar oluşturmaktan sa mevcut kendi çevresindeki blokların içinde iletişim sağlayarak, yapıların tasarımsal, arka planda çalışan fonksiyonların verimli bir şekilde görüntü almasını sağlamak istiyor isek, karşımıza Stateful yapılar çıkıyor. Dediğimiz gibi kendi içerisinde ikiye ayrılır. Bir tanesi sadece Tek seferlik anlık bir değişim sağlayarak görüntülü almamızı gerçekleştirir. 2. olarak sürekli değişim almak istiyorsak bu yapıyı da kullanıyoruz Bu da bizim uygulamamızın kullanıcı açısında daha dinamik bir arayüz ile karşısına çıkmamızı sağlıyor.

#dart #flutter #google

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response