StreamController
- Flutter kursu
- Orta seviye
- Ders 28/99
- 4 dk
StreamController ile kendi Stream'ini oluşturmayı öğrenirsin.
StreamController
StreamController, kendi Stream'ini oluşturmanı sağlar. sink.add ile akışa değer gönderir, stream özelliği ile de dinleyebilirsin.
final controller = StreamController<int>();
controller.sink.add(1);
controller.stream.listen(print);Bu, programatik olarak veri üretmenin yoludur.
sink ve stream
controller.sink.add(deger) akışa yeni bir değer gönderir. controller.stream ise bu değerleri dinlemek için kullanılan Stream'dir.
controller.sink.add('merhaba');
controller.stream.listen((deger) {
print(deger);
});Akıştan gelen değerler dinleyicilere iletilir.
Uygulama StreamController ile veri gönder
VeriYoneticisi sınıfında StreamController<String> tut. veriGonder metodu controller.sink.add(deger) çağırsın. stream getter'ı controller.stream döndürsün. main'de yönetici oluştur, 'merhaba' gönder ve print('yönetici hazır') çağır.
Başlangıç kodu
import 'dart:async';
class VeriYoneticisi {
// kontrolcü tanımla
// veriGonder metodu ekle
// stream getter ekle
}
void main() {
final yonetici = VeriYoneticisi();
yonetici.veriGonder('merhaba');
print('yönetici hazır');
}Örnek çözüm
import 'dart:async';
class VeriYoneticisi {
final controller = StreamController<String>();
void veriGonder(String deger) {
controller.sink.add(deger);
}
Stream<String> get stream => controller.stream;
}
void main() {
final yonetici = VeriYoneticisi();
yonetici.veriGonder('merhaba');
print('yönetici hazır');
}Beklenen çıktı
yönetici hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 StreamController ile ne yapılır?
- Kendi Stream'ini oluşturursun Doğru cevap
- Widget çizilir
- Stream dinleyici eklenir
- Future üretir
Açıklama: StreamController ile kendi Stream'ini oluşturursun; sink.add ile değer gönderir, stream ile dinlersin.
2 sink.add ile değer gönder
controller.sink.____('merhaba');
controller.sink.add('merhaba');
Açıklama: controller.sink.add ile akışa yeni bir değer gönderilir; dinleyenler bu değeri alır.
3 StreamController parçaları
| Kavram | Anlamı |
|---|---|
StreamController |
Kendi Stream'ini oluşturan sınıf |
sink |
Akışa veri ekleme kanalı |
stream |
Dinlenebilen akış |
add |
sink üzerinden değer gönderme metodu |