Kleiner, schneller, sparsamer

Neue Datenübertragung mit iOS/iPadOS 13

25.06.2019
Von   
Mark Zimmermann leitet hauptberuflich das Center of Excellence (CoE mobile) zur mobilen Lösungsentwicklung bei der EnBW Energie Baden-Württemberg AG in Karlsruhe. Er weist mehrere Jahre Erfahrung in den Bereichen Mobile Sicherheit, Mobile Lösungserstellung, Digitalisierung und Wearables auf. Der Autor versteht es, seine Themen aus unterschiedlichsten Blickwinkeln für unternehmensspezifische Herausforderungen darzustellen. Neben seiner hauptberuflichen Tätigkeiten ist er Autor zahlreicher Artikel in Fachmagazinen.
Apple hat bei iOS /iPadOS 13 auch unter der Haube an vielen Stellschrauben gedreht, um seine Geräte schneller und agiler zu machen. Hier ein paar Funktionen und Erklärungsversuche.

Einige Ankündigungen auf der WWDC 2019 waren selbst für eingefleischte Apple-Jünger nur schwer zu glauben: So versprach Apple etwa, dass sich Face-ID Geräte dank iOS 13 nun 30 Prozent schneller entsperren und Apps zwei Mal schneller starten lassen als bisher. Außerdem soll der Apple Pencil seine Latenz von 20 auf 9 Millisekunden reduzieren und die zu übertragende Dateigröße von Downloads um die Hälfte schrumpfen, bei Updates sogar um 60 Prozent.

Unglaublich, aber (vermutlich) wahr: Apple verspricht, dass sich Face-ID Geräte dank iOS 13 nun 30 Prozent schneller entsperren lassen als bisher.
Unglaublich, aber (vermutlich) wahr: Apple verspricht, dass sich Face-ID Geräte dank iOS 13 nun 30 Prozent schneller entsperren lassen als bisher.
Foto: Apple

Datenmengen werden kleiner

Funktionen wie etwa die Reduzierung des Download-Volumens sind allerdings keine Magie, sondern lassen sich mit Techniken wie App Thinning, Bitcode und On Demand Resources begründen. Sie müssen sich diese wie folgt vorstellen:

Der App-Entwickler lädt alle seine Bilder, Programmcodes und -Komponenten zu Apple in den AppStore. Dieser verteilt bei einem Download oder Update aber nicht alles an die Endgeräte - da nicht jedes Gerät alle Daten braucht. Lädt ein Entwickler beispielsweise eine App in den AppStore, welche mit Swift 5 geschrieben ist, erhält ein iOS-11-Gerät diese App mit der entsprechenden Swift-Runtime-Bibliothek. Ein Gerät mit iOS 12.2 (oder höher) hingegen braucht diese nicht. Der AppStore entfernt vor einem möglichen Download die nicht benötigten Swift-Libraries mittels App Thinning.

Dank der Bitcode-Möglichkeiten erhält außerdem jedes Gerät einen für dieses optimierten und speziell ausführbaren Code. Prozessorarchitektur (32Bit/64Bit) und Bildschirmauflösung (iPhone, iPad) sind nur ein Teil der Komponenten, die hierzu individuell bereitgestellt werden. Dank "On Demand Ressources" können sogar App-Assets bei Bedarf aus dem AppStore nachgeladen werden, nachdem die App bereits auf dem Gerät installiert wurde.

Apple scheint diese Techniken nun weiter verfeinert zu haben, um die neuen geringeren Download-Zeiten zu ermöglichen.

Geräte werden schneller

Abgesehen vom schnelleren Download soll auch das Starten von Apps optimiert worden sein. Hier dürften Dinge wie eine Optimierung des Prebinding oder gar der Objective-C-Runtime eine Rolle spielen.

Prebinding beschreibt eine Technik, bei der die Informationen, welche Bibliothekssymbole (also Funktionen) eine App zum Ausführen benötigt, in einer Datenbank abgelegt werden. Diese Datenbank hilft im Anschluss dabei, die Startzeiten zu optimieren. Gerade beim erstmaligen Start einer App müssen jedoch die Prebind-Informationen aktualisiert/eingetragen werden, was die Ladezeit eigentlich verlängern sollte. Auch wenn Prebinding schon länger genutzt wird, scheint Apple hier weitere Verbesserungen vorgenommen zu haben, um das zu umgehen.

Wenn Sie eine App aus dem App Store herunterladen, injiziert Apple einen speziellen 4.196 Byte langen Header in die (signierte) Binärdatei, die mit dem öffentlichen Schlüssel Ihres iTunes-Kontos verschlüsselt ist. Dieses Public-Private-Key-Paar wird beim initialen Erstellen Ihres AppStore-Kontos generiert und auf Ihr iOS-Gerät übertragen. Dies ist Teil von Apples FairPlay DRM und stellt einen kryptographischen Schutz für iOS-Apps dar.

Während der Installation versucht Ihr iOS-Gerät, genau diesen Header mit Ihrem Schlüssel zu entschlüsseln. Ist es erfolgreich, können Sie die App ausführen. Schlägt dies fehl, können Sie die App auf dem Gerät nicht starten. Laut dem Interview "Live from WWDC 2019 with Craig Federighi and Greg Joswiak" im Podcast "The Talk Show" konnte Apple speziell bei dieser DRM-Prüfung einige weitere Verbesserungsmöglichkeiten identifizieren, um diesen Vorgang zu beschleunigen.

Niedrigere Latenz dank Machine Learning

Im Interview gab es aber noch weitere spannende Einblicke. So wurde unter anderem in Ansätzen erklärt, wie Apple die Verzögerungszeit des Pencil weiter reduzieren konnte. Vereinfacht ausgedrückt, arbeitet das iPad-Betriebssystem während einer Stifteingabe mit "Prognosen". Es versucht also zu ermitteln, wohin der Apple Pencil sich als nächstes bewegen wird. Im Anschluss folgt das System der vorgeschlagenen Richtung und korrigiert diese gegebenenfalls tatsächlich eingetretene Bewegung.

Weil die Company inzwischen viel Erfahrung beim Stellen dieser Prognosen gesammelt hat, wirkt der Apple Pencil in seiner Eingabe flüssig - vorausgesetzt, die jeweiligen App-Entwickler nutzen die zugehörige APIs von Apple korrekt. So hat Apple unter anderem die Erkenntnis gewonnen, dass sich eine "flüssige" Stiftbewegung immer in einem bestimmten Rahmen abspielt. Eine 180-Grad-Wendung etwa kommt in den seltensten Fällen, gerade mit Blick auf die Bewegungsgeschwindigkeit, vor. Dies fließt in das Machine Learning Modell ein, das Apple nun in iPadOS 13 verbessert haben soll.

Datenkommunikationen passen sich an

Mit iOS 13 führt Apple außerdem den "Low Data Mode" ein. Dieser bietet dem Anwender eine Möglichkeit, dem System mitzuteilen, dass dieses sehr sparsam mit den zu übertragenen Daten umgehen soll. Der Modus ist für WLAN wie auch Mobilfunk definierbar. Gerade in Situationen, in denen ein schwaches WLAN-Signal oder eine (fast) gedrosselte Handy-Flat den Datenverkehr ausbremst, soll diese Funktion helfen.

Aktiviert der Anwender dieses Feature, reduziert iOS 13 seine eigenen Netzwerkzugriffe auf das Nötigste und alle Hintergrundaktivitäten von Drittanbieter-Apps werden deaktiviert. Das Ganze funktioniert aber nur, wenn die Entwickler ihre Apps entsprechend angepasst haben.

Die Funktion WiFi Assist (WLAN-Unterstützung) wurde ebenfalls überarbeitet. Ursprünglich wurde diese Funktion implementiert, um bei dem Verbindungsaufbau einer App zu unterstützen. Befand sich der Anwender zum Zeitpunkt des Kommunikationsaufbaus in einem Bereich, der keine ausreichende WLAN-Versorgung sicherstellte, wurde die Verbindung über GSM aufgebaut. Leider war diese Funktion nur zu diesem Zeitpunkt aktiv. Eine Unterstützung während des Datenverkehrs war nicht enthalten. Mit iOS 13 ändert sich dies. Die WiFi Assist Funktion wird nun stetig über die iOS-Frameworks URLSession und Network.framework mit Statusdaten versorgt. Bricht eine Verbindungsart ab, kann diese nun über eine andere Netzwerkverbindung wieder hergestellt werden.

Entwickler freuen sich übrigens über viele weitere Netzwerk-Funktionalitäten wie die Unterstützung von Bonjour, die mit iOS 13 umgesetzt werden. (mb)