WWDC 2018 Rückschau: Xcode Playgrounds

Jedes Jahr ist die Worldwide Developers Conference (WWDC) von Apple wie ein zweites Weihnachten für iOS-Entwickler. Wir werden mit neuen Betriebssystemen für alle Plattformen, neuen Versionen der Entwicklertools und neuen Libraries beschenkt, die direkt im Anschluss zur Erforschung bereit stehen. Dazu gibt es noch eine Woche voller Sessions, in denen sowohl Anfänger als auch Experten spannendes über die Neuerungen präsentiert bekommen.

Die breite Öffentlichkeit kennt jedoch größtenteils nur die "Session 101", die besser als Keynote bekannt ist. Dort werden die neuen Betriebssysteme von Apple's CEO Tim Cook und einigen Vice Presidents der Firma persönlich vorgestellt. Eine solche Veranstaltung zieht natürlich nicht nur das Interesse der Entwickler auf sich und so versammelten sich am 04. Juni um 19 Uhr neben einigen Mitgliedern unseres Mobile Squads und des App Teams der Fiducia auch zwei weitere Apple-Fans der it-economics in der Arena des neuen Office.

WWDC Viewing.jpg

In den darauf folgenden Wochen bis heute haben wir nun einige Zeit damit verbracht, weitere Sessions anzusehen und möchten euch in diesem Artikel eines der Themen vorstellen, das in der Presse kaum zu finden ist, aber dennoch einen guten Einstieg für interessierte Entwickler bietet und erfahrenen iOS-Codern im Alltag hilft: die Weiterentwicklung der Playgrounds in Xcode 10 (Session 402).

Xcode Playgrounds

Playgrounds wurden vor 4 Jahren zusammen mit Xcode 6 vorgestellt und bieten neben App-Projekten eine Möglichkeit mit der Programmiersprache Swift zu spielen. Sie sind in erster Linie ein Spielplatz für Entwickler, auf dem sie sich austoben können, indem sie kleine Codeschnipsel schreiben und ausführen. Da sich ein Playground im Gegensatz zu einer vollständigen App schnell erstellen und ausführen lässt, ist er ein hervorragendes Werkzeug für die Entwicklung kleiner, in sich abgeschlossener Komponenten einer größeren App. Swift-Anfänger haben mit Playgrounds außerdem ein Tool, das es ihnen erlaubt, die Programmiersprache zu erlernen ohne sich bereits Gedanken über den komplexen Aufbau einer App machen zu müssen.

Fortgeschrittene Entwickler verwenden Playgrounds inzwischen sogar zum Prototyping der UI ihrer Apps, da bei der Veränderung kleiner Details wie Animationen nicht jedes mal die gesamte App neu gebaut werden muss, um das Ergebnis der Veränderung zu testen.

Neues Feature: Step by Step Execution

Bildschirmfoto 2018-07-17 um 18.39.07.png

Die Session 402 der diesjährigen Entwickler-Konferenz drehte sich hauptsächlich um eine einzige Änderung in Playgrounds, die es Entwicklern erlaubt, den geschriebenen Code bis zu einer bestimmten Zeile auszuführen, darauf zu reagieren und die Ausführung anschließend mit dem bereits erzeugten Stand fortzuführen. Gerade in Use Cases, deren Ausführung Zufallselemente enthält, ist dieses Feature extrem nützlich. Die Speaker der Session selbst nannten als Beispiele außerdem das Erkunden von APIs in Code und die Bereitstellung eines Tutorial-Playgrounds als Teil einer eigenen Library. Gerade die letzte Idee wird unterstützt durch die Möglichkeit, Markup-Kommentare innerhalb des Playgrounds zu rendern. So kann eine Art "interaktive Readme-Datei" entstehen, die einem potentiellen Nutzer der Library einen Hands-On-Einstieg bietet.

Neu in Swift: CustomPlaygroundDisplayConvertible

Über die reine Entwicklung hinaus bieten Playgrounds eine Art Quick-Look-Feature, das auch grafischen Inhalt von Variablen wie Bilder oder Animationen sichtbar macht. Neu im bereits jetzt verfügbaren Swift 4.1 ist die Möglichkeit, eigene Datentypen im Playground grafisch darzustellen.

Demonstration

Bildschirmfoto 2018-07-01 um 21.46.20.png

Für Interessierte haben wir einen kleinen Playground in Xcode 10 gebaut, der eine simple Tabellen-Berechnung für die Gruppenphase der Fußball-Weltmeisterschaft beinhaltet. Dieser soll zeigen, wie schön eine Bedienungsanleitung für eine eigene Library aussehen kann, die die auf der WWDC 2018 vorgestellten Neuerungen voll ausnutzt. Probiert's doch mal aus:

World Cup Playground auf GitHub: https://github.com/bennokress/world-cup-playground