Neue Schnittstellen
Siri Shortcuts
Mehr als ein Jahr ist es bereits her, seit Apple die App Workflow für eine
unbekannte Summe gekauft hat. Die
App ist eine Art Baukasten, mit welcher sich verschiedene Aktionen in einen einzelnen „Workflow“ bündeln
lassen. So lässt sich beispielsweise eine „Ich verspäte mich“ Nachricht generieren, die an alle Teilnehmer
des aktuellen Kalendereintrags verschickt wird. Gleichzeitig wird in der Karten App die Navigation zum Ziel
gestartet.
Seitdem Apple die App im März 2018 akquiriert hatte, war es jedoch ruhig um Workflow geworden. Mit iOS 12
wird sich dies nun ändern – aus Workflow wird Siri Shortcuts. Während die Grundfunktionalität erhalten
bleibt, sind gerade die neuen Möglichkeiten mit Siri besonders interessant. Den erstellten Workflows lassen
sich nun etwa Siri Kommandos zuweisen. Außerdem können Entwickler mit Hilfe von sogenannten „Custom
Intents“, die als INObjects
in SiriKit zu finden sind, Shortcuts für ihre eigene App definieren.
Eine App, in welcher sich Tickets für Bus oder Bahn kaufen lassen, könnte beispielsweise einen Shortcut
„Kaufe ein Ticket von meinem Standort nach zu Hause“ definieren, welcher den kompletten Kauf eines Tickets
abwickeln könnte, ohne die App dabei öffnen zu müssen. Die Voraussetzung hierfür, wäre jedoch, dass der App
das Zuhause des Nutzers bekannt ist. Entwickler können in ihrer App zusätzlich den neuen
INUIAddVoiceShortcutViewController
integrieren. Dieser bietet ein User Interface, welches die Vergabe
eigener Kommandos für einen bestimmten Shortcut ermöglicht. So könnte der Nutzer den Shortcut in „Bereite
meinen Heimweg vor“ umbenennen. Alleine dieses Kommando an Siri würde in diesem Szenario ausreichen, um den
Ticketkauf abzuschließen.
An diesem Beispiel lässt sich allerdings auch veranschaulichen, wo Siri Shortcuts noch limitiert sind. Völlig
dynamische Kommandos sind nämlich zum
jetzigen Zeitpunkt nicht möglich. Für „Kaufe ein Ticket von meinem
Standort zur Schillerstraße“ müsste ein weiterer Shortcut angelegt werden und für jede weitere Straße
ebenfalls. Nichtsdestotrotz bieten Siri Shortcuts unheimlich viele Möglichkeiten und es wird interessant zu
beobachten sein, wie Entwickler dieses neue Feature in ihre Apps integrieren.
Augmented Reality
Ein großer Fokus von iOS 12 liegt auf Augmented Reality. ARKit 2.0 bringt neue Multiplayer-Funktionen, durch
welche es möglich sein wird, von mehreren Geräten die gleiche AR Session zu betrachten und in dieser zu
interagieren. Dadurch sind gänzlich neue Arten von Spielen denkbar.
Mit dem neuen Dateiformat USDZ können zudem 3D-Modelle exportiert und importiert werden und auf iOS 12
Geräten in AR angezeigt werden. Darüber hinaus wurde ARKit mit Schnittstellen erweitert, um
Objekte der
realen Welt zu scannen und zu identifizieren.
Besonders interessant ist die Möglichkeit des Eye Trackings, durch das sich die Bewegungen der Augen in
Echtzeit verfolgen lassen.
Machine Learning
Auch CoreML, Apples Machine Learning Framework, kommt mit iOS 12 in der zweiten Version. Apple verspricht
hier neben einigen Neuerungen vor allem eine deutlich verbesserte Performance.
Das neue Natural Language Framework ermöglicht es Entwicklern, Text innerhalb der App mittels Machine
Learning zu analysieren. Mit Hilfe eines NLLanguageRecognizers
lässt sich die dominante Sprache innerhalb
eines Strings bestimmen. Die Spracherkennung könnte genutzt werden, um automatisch die Übersetzung des
Textes anzuzeigen, sofern es sich nicht um die Gerätesprache des Nutzers handelt.
Mit dem Natural Language Framework sind aber auch Analysen über Texte möglich, um einfache Statistiken zu
generieren, wie die Anzahl der Wörter oder Sätze. Die NLTagger Klasse bietet außerdem die Möglichkeit, in
einem String „Tags“ verschiedener Typen zu identifizieren. Dabei können zum Beispiel Namen, Orte oder
Organisationsnamen in einem String bestimmt werden.
Während CoreML auf iOS Geräten weiterhin nicht genutzt werden kann, um Machine Learning Models zu erstellen,
bietet das neue Create ML Framework für macOS Mojave genau diese Möglichkeiten.
In einer eigenen WWDC-Session wurden die
Möglichkeiten von Create ML ausführlich gezeigt. Mit dem Framework
können Machine Learning Models beispielsweise darauf trainiert werden, Bilder zu klassifizieren. Erstellt
man über einen Xcode Playground einen MLImageClassifierBuilder,
können Bilder zur Klassifizierung wahlweise
per Drag and Drop oder programmatisch in den Playground eingefügt werden. In Apples Session wird gezeigt,
wie das Machine Learning Model mit Bildern von Früchten trainiert wird. Nachdem es mit ausreichend Bildern
gespeist wurde, wird es in eine iOS-App eingefügt, um dort Früchte auf Bildern zu erkennen und zu
benennen.
Abbildung 2: Ausschnitt aus der WWDC-Session „Introducing Create ML“
Neben der Bilderkennung lässt sich mit Create ML außerdem die Bedeutung von Text sowie das Verhältnis von
numerischen Werten trainieren.
Sonstige Neuerungen
Mit dem neuen Network Framework können
Netzwerkverbindungen aufgebaut werden, um direkten Zugriff auf
Protokolle wie TLS, TCP und UDP zu erhalten. Für HTTP Aufrufe sollte jedoch weiterhin URLSession verwendet
werden.
Für das UIKit gibt es in diesem Jahr nur einige wenige Neuerungen. Mit UITextInputPasswordRules
Klassen
können nun die unternehmensspezifischen Passwort-Regeln definiert werden, die von iOS berücksichtigt werden,
wenn innerhalb einer App ein Passwort vorgeschlagen wird. Indem die Passwörter generiert und gleichzeitig
Regeln, die durch das Backend vorgegeben sind, berücksichtigt werden, wird der Schutz vor Missbrauch
deutlich verstärkt. Dazu muss lediglich eine UITextInputPasswordRules Instanz auf einem UITextField gesetzt
werden. Um Passwortvorschläge auf einer UITextField Instanz zu erhalten, muss außerdem als textContentType
.newPassword gesetzt sein.
UITextField bietet darüber hinaus einen gänzlich neuen textContentType oneTimeCode.
Setzt man diesen
Parameter, werden eingehende SMS auf Codes für Zweifaktor-Authentifizierung gescannt und direkt in das
Textfeld eingefügt.
Mit dem neuen überarbeiteten Notification System in iOS 12 ergeben sich auch neue Möglichkeiten für
Entwickler, um eine Gruppierung von Notifications vorzunehmen.
Deprecations
Seit der Einführung von WebKit mit iOS 8 rät Apple Entwicklern, die WKWebView zu verwenden, um Webseiten
innerhalb einer App anzuzeigen. Die alte UIWebView wird von vielen Entwicklern jedoch bis heute benutzt. Mit
iOS 12 wird die UIWebView nun jedoch deprecated. Bereits mit iOS 13 könnte Apple diese komplett aus UIKit
entfernen, weshalb Entwickler in ihren Apps spätestens jetzt auf die WKWebView umsteigen sollten.
Während sich der Aufwand hier vermutlich in Grenzen hält, gilt dies nicht für OpenGL. Apple möchte, dass
Spiele und sonstige grafische Aufbereitungen ab sofort mit dem hauseigenen Framework Metal entwickelt
werden. OpenGL wird mit iOS 12 zwar weiterhin funktionieren, wurde allerdings ebenfalls als deprecated
markiert, weshalb Entwickler zeitnah von OpenGL auf Metal umstellen sollten.
Weitere Änderungen
Das neue iOS 12 bringt auch überarbeitete App Store Guidelines mit sich. Zukünftig wird es für Apps, die sich
nicht über ein Abomodell finanzieren, möglich sein, die kostenpflichtige App über einen begrenzten Zeitraum
kostenlos testen zu lassen. Dies soll über einen kostenlosen In-App-Kauf geschehen.
Eine weitere Neuerung betrifft die Beschreibung von App Updates. Der Update Text muss ab iOS 12 klar
erläutern, welche neuen Features in die App integriert wurden. Generische Update Beschreibungen werden nur
noch akzeptiert, wenn sie Bugfixes, Sicherheitsupdates oder Performance Verbesserungen betreffen. Apple geht
mit diesem Schritt gegen die Entwicklung der letzten Monate vor, in der jedes Update mit dem gleichen
Beschreibungstext versehen wurde.
Apple vereinfacht mit iOS 12 das App Beta Testing. Testnutzer müssen mit dem neuen Feature „TestFlight Public
Link“ nicht mehr manuell eingeladen werden. Stattdessen wird es möglich sein, Nutzer über eine URL zu Test
Flight einzuladen. Dadurch können auch große Gruppen schnell und einfach organisiert werden. Mit TestFlight
Public Link ist es sogar möglich, bis zu 10.000 Tester zu einer App einzuladen. Für Entwickler soll es
darüber hinaus möglich sein, Gruppen von Testern zu erstellen und bestimmte Builds einzelnen Gruppen zur
Verfügung zu stellen.
Entwickler von Apps, die In-App-Käufe ermöglichen, wird besonders folgende Neuerung freuen: Mit iOS 12 ist es
möglich, sich in einen Sandbox App
Store Account einzuloggen, welcher nur für Anfragen gegen die App Store
Testumgebung verwendet wird. Es ist zukünftig also nicht mehr notwendig, sich manuell aus- und einzuloggen,
um In-App-Käufe zu testen.