La sortie de Swift 6 avec Swift Concurrency se rapproche

Florent Morin |

Il y a 3 ans, Apple nous présentait Swift Concurrency, une évolution forte de Swift 5 qui annonçait le début d’un long chemin vers Swift 6. En parallèle, le langage s’est doucement, mais sûrement ouvert à d’autres plateformes, notamment embarquées. Et nous y sommes aujourd’hui : toute les conditions sont désormais réunies afin de passer à une nouvelle version majeure du langage.

Swift Concurrency : gestion optimale des tâches parallèles

Nous en avions déjà parlé à sa sortie : Swift Concurrency améliore l’efficacité des tâches exécutées en parallèle. Cela passe d’abord par une meilleure orchestration au niveau du code de ces tâches qui avanceront en parallèle.

Imaginons une application qui permet de télécharger des images afin de les afficher à l’écran. Lorsque l’utilisateur appuie sur un bouton « Télécharger », plusieurs actions vont être enclenchées en parallèle. Une tâche va se charger de récupérer l’image, mais une autre va afficher un indicateur de chargement. Cela donne une réponse immédiate à l’utilisateur et évite de bloquer l’app pendant le chargement.

Vision (pro) schématique du procédé.

Sur le plan technique, l’action de l’utilisateur sur l’interface est placée dans le fil d’action qui a la plus haute priorité, nommé « Main Actor ». En parallèle, la tâche de gestion d’accès aux données va réaliser plusieurs opérations successives : elle va d’abord vérifier si l’image demandée existe déjà sur le stockage local. À défaut, elle ira la télécharger sur le web, via une autre tâche. Sans entrer dans les détails trop techniques, on peut utiliser les « acteurs » pour faire en sorte qu’un téléchargement ne soit initié qu’une seule fois et que son résultat soit retourné aux différents appelants.

avatar Mac1978 | 

Merci pour l'article très intéressant.

avatar Link1993 | 

Fichtre, moi qui commence a decouvrir le C++ en codant pour un ESP32... Ca ne m'aurait déplu de passer directement en swift ! :)
Bon, les librairies, je suppose, serait resté en C++...

avatar fleeBubl | 

Du moment qu’il restera possible de coder en Pingouin …

avatar Lucas | 

Merci pour la vulgarisation !

CONNEXION UTILISATEUR