Die Keynote zur WWDC 2019 war ein Feuerwerk an Neuheiten, nicht nur – aber besonders für Entwickler. Drei Dinge wollen wir kurz herausgreifen, weil wir denken, dass sie einen enormen Einfluss darauf haben werden, hier man zukünftig moderne Apps programmieren wird. Noch sind nicht alle Details bekannt, dieser Artikel wird im Laufe der WWDC auf den neuesten Stand gebracht.
SwiftUI

Die sicherlich größte Überraschung war die Ankündigung von SwiftUI (Swift User Interface). Dahinter verbirgt sich ein komplett neuer Ansatz, wie Entwickler künftig die Bedienoberfläche von Apps erstellen. SwiftUI wird den alten „Interface Builder“ (Kurz: „IB“) wohl endgültig in den Ruhestand schicken. Man darf nicht vergessen, die erste brauchbare Version des Interface Builders stammt noch aus den 80er Jahren (genauer: 1988), als Steve Jobs noch bei Next arbeitete. Das Tool erlaubte es erstmals, Bedienoberflächen grafisch mit der Maus zusammenzustellen. Seitdem hat Apple den IB immer wieder überarbeitet, erweitert und angepasst. Viele Entwickler sind der Meinung, das der IB überfrachtet ist, zu langsam arbeitet und nicht mehr in die moderne Art der App-Entwicklung passt. Genau das soll SwiftUI nun ändern.
In der WWDC-Demo konnte man sehen, wie der Code einer App in Swift direkt neben einer Art iOS-Simulator steht, doch das ist kein iOS-Simulator, wie Entwickler ihn schon kennen. Ähnlich wie beim IB fügt man grafisch mit der Maus Elemente, wie beispielsweise ein Text-Label zum Interface der iOS-App hinzu, aber gleichzeitig ändert sich auch der Code im Editor. Die nötigen Deklarationen fügt SwiftUI automatisch an der richtigen Stelle ein.
Das ähnelt den bisherigen Playgrounds, geht aber einen entscheidenden Schritt weiter, denn man kann die App nicht nur auf dem Mac simulieren, sondern auch auf ein echtes iOS-Gerät übertragen, Änderungen im Code werden quasi in Echzeit auf dem Gerät sichtbar, ohne dass man die App jedesmal neu vom Mac aus übertragen muss. Das ist ein enormer Fortschritt und dürfte die Entwicklungszeiten von Apps dramatisch verkürzen.
Noch ist offen, wie tief SwiftUI in vorhandene Frameworks eingreift, also ob man damit tatsächlich alle bisherigen Möglichkeiten der iOS-App-Entwicklung ausschöpfen kann. Das wird vermutlich erst im Laufe der WWDC klar. Sicher ist aber schon jetzt: SwiftUI hat gewisse Ähnlichkeiten zu Googles „Flutter“, setzt den Fokus aber auf Swift und die Apple-Betriebssysteme, während man mit Flutter plattformübergreifend (iOS und Android) in der Programmiersprache „Dart“ (sehr ähnlich zu Javascript) entwickelt.
Aus Marzipan wird Catalyst
Unter dem Namen „Marzipan“ war das Geheimprojekt Apples bereits bekannt geworden, und Apple hat es auch für einige seiner eigenen Apps wie Sprachmemos, Aktien und Apple News benutzt. Nun ist es offiziell, bekommt einen neuen Namen und soll allen Entwicklern zugänglich werden: „Project Catalyst“ soll dafür sorgen, dass Entwickler iOS-Apps mit wenig Arbeitsaufwand auf den Mac portieren können. Wer so etwas schon einmal versucht hat, weiß, dass das alles andere als trivial ist, denn unter macOS muss man andere Frameworks verwenden als unter iOS. Was unter macOS beispielsweise „AppKit“ heißt, nennt sich in iOS „UIKit“. Aber nicht nur die Namen der Objekte und Methoden sind anders, oft auch deren Verwendung. Das führt ganz schnell zu Chaos beim Portieren. Catalyst soll nun für Vereinheitlichung sorgen. Wie genau das funktioniert, ist noch offen, auch hier werden erst die Sessions der diesjährigen WWDC zu mehr Erkenntnissen führen.
Reality Kit und Reality Composer
Anschaulicher als SwiftUI und Project Catalyst dürften die neuen Möglichkeiten für Augmented Reality sein. ARKit 3 soll wesentlich weiter gehen und AR-Inhalte auch vor oder hinter Personen anzeigen. People Occlusion nennt sich das eindrucksvolle Feature.

Neu ist auch RealityKit zusammen mit dem Reality Composer. Alte Hasen fühlen sich unwillkürlich an Quicktime 3D erinnert. Auch hier konnte man 3D-Szenen erstellen und in eigenen Programmen nutzen, RealityKit soll aber wesentlich weiter gehen. Man kann eigene USDZ-Dateien (ein Dateiformat für 3D-Inhalte) erstellen oder aus einer Bibliothek nutzen, die Hunderte fertige Objekte bereitstellt. Diese Bibliothek soll die Möglichkeiten der prozeduralen Inhaltsgenerierung nutzen, damit man beispielsweise die Größe, den Stil und andere Parameter der Objekte den eigenen Bedürfnissen anpassen kann.

Mit dem Reality Composer, der in Xcode enthalten ist und mit einer iOS App zusammenarbeitet, lassen sich AR-Erlebnisse auf einem iOS-Gerät erstellen, testen, optimieren und simulieren. Eine Live-Verknüpfung sorgt dafür, dass man schnell zwischen Mac und iOS wechseln kann. Mit der Reality-Composer-App für iOS lassen sich Sensor- und Kameradaten an dem Ort aufzeichnen, an dem die AR-Anwendung stattfinden soll und sie später auf dem iOS-Gerät wiedergeben, während Entwickler die App programmieren. Das dürfte die Entwicklung von AR-Inhalten und vor allem die Verknüpfen dieser mit der entsprechenden App deutlich vereinfachen.