Flüssigere Animationen in iOS 12: Was Apple verbessert hat
Als Apple iOS 12 ankündigte, überraschte der Konzern mit der unterstützten Hardware: iOS 12 läuft auf allen Geräten, die derzeitig iOS 11 unterstützten - also selbst noch auf dem nun 5 Jahre alten iPhone 5s. Apple ging sogar noch einen Schritt weiter: Besonders auf älteren Geräten steigerte Apple die insgesamte Performance von iOS 12 merklich.
An dieser Stelle gebührt Apple ein großes Lob: Während andere (Smartphone-)Hersteller nach dem Verkauf der Geräte wenn überhaupt nur zögerlich und mit großem zeitlichen Versatz Aktualisierungen anbieten (selbst bei sicherheitsrelevanten Updates!), liefert Apple für ein fünf Jahre altes Gerät noch maßgebliche Geschwindigkeitsverbesserungen, in die Apple mit Sicherheit einiges an Arbeit gesteckt hat. Auf der diesjährigen WWDC-Session betreffend Neuerungen in Cocoa Touch erklärte Apple, wie man die schnelleren und flüssigeren Animationen erreichte:
Schnellere Hochtaktung des ProzessorsSchon mit iOS 10 führte Apple Programmierschnittstellen ein, über die Entwickler Daten bereits in den Speicher laden konnten, bevor diese wirklich auf dem Bildschirm dargestellt werden. Damit wollte Apple erreichen, dass zu dem Zeitpunkt der Darstellung schon alle Daten im Speicher vorhanden sind und nicht erst noch errechnet oder aus einer Datenbank geladen werden müssen.
Leider führte dies aber nicht in allen Fällen zum Erfolg: Schnelles Scrollen in Listen resultierte immer noch in merklichen Rucklern. Nach langem Suchen identifizierte Apple das Problem: Bei Geräten, die besonders energieeffizient arbeiten müssen, ist es außerordentlich wichtig, die Taktrate des Prozessors in Phasen geringer Last so gering wie möglich zu halten. Sind gerade keine rechenintensiven Aufgaben vorhanden, legt sich der Prozessor, umgangssprachlich gesagt, schlafen und verbraucht kaum Energie. Apple fand heraus, dass die Hochtaktung des Prozessors zu zaghaft geschah - scrollte der Nutzer schnell durch eine Liste und es mussten neue Bestandteile geladen und dargestellt werden (eine rechenintensive Aufgabe), dauerte es recht lange, bis iOS die Taktrate des Prozessors genügend steigerte.
Mit iOS 12 soll der Prozessor unter Last nun erheblich schneller die Taktrate steigern - sich nach Abarbeitung der Aufgabe aber auch möglichst schnell wieder "schlafen legen".
Auto-Layout weiterer FlaschenhalsVor einigen Jahren führte Apple Auto-Layout ein: Damit kann der Entwickler ohne Programmiercode erreichen, dass sich Textfelder, Knöpfe, Listen und andere Oberflächenelemente durch Definition bestimmter Regeln am zur Verfügung stehenden Platz ausrichten.
Bei der Untersuchung stellte Apple fest, dass bei komplizierten Hierarchien von Oberflächenelementen der Arbeitsaufwand fast exponenziell mit der Anzahl der Elemente stieg. Durch Optimierungen des Auto-Layout-Algorithmus erreichte es Apple, dass der Prozessor beim Ausrichten von Elementen deutlich weniger beansprucht wird, als noch in iOS 10 oder 11.