LAYOUTS IN FLUTTER: EXPLORING STATEFUL WIDGETS EĞİTİMİ

Flutter'da durumu doğru yönet

StatefulWidget yaşam döngüsü, setState, Key ve Provider ile sağlam durum yönetimi kurmak

Flutter Stateful Widget Eğitimi, değişen veriyi arayüze doğru yansıtmanın temeli olan StatefulWidget'ı derinlemesine öğretir. Program StatelessWidget ve StatefulWidget ayrımı, State yaşam döngüsü, setState mekaniği, Key ile widget kimliği, controller yaşam dö…

4 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

State yaşam döngüsünden setState mekaniğine ve durum paylaşımına kadar

Bu eğitim, Flutter'da değişen veriyi arayüze doğru yansıtmanın temeli olan StatefulWidget'ı derinlemesine ele alır. Katılımcılar State yaşam döngüsünü, initState, didUpdateWidget ve dispose metotlarını ve setState'in çizimi nasıl tetiklediğini öğrenir. Ardından Key'lerle widget kimliği ve controller yaşam döngüsü işlenir. Program durumu yukarı taşıma, InheritedWidget, ChangeNotifier ve Provider ile paylaşım ve durum geri yüklemeyle tamamlanır.

Süre ve Format

4 Gün. Her gün dört modül; kısa anlatımın ardından aynı sayaç ve liste ekranı farklı durum yaklaşımlarıyla kurularak sonuçlar karşılaştırmalı gösterilir.

Seviye

Orta Seviye — Flutter'da StatefulWidget yaşam döngüsü, setState ve durum paylaşımını derinlemesine öğreten program

Öğrenme Metodu

Aynı sayaç ve liste ekranı önce setState, sonra ChangeNotifier ve Provider ile kurulur; yaşam döngüsü günlüklenerek gözlemlenir.

Neden Bu Eğitim?

🎯Durumu bilinçli yönetme

setState'in tam olarak neyi ve ne zaman yeniden çizdiğini kavrayarak beklenmedik hatalardan ve gereksiz çizimden kaçınırsınız.

♻️Yaşam döngüsü hâkimiyeti

initState ve dispose'u doğru kullanarak kaynakları zamanında kurar ve serbest bırakır, bellek sızıntısını önlersiniz.

🧩Ölçeklenebilir mimari

Durumu yukarı taşıma ve Provider ile ekranlar arası paylaşımı düzenleyerek büyüyen uygulamada kodu bakımı kolay tutarsınız.

Anahtar Konular

flutter stateful widget eğitimiflutter setstateflutter durum yönetimiflutter provider eğitimiflutter yaşam döngüsüflutter changenotifierflutter mobil uygulama eğitimidart state managementflutter key kullanımıflutter inheritedwidget
“Durum yönetimi, veriyi değil güveni yönetmektir; doğru yaşam döngüsü ve net sahiplik, uygulamayı büyüdükçe öngörülebilir kılar.”

Ön Koşullar

Eğitime başlamadan önce faydalı olacak bilgi ve kurulum

1
Dart temeli

Sınıf, kalıtım, closure ve generic gibi Dart kavramlarına aşinalık durum kodunu okumayı kolaylaştırır.

2
Temel Flutter bilgisi

StatefulWidget ile basit bir sayaç ekranı kurabilmek konuların durum yönetimine odaklanmasını sağlar.

3
Widget ağacı kavramı

Widget, Element ve build arasındaki ilişkiyi temel düzeyde bilmek yaşam döngüsünü anlamayı kolaylaştırır.

4
Çalışan Flutter kurulumu

Flutter SDK kurulu, bir emülatör veya gerçek cihazla hot reload yapabilir durumda olmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı StatelessWidget ile StatefulWidget farkını kavrar, State yaşam döngüsü metotlarının sırasını öğrenir ve initState ile dispose'u doğru yerde kullanır.
Modül 1
Stateless ve Stateful Ayrımı
  • StatelessWidget'ın değişmez yapısı ve kullanımı
  • StatefulWidget ile State'in ayrı sınıf olması
  • Widget'ın değişmez, State'in kalıcı olması
  • createState ile State örneğinin oluşturulması
  • Hangi ekranın hangi türe uygun olduğu kararı
  • Gereksiz StatefulWidget kullanımının maliyeti
Modül 2
State Yaşam Döngüsü Metotları
  • createState ve mounted alanının anlamı
  • build metodunun ne zaman çağrıldığı
  • Yaşam döngüsü metotlarının çağrılma sırası
  • setState sonrası build'in yeniden tetiklenmesi
  • deactivate ve ağaçtan geçici ayrılma durumu
  • Yaşam döngüsünü günlükleyerek gözlemleme
Modül 3
initState ve dispose
  • initState ile bir kez kurulum yapma
  • initState içinde context kısıtlarının bilinmesi
  • Dinleyici ve abonelik başlatma yeri
  • dispose ile kaynakları serbest bırakma
  • Controller ve StreamSubscription kapatma
  • Eksik dispose'un yol açtığı bellek sızıntısı
Modül 4
didUpdateWidget ve Bağımlılık
  • didUpdateWidget ile üst widget'tan gelen değişim
  • oldWidget ile yeni yapılandırmayı karşılaştırma
  • Değişen parametreye göre controller güncelleme
  • didChangeDependencies ve InheritedWidget bağı
  • of çağrılarının bağımlılık yaratması
  • Yeniden kurulum ile güncelleme arasındaki fark
Günün hedefiKatılımcı setState'in çizimi nasıl tetiklediğini kavrar, Key'lerle widget kimliğini korur, controller'ları doğru yönetir ve const ile gereksiz çizimi sınırlar.
Modül 1
setState ve Yeniden Çizim Mekaniği
  • setState ile State'i kirli işaretleyip çizim isteği
  • build ağacının yeniden çalışması ve karşılaştırma
  • Element ve Widget eşleşmesinin korunması
  • setState'i build içinde çağırmanın hatası
  • Asenkron işlem sonrası mounted kontrolü
  • Çizim kapsamını küçük widget'a daraltma
Modül 2
Key'ler ve Widget Kimliği
  • Key'in Element ağacında kimlik belirlemesi
  • ValueKey ile öğeye değere dayalı kimlik
  • ObjectKey ve UniqueKey kullanım durumları
  • Liste sırası değişince durum karışması sorunu
  • GlobalKey ile State'e dışarıdan erişim
  • Yanlış Key'in durum kaybına yol açması
Modül 3
Controller Yaşam Döngüsü
  • TextEditingController'ı initState'te oluşturma
  • ScrollController ile kaydırmayı dinleme
  • AnimationController için vsync sağlama
  • PageController ile sayfa geçişini yönetme
  • dispose'ta her controller'ı kapatma
  • Controller'ı widget yerine State'te tutma
Modül 4
const ve Çizimi Sınırlama
  • const widget ile yeniden kurulumu önleme
  • Değişmeyen alt ağacı child ile önbellekleme
  • Builder ile çizim kapsamını yerelleştirme
  • ValueListenableBuilder ile nokta güncelleme
  • Gereksiz rebuild'i DevTools ile tespit etme
  • RepaintBoundary ile çizim katmanı izolasyonu
Günün hedefiKatılımcı durumu ortak üst widget'a taşır, InheritedWidget ile aşağıya aktarır, ChangeNotifier ile dinlenebilir model kurar ve Provider ile durumu düzenli paylaşır.
Modül 1
Durumu Yukarı Taşıma
  • Paylaşılan durumu ortak ebeveyne taşıma
  • Callback ile çocuktan ebeveyne olay iletme
  • Veriyi aşağıya parametreyle aktarma
  • İki kardeş widget'ın aynı durumu paylaşması
  • Derin ağaçta parametre taşımanın zorluğu
  • Taşıma ile bağımlılık yönünün korunması
Modül 2
InheritedWidget ile Paylaşım
  • InheritedWidget ile ağaçta aşağıya veri sunma
  • of ile alt widget'tan erişim deseni
  • updateShouldNotify ile güncelleme kararı
  • dependOnInheritedWidgetOfExactType çalışması
  • Theme ve MediaQuery'nin bu desene dayanması
  • Elle InheritedWidget yazmanın sınırları
Modül 3
ChangeNotifier ve ValueNotifier
  • ChangeNotifier ile dinlenebilir model sınıfı
  • notifyListeners ile değişimi yayma
  • ValueNotifier ile tek değerli basit durum
  • ValueListenableBuilder ile noktasal dinleme
  • Modelde iş mantığını arayüzden ayırma
  • Dinleyicilerin dispose ile temizlenmesi
Modül 4
Provider ile Durum Yönetimi
  • ChangeNotifierProvider ile modeli ağaca sunma
  • context.watch ile değişimi dinleme
  • context.read ile dinlemeden erişim
  • Consumer ile çizim kapsamını sınırlama
  • Selector ile yalnızca gereken alanı dinleme
  • MultiProvider ile birden çok modeli sunma
Günün hedefiKatılımcı uygulama ön ve arka plan geçişlerini dinler, durum geri yükleme ile ekranı korur, bellek sızıntısını giderir ve öğrendiklerini tek bir ekranda birleştirir.
Modül 1
Uygulama Durumu Gözlemi
  • WidgetsBindingObserver ile yaşam döngüsü dinleme
  • didChangeAppLifecycleState ile ön ve arka plan
  • resumed, paused ve inactive durumlarının anlamı
  • Arka plana geçince zamanlayıcıyı durdurma
  • Öne dönünce veriyi tazeleme deseni
  • Observer'ı dispose'ta kaldırma
Modül 2
Durum Geri Yükleme
  • RestorationMixin ile durumu kalıcı kılma
  • restorationId ile widget durumunu kaydetme
  • RestorableInt gibi geri yüklenebilir değerler
  • Sistem uygulamayı kapatınca durumu geri alma
  • Metin alanı ve kaydırma konumunu koruma
  • Geri yükleme ile normal durum arasındaki fark
Modül 3
Bellek Sızıntısı ve Performans
  • Kapatılmayan controller'ın sızıntı yaratması
  • İptal edilmeyen Stream aboneliğinin etkisi
  • DevTools Memory ile nesne izleme
  • Gereksiz rebuild'in kare süresine etkisi
  • const ve Selector ile çizim maliyetini azaltma
  • profile modunda gerçek cihazda ölçüm
Modül 4
Durum Yönetimli Ekran Projesi
  • Sayaç ve liste ekranını Provider ile kurma
  • Model, görünüm ve olay sorumluluklarını ayırma
  • Yaşam döngüsü günlüğüyle davranışı doğrulama
  • Durum geri yüklemeyi ekrana ekleme
  • Gereksiz çizimi DevTools ile denetleme
  • Ekranı bakımı kolay son hâline getirme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Stateful yapıya hâkimiyet

StatelessWidget ile StatefulWidget farkını kavrayarak her ekran için doğru widget türünü bilinçle seçersiniz.

✅
Yaşam döngüsü yönetimi

initState, didUpdateWidget ve dispose metotlarını doğru yerde kullanarak kaynakları zamanında kurar ve kapatırsınız.

✅
setState mekaniği

setState'in çizimi nasıl ve ne zaman tetiklediğini kavrayarak beklenmedik hataları ve gereksiz çizimi önlersiniz.

✅
Key ile kimlik koruma

ValueKey ve GlobalKey ile liste öğelerinin durumunu koruyarak sıra değişiminde oluşan karışıklığı giderirsiniz.

✅
Durumu yukarı taşıma

Paylaşılan durumu ortak ebeveyne taşıyarak kardeş widget'lar arasında tutarlı veri akışı kurabilirsiniz.

✅
Provider ile paylaşım

ChangeNotifier ve Provider ile iş mantığını arayüzden ayırır, durumu düzenli ve ölçeklenebilir biçimde paylaşırsınız.

✅
Uygulama yaşam döngüsü

WidgetsBindingObserver ile ön ve arka plan geçişlerini dinleyip veriyi doğru anda durdurur ve tazelersiniz.

✅
Dayanıklılık ve performans

Durum geri yükleme ve bellek izlemeyle sızıntısız, dayanıklı ve akıcı bir ekran geliştirebilir duruma gelirsiniz.

Kimler İçin Uygundur?

  • Flutter ile ekran kurabilen ancak durum yönetiminde zorlanan
  • setState'in ne zaman ve neden çalıştığını tam kavramak isteyen mobil geliştiriciler
  • kodunu düzenli yapılandırmak isteyen yazılımcılar
  • Dart'a aşina öğrenciler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Flutter ile ekran kurabilen ancak durum yönetiminde zorlanan, setState'in ne zaman ve neden çalıştığını tam kavramak isteyen mobil geliştiriciler ile Dart'a aşina öğrenciler için uygundur. Temel StatefulWidget bilgisi yeterli başlangıç düzeyidir.
setState yerine neden Provider öğretiliyor?
setState tek bir ekranın yerel durumu için yeterlidir ancak durum birden çok ekranda paylaşıldığında ağaç boyunca parametre taşımak zorlaşır. Üçüncü gün ChangeNotifier ve Provider ile iş mantığı arayüzden ayrılır; aynı sayaç ekranı iki yaklaşımla kurularak fark karşılaştırılır.
Eğitimin süresi ve formatı nedir?
Eğitim dört gün sürer ve her gün dört modülden oluşur. Aynı sayaç ve liste ekranı farklı durum yaklaşımlarıyla kurulur. Yüz yüze veya online yapılabilir ve kurumun ihtiyacına göre uyarlanabilir.
Bellek sızıntısı ve performans kapsanıyor mu?
Evet. Son gün kapatılmayan controller ve iptal edilmeyen Stream aboneliğinin yol açtığı sızıntılar, DevTools Memory ile nesne izleme ve gereksiz rebuild'in kare süresine etkisi işlenir; const ve Selector ile çizim maliyetini azaltma uygulamalı gösterilir.
Eğitim sonunda sertifika veriliyor mu?
Programı tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır. Sertifika tamamlanan modülleri ve geliştirilen durum yönetimli ekran örneğini belgeler; kurumsal gruplara özel uyarlama yapılabilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Layouts in Flutter: Exploring Stateful Widgets Eğitimi Sertifika Kodu DV-2026XX00 Tarih 15.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Flutter ve DartLayouts in Flutter: Building an Application Using Layouts & Navigation Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Layouts in Flutter: Building an Application Using Layouts & Navigation Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Scaffold, Navigator ve go_router ile çok ekranlı Flutter uygulaması kurma eğitimi. İskeletten derin bağlantıya uygulamalı ve kurumsal.

Detayları Gör →
Flutter ve DartLayouts in Flutter: Implementing Basic Flutter Layouts Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Layouts in Flutter: Implementing Basic Flutter Layouts Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Container, Row, Column ve kısıt modeliyle Flutter temel yerleşim eğitimi. Kutu modelinden ekran kurmaya uygulamalı ve kurumsal.

Detayları Gör →
Flutter ve DartLayouts in Flutter: Implementing Stacks, Lists, & Grids in Flutter Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Layouts in Flutter: Implementing Stacks, Lists, & Grids in Flutter Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Stack, ListView, GridView ve Sliver'larla verimli Flutter liste ve ızgara eğitimi. Katmanlardan özel kaydırmaya uygulamalı ve kurumsal.

Detayları Gör →
Flutter ve DartMobile Development: Testing & Debugging Flutter Applications Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Mobile Development: Testing & Debugging Flutter Applications Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

DevTools, flutter_test, mockito, widget ve integration_test ile Flutter hata ayıklama ve test eğitimi. Golden testten CI otomasyonuna uygulamalı.

Detayları Gör →
Flutter ve DartBLoC Pattern Flutter Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

BLoC Pattern Flutter Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

Cubit, Bloc, event ve state akışı, BlocProvider, repository deseni, bloc_test ve hydrated_bloc ile Flutter'da profesyonel durum yönetimi eğitimi.

Detayları Gör →
Flutter ve DartBuild Native iOS and Android Apps with Flutter Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Build Native iOS and Android Apps with Flutter Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Platform channel, Cupertino ve Material uyarlaması, imzalama ve mağaza yayını ile tek Flutter kod tabanından iOS ve Android native uygulama geliştirme eğitimi.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn