Sobes.tech
Junior — Middle

Uygulama durum yönetiminde BLoC deseninin çalışma mekanizmasını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Flutter'da uygulama durumunu yönetmek için BLoC (Business Logic Component) deseni kullanılır ve bu, iş mantığını UI'den ayırır.

Ana fikir, olaylar ve durumlar iletmek için Akışlar (Streams) kullanmaktır:

  • Olaylar (Events): kullanıcı eylemleri veya dış olaylar BLoC'ye gönderilir.
  • İşlem: BLoC olayları alır, iş mantığını yürütür ve yeni bir durum oluşturur.
  • Durumlar (States): Güncellenmiş veriler, UI'nin abone olduğu akış aracılığıyla geri iletilir.

Bu, kodun daha modüler, test edilebilir ve sürdürülebilir olmasını sağlar.

Basitleştirilmiş bir BLoC örneği:

class CounterBloc {
  final _eventController = StreamController<void>();
  final _stateController = StreamController<int>();

  int _count = 0;

  StreamSink<void> get eventSink => _eventController.sink;
  Stream<int> get stateStream => _stateController.stream;

  CounterBloc() {
    _eventController.stream.listen((_) {
      _count++;
      _stateController.sink.add(_count);
    });
  }

  void dispose() {
    _eventController.close();
    _stateController.close();
  }
}

UI, stateStream'e abone olur ve olayları eventSink'e gönderir, BLoC durumu günceller ve UI'yi bilgilendirir.