4.6. Concepts avancés de Dart : flux et blocs

Página 44

Les flux et les blocs sont des concepts Dart avancés qui vous permettent de manipuler des données de manière asynchrone et réactive, respectivement. Ces concepts sont fondamentaux pour créer des applications complexes et efficaces, et sont largement utilisés dans Flutter.

Flux

Dans Dart, un Stream est une séquence d'événements asynchrones. Il peut émettre zéro ou plusieurs événements de données, ainsi qu'un événement d'erreur ou d'achèvement. Les événements de données sont émis séquentiellement et peuvent être consommés par un écouteur, qui est une fonction qui traite les événements au fur et à mesure qu'ils se produisent.

Un flux peut être créé de plusieurs manières. Le moyen le plus simple consiste à utiliser la fonction Stream.fromIterable, qui crée un Stream à partir d'une collection itérable. Par exemple :

nombres var = [1, 2, 3, 4, 5] ; var stream = Stream.fromIterable(nombres); stream.listen((numéro) { imprimer(numéro); });

Ce code crée un Stream qui génère les nombres 1 à 5, un à la fois. La fonction d'écoute est utilisée pour enregistrer un auditeur qui imprime chaque numéro au fur et à mesure de son émission.

Des flux peuvent également être créés à partir de sources de données asynchrones, telles que des fichiers ou des connexions réseau. Par exemple, la classe File sur Dart possède une méthode openRead qui renvoie un Stream d'octets. Cette méthode peut être utilisée pour lire un fichier de manière asynchrone, comme dans cet exemple :

var fichier = Fichier('fichier.txt'); var stream = fichier.openRead(); stream.écouter((date) { print(String.fromCharCodes(données)); });

Ce code lit un fichier appelé « file.txt » et imprime son contenu sous forme de texte. Le Stream émet des événements de données au fur et à mesure que les octets sont lus dans le fichier, et l'écouteur les convertit en texte et les imprime.

Blocs

Dans Flutter, le modèle Bloc (Business Logic Component) est utilisé pour séparer la logique métier de l'interface utilisateur. Un Bloc est une classe qui expose un flux d'états et accepte des événements. La logique métier est implémentée sous la forme d'une fonction qui mappe les événements aux états.

Par exemple, considérons une application de liste de tâches. L'interface utilisateur peut émettre des événements tels que « ajouter une tâche » ou « supprimer une tâche », et l'état de l'application peut être la liste actuelle des tâches. Un Bloc pour cette application peut être implémenté comme suit :

classe TodoBloc { final _stateController = StreamController>(); final _eventController = StreamController(); Stream> get stateStream => _stateController.stream; Sink get eventSink => _eventController.sink; ToutBloc() { _eventController.stream.listen(_mapEventToState); } void _mapEventToState (événement événement) { // implémente la logique métier ici } void dispose() { _stateController.close(); _eventController.close(); } }

Ce code définit un bloc qui a un flux d'états et un récepteur d'événements. Sink est une interface qui vous permet d'ajouter des événements au Stream. La méthode _mapEventToState est appelée pour chaque événement et est responsable de la mise à jour de l'état en fonction de l'événement.

En résumé, les Streams et les Blocs sont des concepts Dart puissants qui permettent de créer des applications réactives et efficaces. Les flux vous permettent de manipuler les données de manière asynchrone, tandis que les blocs vous permettent de séparer la logique métier de l'interface utilisateur. Les deux sont fondamentaux pour créer des applications complexes avec Flutter.

Répondez maintenant à l’exercice sur le contenu :

Quelles sont les caractéristiques et les fonctions des Streams et des Blocs dans Dart et Flutter ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

454.7. Concepts avancés de Dart : tests unitaires et d'intégration

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte