BLOC PATTERN FLUTTER EĞİTİMİ

Flutter'da BLoC ile öngörülebilir durum

Cubit, Bloc, event ve state akışı, BlocProvider ve bloc_test ile ölçeklenebilir durum yönetimi

BLoC Pattern Flutter Eğitimi, Flutter uygulamalarında durum yönetimini BLoC deseniyle kurmayı öğretir. Cubit ile basit durumdan başlanır, event ve state akışıyla Bloc yapısına geçilir.

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

Eğitim Hakkında

Flutter uygulamalarında BLoC desenini uçtan uca kuran odaklı bir durum yönetimi programı

BLoC Pattern Flutter Eğitimi, Flutter uygulamalarında durum yönetimini BLoC deseniyle profesyonelce kurmayı öğretir. Katılımcılar Cubit ile basit durumdan başlar, event ve state akışıyla Bloc yapısına geçer. BlocProvider, BlocBuilder, BlocListener ve BlocConsumer ile arayüzü duruma bağlar; repository deseni, bloc_test ve hydrated_bloc ile test edilebilir ve kalıcı mimari kurar. Program; concurrency transformer ve hata yönetimiyle tamamlanır.

Süre ve Format

4 Gün. Her gün dört modül; BLoC kavramları tek bir uygulamada canlı kodlanır, event ve state akışı kurulur ve son gün test eklenir.

Seviye

Orta Seviye — Flutter uygulamalarında BLoC ve Cubit ile öngörülebilir durum yönetimini öğreten program

Öğrenme Metodu

Her kavram tek bir uygulamada canlı kodlanır; katılımcı aynı event ve state akışını yazarak tekrar eder ve testlerle pekiştirir.

Neden Bu Eğitim?

🎯Öngörülebilir durum

Event ve state akışıyla uygulama durumunu tek yönlü ve öngörülebilir biçimde yönetmeyi öğrenirsiniz.

🧪Test edilebilirlik

bloc_test ile durum geçişlerini izole ve güvenilir biçimde test eden bir mimari kurmayı kavrarsınız.

📈Ölçeklenebilirlik

BLoC ile arayüz ve iş mantığını ayırarak büyüyen projelerde bakımı kolay ve sürdürülebilir kod yazarsınız.

Anahtar Konular

flutter bloc eğitimibloc patternflutter durum yönetimicubit eğitimiflutter_blocflutter state managementbloc_testhydrated_blocflutter eğitimimobil uygulama geliştirme eğitimi
“İyi bir mimari, durumun nereden geldiğini ve nereye gittiğini her zaman görünür kılar; BLoC bu görünürlüğü akışa dönüştürür.”

Ön Koşullar

Eğitimden verim almak için önerilen hazırlık ve beklentiler

1
Flutter temeli

Widget ağacı, StatelessWidget ve StatefulWidget kavramlarına temel düzeyde hâkim olmak gereklidir.

2
Dart bilgisi

Dart söz dizimi, Future ve Stream kavramlarına aşinalık eğitimden verim almak için önerilir.

3
Geliştirme ortamı

Flutter SDK ve bir editör ile çalışan bir emülatör veya fiziksel cihaz hazır olmalıdır.

4
setState deneyimi

setState ile basit durum yönetmiş olmak, BLoC'un getirdiği farkı anlamayı kolaylaştırı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ı durum yönetiminin gerekçesini kavrar, Cubit ile durum üretir, emit ile durumu günceller ve arayüze bağlar.
Modül 1
Durum Yönetimi Gerekçesi
  • setState'in büyük projelerdeki sınırları
  • İş mantığını arayüzden ayırmanın önemi
  • Tek yönlü veri akışı kavramının anlaşılması
  • BLoC kütüphanesinin mimari yaklaşımı
  • Cubit ile Bloc arasındaki temel fark
  • flutter_bloc paketini projeye ekleme
Modül 2
Cubit ile Durum Üretme
  • Cubit sınıfı ve başlangıç durumu tanımı
  • emit ile yeni durumu arayüze yayınlama
  • Durum sınıfını değişmez tasarlama
  • Metotlarla iş mantığını Cubit'e taşıma
  • copyWith ile durumu kısmi güncelleme
  • Cubit yaşam döngüsü ve close yöntemi
Modül 3
Cubit'i Arayüze Bağlama
  • BlocProvider ile Cubit'i ağaca sağlama
  • BlocBuilder ile duruma göre arayüz çizme
  • context.read ile olay tetikleme
  • context.watch ile duruma abone olma
  • MultiBlocProvider ile çoklu sağlama
  • Cubit kapsamını doğru belirleme
Modül 4
Sayaç Üzerinde Uygulama
  • Örnek bir sayaç Cubit'i tasarlama
  • Artırma ve azaltma olaylarını işleme
  • Durumu arayüzde anlık yansıtma
  • Yükleniyor ve hata durumlarını ekleme
  • Durum sınıflarını anlamlı biçimde ayrıştırma
  • Küçük adımlarla mimariyi doğrulama
Günün hedefiKatılımcı Bloc'u event ve state ile kurar, on handler ile olayları işler ve durum sınıflarını hiyerarşik tasarlar.
Modül 1
Event Tanımı ve Gönderimi
  • Event sınıflarını soyut taban ile tanımlama
  • Kullanıcı eylemini event olarak modelleme
  • Event parametreleriyle veri taşıma
  • Equatable ile event karşılaştırma
  • add metoduyla Bloc'a event gönderme
  • Event adlandırma ve anlamsal tasarım
Modül 2
State Modelleme ve Tasarım
  • State için soyut taban sınıf kurma
  • Initial, loading, success ve failure durumları
  • Equatable ile gereksiz çizimi önleme
  • Durum sınıfına veri alanları ekleme
  • Tek state sınıfıyla enum durum yaklaşımı
  • freezed ile değişmez state üretimi
Modül 3
on Handler ile İşleme
  • on<Event> ile olay işleyici kaydı
  • Emitter ile ardışık durum yayını
  • Asenkron handler içinde await kullanımı
  • Birden fazla durumu sırayla yayınlama
  • Handler içinde try-catch ile hata yakalama
  • Event işleme sırası ve kuyruk davranışı
Modül 4
BlocListener ve BlocConsumer
  • BlocListener ile yan etki tetikleme
  • SnackBar ve dialog için dinleyici
  • listenWhen ile seçici yan etki dinleme
  • BlocConsumer ile çizim ve dinlemeyi birleştirme
  • buildWhen ile gereksiz çizimi azaltma
  • Gezinmeyi dinleyiciyle yönetme
Günün hedefiKatılımcı repository deseniyle veri kaynağını soyutlar, API verisini Bloc'a bağlar ve hata ile yükleme durumlarını yönetir.
Modül 1
Repository Deseni
  • Repository ile veri kaynağını soyutlama
  • Uzak ve yerel kaynağı tek arayüzde birleştirme
  • Model sınıflarını veriden ayrıştırma
  • RepositoryProvider ile bağımlılık sağlama
  • Bloc'a repository'yi yapıcıdan geçirme
  • Katmanlı sorumluluk ayrımının kurulması
Modül 2
API ile Veri Çekme
  • Dio veya http ile ağ isteği kurma
  • JSON yanıtını modele dönüştürme
  • Repository metoduyla veriyi sağlama
  • Bloc event'i içinde veriyi isteme
  • Loading durumunu arayüze yayınlama
  • Başarı durumuyla veriyi arayüze taşıma
Modül 3
Hata ve Yükleme Yönetimi
  • try-catch ile ağ hatalarını yakalama
  • Failure durumuyla hatayı yansıtma
  • Hata mesajını kullanıcıya gösterme
  • Yeniden deneme olayı tanımlama
  • Boş veri ve kenar durum yönetimi
  • Zaman aşımı ve bağlantı hatası ayrımı
Modül 4
Sayfalama ve Akış
  • Sonsuz kaydırmayla sayfalı veri çekme
  • transformer ile event akışını kısıtlama
  • droppable ile üst üste istek engelleme
  • Yeni sayfayı mevcut duruma ekleme
  • Aşağı çekip yenileme olayını işleme
  • Yükleniyor göstergesini akıcı yönetme
Günün hedefiKatılımcı bloc_test ile durum geçişlerini test eder, hydrated_bloc ile durumu kalıcılaştırır ve öğrenilenleri bir projede birleştirir.
Modül 1
bloc_test ile Test
  • blocTest fonksiyonuyla senaryo kurma
  • act bloğunda event tetikleme ve test
  • expect ile beklenen durum sırası
  • Repository'yi mocktail ile taklit etme
  • seed ile başlangıç durumu verme
  • verify ile etkileşimi doğrulama
Modül 2
hydrated_bloc ile Kalıcılık
  • HydratedBloc ile durumu diske yazma
  • toJson ve fromJson ile serileştirme
  • Uygulama yeniden açılışında durum geri yükleme
  • HydratedStorage başlatma yapılandırması
  • Seçici kalıcılık ve sürüm yönetimi
  • Kalıcı durumu temizleme ve sıfırlama
Modül 3
BlocObserver ve Hata Ayıklama
  • BlocObserver ile tüm geçişleri izleme
  • onTransition ile durum değişimini loglama
  • onError ile global hata yakalama
  • onEvent ile gelen olayları gözlemleme
  • Hata ayıklamada akışı takip etme
  • Üretimde gözlemciyi doğru kullanma
Modül 4
Bitirme Projesi ve Uygulama
  • Çok ekranlı uygulamayı BLoC ile kurma
  • Repository ile API verisini bağlama
  • BlocBuilder ve BlocListener ile arayüz
  • hydrated_bloc ile oturum kalıcılığı
  • bloc_test ile kritik akışları doğrulama
  • Mimariyi okunabilir biçimde ayrıştırma

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
BLoC mimarisi

Event ve state akışıyla iş mantığını arayüzden ayırarak öngörülebilir bir BLoC mimarisi kurabilirsiniz.

✅
Cubit kullanımı

Cubit ile basit durumları yönetir, emit ve copyWith ile durumu güvenle günceller ve arayüze bağlarsınız.

✅
State modelleme

Durum sınıflarını hiyerarşik ve değişmez tasarlayarak yükleme, başarı ve hata durumlarını temiz yönetirsiniz.

✅
Arayüz bağlama

BlocProvider, BlocBuilder, BlocListener ve BlocConsumer ile arayüzü duruma verimli biçimde bağlarsınız.

✅
Repository deseni

Repository ile veri kaynağını soyutlar, API verisini Bloc'a bağlar ve bağımlılıkları düzenli biçimde sağlarsınız.

✅
Test yetkinliği

bloc_test ve mocktail ile durum geçişlerini izole test ederek güvenilir ve regresyona dayanıklı kod yazarsınız.

✅
Kalıcılık

hydrated_bloc ile uygulama durumunu diske yazar ve yeniden açılışta geri yükleyerek kesintisiz deneyim sunarsınız.

✅
Hata ayıklama

BlocObserver ile tüm olay ve durum geçişlerini izleyerek karmaşık akışları hızlıca hata ayıklayabilirsiniz.

Kimler İçin Uygundur?

  • Temel Flutter bilgisine sahip
  • durum yönetimini profesyonelce kurmak isteyen mobil geliştiriciler
  • setState sınırlarına takılan ekipler
  • ölçeklenebilir mimari arayan yazılımcılar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Eğitim, temel Flutter bilgisine sahip ve durum yönetimini profesyonelce kurmak isteyen geliştiriciler içindir. setState ile büyüyen projelerde zorlanan ve ölçeklenebilir mimari arayan ekipler için özellikle uygundur. Widget ağacı ile Dart'ın Future ve Stream kavramlarına aşina olanlar en yüksek verimi alır.
Cubit ile Bloc arasındaki fark nedir?
Cubit, metot çağrılarıyla doğrudan durum üreten daha basit bir yapıdır ve küçük senaryolar için idealdir. Bloc ise kullanıcı eylemlerini event olarak alır ve state'e dönüştürür; bu, karmaşık akışlarda izlenebilirlik ve test kolaylığı sağlar. Eğitim her ikisini de uygulamalı işler ve ne zaman hangisinin seçileceğini gösterir.
Eğitim süresi ve formatı nedir?
Eğitim dört gün sürer ve her gün dört modülden oluşur. BLoC kavramları tek bir örnek uygulama üzerinde canlı kodlanır; katılımcı aynı event ve state akışını yazarak tekrar eder. Son gün test ve kalıcılık eklenir. Program yüz yüze veya online yapılabilir ve kuruma özel uyarlanabilir.
Hangi paketler ve araçlar kullanılıyor?
Eğitim; flutter_bloc, bloc_test, hydrated_bloc ve equatable paketlerini kullanır. Veri katmanında Dio veya http ile API istekleri, test tarafında mocktail ile taklit nesneler işlenir. İsteğe bağlı olarak freezed ile değişmez durum üretimi de gösterilir. Tüm örnekler güncel Flutter SDK üzerinde çalıştırılır.
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 bitirme projesini belgeler. Kurumsal gruplara özel içerik uyarlaması ve takım bazlı değerlendirme 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. BLoC Pattern Flutter 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 DartFlutter Development: Introducing Flutter & the Dart Programming Language Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Flutter Development: Introducing Flutter & the Dart Programming Language Eğitimi

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

Flutter mimarisini ve Dart programlama dilini temelden öğrenin. Widget, null safety, OOP ve asenkron konularıyla ilk uygulamaya kadar uygulamalı eğitim.

Detayları Gör →
Flutter ve DartFlutter Development: Using Classes & Objects in Dart Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Flutter Development: Using Classes & Objects in Dart Eğitimi

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

Dart'ta sınıflar, yapıcılar, kalıtım, mixin, generics ve değişmez modellerle nesne yönelimli programlamayı Flutter odağında öğreten kurumsal eğitim.

Detayları Gör →
Flutter ve DartFlutter Development: Using Variables, Collections, & Functions in Dart Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Flutter Development: Using Variables, Collections, & Functions in Dart Eğitimi

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

Dart'ta değişkenler, null güvenliği, List, Set, Map koleksiyonları ve fonksiyonlarla Flutter'a hazırlık sağlayan sıfırdan uygulamalı kurumsal eğitim.

Detayları Gör →
Flutter ve DartFlutter ile Android ve IOS Uygulama Geliştirme Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Flutter ile Android ve IOS Uygulama Geliştirme Eğitimi

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

Widget ağacı, durum yönetimi, navigasyon, Dio ile ağ istekleri ve mağaza yayınıyla Flutter'da Android ve iOS uygulama geliştirmeyi öğreten kurumsal eğitim.

Detayları Gör →
Flutter ve DartFlutter ile Natif iOS ve Android Uygulamaları Oluşturma Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Flutter ile Natif iOS ve Android Uygulamaları Oluşturma Eğitimi

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

Platform kanalları, MethodChannel, Kotlin ve Swift köprüsü, natif cihaz özellikleri ve mağaza yayınıyla Flutter'da natif uygulama geliştirmeyi öğreten eğitim.

Detayları Gör →
Flutter ve DartFlutter: Dart ile Yerel Çapraz-Platform Uygulamaları Oluşturun Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Flutter: Dart ile Yerel Çapraz-Platform Uygulamaları Oluşturun Eğitimi

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

Tek Dart kod tabanıyla mobil, web ve masaüstüne yerel uygulama; render mimarisi, duyarlı tasarım, performans ve CI/CD dağıtımını öğreten kurumsal eğitim.

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