Flutter मोबाइल विकास · पाठ

Streams और प्रतिक्रियाशील डेटा

लाइव अपडेट, सॉकेट और प्रतिक्रियाशील UI जैसे निरंतर अतुल्यकालिक डेटा को संभालने के लिए Flutter में Dart Streams के साथ काम करना सीखिए।

पाठ 4, कुल 4 में से13 चरण

Streams और प्रतिक्रियाशील डेटा, CoddyKit पर Flutter मोबाइल विकास का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Flutter मोबाइल विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Flutter मोबाइल विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

एकल Future से आगे

Future आपको बाद में एक मान देता है। Stream समय के साथ कई मान देती है।

  • WebSocket संदेश
  • सेंसर रीडिंग
  • डेटाबेस के लाइव अपडेट

Streams एसिंक्रोनस Dart की प्रतिक्रियाशील रीढ़ हैं।

Stream को सुनना

listen से किसी स्ट्रीम की सदस्यता लें और डेटा, त्रुटियों तथा पूर्णता के लिए कॉलबैक दें।

stream.listen(
  (data) => print('Got: ' + data.toString()),
  onError: (e) => print('Error: ' + e.toString()),
  onDone: () => print('Done'),
);

async* से Stream बनाना

एसिंक्रोनस जनरेटर मान जारी करने के लिए async* और yield का उपयोग करता है।

Stream<int> countTo(int n) async* {
  for (var i = 1; i <= n; i++) {
    await Future.delayed(const Duration(seconds: 1));
    yield i;
  }
}

await for

एसिंक्रोनस फ़ंक्शन के भीतर await for से स्ट्रीम पर पुनरावृत्ति कर सकते हैं और हर मान के आते ही उसे संसाधित कर सकते हैं।

Future<void> run() async {
  await for (final value in countTo(3)) {
    print(value);
  }
}

Single बनाम Broadcast

एकल-सदस्यता वाली स्ट्रीम में केवल एक श्रोता हो सकता है। broadcast स्ट्रीम में कई श्रोता हो सकते हैं। asBroadcastStream() से रूपांतरित करें।

final broadcast = controller.stream.asBroadcastStream();
broadcast.listen((v) => print('A: ' + v.toString()));
broadcast.listen((v) => print('B: ' + v.toString()));

StreamController

StreamController आपको अपने कोड से किसी स्ट्रीम में मान भेजने देता है।

final controller = StreamController<String>();
controller.add('hello');
controller.add('world');
controller.close();

Streams का रूपांतरण

Streams में map, where और take जैसे कार्यात्मक ऑपरेटर होते हैं।

stream
  .where((n) => n.isEven)
  .map((n) => n * 10)
  .take(5)
  .listen(print);

StreamBuilder विजेट

UI में, StreamBuilder स्ट्रीम द्वारा नया मान जारी किए जाने पर फिर से बनता है।

StreamBuilder<int>(
  stream: countTo(5),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return const CircularProgressIndicator();
    return Text('Value: ' + snapshot.data.toString());
  },
);

Snapshot पढ़ना

AsyncSnapshot आपको कनेक्शन की स्थिति तथा यह बताता है कि डेटा या कोई त्रुटि मौजूद है या नहीं।

  • snapshot.connectionState
  • snapshot.hasData / snapshot.data
  • snapshot.hasError / snapshot.error
if (snapshot.hasError) return Text('Error: ' + snapshot.error.toString());

सदस्यताओं को रद्द करना

मेमोरी लीक से बचने के लिए dispose में सदस्यताओं को हमेशा रद्द करें।

late StreamSubscription sub;

@override
void dispose() {
  sub.cancel();
  super.dispose();
}

Backpressure और त्रुटियाँ

Streams प्रवाह के बीच में त्रुटियाँ जारी कर सकती हैं। उन्हें handleError से संभालें, ताकि एक खराब इवेंट पूरी डेटा-प्रक्रिया को बंद न कर दे।

stream
  .handleError((e) => print('Skipped: ' + e.toString()))
  .listen(print);

त्वरित जाँच

जैसे-जैसे स्ट्रीम नए मान जारी करती है, कौन-सा विजेट आपके UI को अपने-आप फिर से बनाता है?

पुनरावलोकन

आपने Streams के साथ काम करना सीखा:

  • उन्हें बनाने के लिए async* / yield और StreamController
  • रूपांतरण के लिए map / where / take
  • प्रतिक्रियाशील UI चलाने के लिए StreamBuilder
  • सदस्यताओं को रद्द करना और त्रुटियाँ संभालना

Streams आपके ऐप को लगातार आने वाले एसिंक्रोनस डेटा पर वास्तविक समय में प्रतिक्रिया करने देती हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Dart सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
22
पाठ
88

अक्सर पूछे जाने वाले प्रश्न

क्या “Streams और प्रतिक्रियाशील डेटा” पाठ निःशुल्क है?

हाँ — Flutter मोबाइल विकास अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Streams और प्रतिक्रियाशील डेटा” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Flutter मोबाइल विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Streams और प्रतिक्रियाशील डेटा” में मैं क्या सीखूँगा?

लाइव अपडेट, सॉकेट और प्रतिक्रियाशील UI जैसे निरंतर अतुल्यकालिक डेटा को संभालने के लिए Flutter में Dart Streams के साथ काम करना सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Flutter मोबाइल विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Flutter मोबाइल विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Flutter मोबाइल विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“Streams और प्रतिक्रियाशील डेटा” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Flutter मोबाइल विकास पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Flutter मोबाइल विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Futures और Async/Await
  2. HTTP अनुरोध और JSON
  3. Async में त्रुटि प्रबंधन
  4. Streams और प्रतिक्रियाशील डेटा
← Flutter मोबाइल विकास पर वापस जाएँ