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.