تبسيط لمفهوم أنواع الـ Streams في Flutter : دليل شامل

تبسيط لمفهوم أنواع الـ Streams في Flutter

تبسيط لمفهوم أنواع الـ Streams في Flutter

من الأسئلة الشائعة في أي مقابلة عمل لـ Flutter هو سؤال: ما هي أنواع الـ Streams في Flutter؟

Flutter هو إطار عمل مفتوح المصدر تم تطويره بواسطة Google في عام 2017، ويمكن استخدامه لتطوير تطبيقات الجوال والمواقع الإلكترونية على منصات متعددة، بما في ذلك Android وiOS وWeb وWindows وmacOS.


في Flutter، لدينا نوعان من الـ Streams:

الـ Single Subscription Stream: يسمح هذا النوع من الـ Stream للمشترك بالاستماع إلى الأحداث مرة واحدة فقط. إذا حاولت الاستماع إلى الحدث مرة أخرى، فستتلقى خطأ.

الـ Broadcast Stream: يسمح هذا النوع من الـ Stream للمشتركين بالاستماع إلى الأحداث عدة مرات.

الفرق بين الـ Single Subscription Stream والـ Broadcast Stream


الفرق الرئيسي بين النوعين هو عدد المشتركين الذين يمكنهم الاستماع إلى الأحداث.

الـ Single Subscription Stream: يمكن لمشترك واحد فقط الاستماع إلى الأحداث.

الـ Broadcast Stream: يمكن لأي عدد من المشتركين الاستماع إلى الأحداث.


متى تستخدم الـ Single Subscription Stream؟

استخدم الـ Single Subscription Stream عندما تريد الاستماع إلى حدث مرة واحدة فقط. على سبيل المثال، يمكنك استخدام الـ Single Subscription Stream لقراءة محتوى ملف مرة واحدة.


متى تستخدم الـ Broadcast Stream؟

استخدم الـ Broadcast Stream عندما تريد السماح لعدد من المشتركين بالاستماع إلى حدث. على سبيل المثال، يمكنك استخدام الـ Broadcast Stream لبث أحداث من واجهة المستخدم إلى مكونات أخرى في التطبيق.


كيفية إغلاق الـ Streams

يمكنك إغلاق الـ Streams باستخدام طريقة close(). ستؤدي هذه الطريقة إلى إيقاف تشغيل الـ Stream وعدم السماح للمشتركين بالاستماع إلى أحداث جديدة.


كيفية تحرير الموارد المستخدمة من قبل الـ Streams

يمكنك تحرير الموارد المستخدمة من قبل الـ Streams باستخدام طريقة dispose(). ستؤدي هذه الطريقة إلى إيقاف تشغيل الـ Stream وإغلاقه وتحرير الموارد المستخدمة منه.


أمثلة


فيما يلي بعض الأمثلة على كيفية استخدام الـ Streams في Flutter:


مثال على الـ Single Subscription Stream


Stream<int> getNumbers() {

  return Stream.fromIterable([1, 2, 3]);

}
void main() {

  // Create a single subscription stream.
  Stream<int> numbers = getNumbers();

  // Listen to the stream once.
  numbers.listen((int number) {
    print(number);
  });


  // Try to listen to the stream again.
  // This will throw an error because the stream is already subscribed.
  numbers.listen((int number) {
    print(number);
  });
}

سيؤدي هذا المثال إلى طباعة الأرقام التالية:


1

2

3


مثال على الـ Broadcast Stream


Stream<int> getNumbers() {

  return Stream.fromIterable([1, 2, 3]);

}

void main() {

  // Create a broadcast stream.
  Stream<int> numbers = getNumbers().broadcast();

  // Listen to the stream twice.
  numbers.listen((int number) {
    print("Listener 1: $number");
  });
  numbers.listen((int number) {
    print("Listener 2: $number");

  });
}

سيؤدي هذا المثال إلى طباعة الأرقام التالية:


Listener 1: 1

Listener 2: 1

Listener 1: 2

Listener 2: 2

Listener 1: 3

Listener 2: 3


الخلاصة

الـ Streams هي أداة قوية يمكن استخدامها في Flutter لبث الأحداث. هناك نوعان من الـ Streams: الـ Single Subscription Stream والـ Broadcast Stream. اختر النوع المناسب للتطبيق الخاص بك بناءً على عدد المشتركين الذين تريد السماح لهم بالاستماع إلى الأحداث.


تبسيط لمفهوم أنواع الـ Streams في Flutter

تعليقات