Softwareentwicklung: In Swift bestehende Anwendungen parallelisieren

Swift stellt Funktionen und APIs bereit, um Swift Concurrency in bestehenden Projekten einzuführen. Mit Refactoring gelingt das auch als schrittweise Migration.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
,
Lesezeit: 11 Min.
Von
  • Thomas Sillmann
Inhaltsverzeichnis

Eine der größten Hürden für den Einsatz von Swift Concurrency stellen Funktionen mit Completion Handlers dar. Das gilt insbesondere, wenn diese Funktionen Teil eines Frameworks sind, bei dem sich nicht auf den Quellcode zugreifen lässt (wie in den Apple-Frameworks). In solchen Fällen kann man mit den bisher bekannten Mitteln keinen Aufruf über async und await realisieren.

Mehr zum Thema Mobile Softwareentwicklung

Das Problem beim Einsatz eines Completion Handler rührt daher, dass die zugehörige Funktion bereits verlassen werden kann, ehe die asynchron ablaufenden Befehle abgeschlossen sind und letztlich zum Aufruf des Completion Handler führen. Es fehlt der sequenzielle Ansatz, wie er in Swift Concurrency zum Einsatz kommt und der den Programmablauf mit einer aufeinander aufbauenden Abfolge von Befehlen umsetzt.

Dieser Artikel ist ein Teil eines Tutorials. In zwei Teilen erklären wir, wie Swift Concurrency funktioniert, und stellen die wichtigsten Mechanismen wie Tasks, Structured und Unstructured Concurrency sowie Actors vor.