iOS Apps für macOS

Auf der WWDC 2018 hat Apple vorgestellt, wie iOS Apps einfacher als bisher auf den Mac portiert werden können. An vier Apple Apps ist das auch schon live zu sehen: Stocks, News, Home und Voice Memos. Hier sollen nur sehr wenige Code-Änderungen nötig gewesen sein. Nach internem Test werden 2019 alle Entwickler die entsprechenden Werkzeuge nutzen können.

UIKit für macOS

Apple hat einige Frameworks, auf die iOS Apps normalerweise aufsetzen, auf macOS portiert und sie an typisches Mac Verhalten angepaßt, zum Beispiel in den Bereichen:

Da sich die beiden Systeme hauptsächlich in den GUI Frameworks unterscheiden und ansonsten sehr viele grundlegende Frameworks gemeinsam haben (siehe dazu auch: Sind Mac OS X und iOS unterschiedliche Betriebssysteme?), bestand die Arbeit im Wesentlichen darin, das iOS UIKit (iOS Apps) neben AppKit (macOS Apps), WebKit (Web Apps) und Metal (Spiele) auf dem Mac verfügbar zu machen als einen weiteren zusätzlichen Weg, Apps für den Mac zu erstellen. AppKit bleibt das primäre, native Framework, das das volle Potential des Macs nutzen kann. Das betont Apple ausdrücklich in Platforms State of the Union, Minute 26. Dieser neue Weg ist für iOS-Entwickler gedacht, die einen einfachen Weg suchen, ihre Programme auch auf den Mac zu bringen.

Die Mac-Version einer UIKit-App wird von denselben Sourcen gebaut wie die iOS-Version. Es ist keine systemübergreifende identische App, sondern jeweils eine andere App pro System. Daher schreibe ich auch "iOS Apps für macOS" und nicht "iOS Apps auf macOS". Zur Laufzeit so einer UIKit-basierten App auf macOS werden die Maus-Events auf UI-Events (für UIKit) abgebildet.

Natürlich ist nicht jede App sinnvoll portierbar. Fitness-Apps z. B. brauchen bestimmte Sensoren, die es im Mac nicht gibt.

Einordnung

Ich finde diesen Weg im Gegensatz zu den Varianten aus der Gerüchteküche gut. Er ist wirklich minimalinvasiv aus Entwicklersicht. Keine neuen APIs, keine neuen Schichten, keine zusätzliche Abstraktionsebenen.

Was habe ich nicht alles an haarsträubenden Theorien zuvor ertragen müssen von deklarativer Programmierung vergleichbar mit HTML bis zu drübergestülpten Frameworks, die UIKit und AppKit abkapseln würden.

Mehr als dankbar bin ich auch für Apples klare Absage an vertikale Touch GUIs bei MacBooks und Macs. Das würde den ausgestreckten Arm ermüden und eine auf Mausbedienung optimierte GUI unmöglich machen, weil bei Touch die Trefferfläche größer sein und die wackelige Bediensituation beachtet werden muß.

Touch-Pad und -Bar ergänzen, weil sie horizontal sind, die klassische Bedienung mit Tastatur und Maus hingegen nahtlos und sinnvoll.

Valid XHTML 1.0!

Besucherzähler


Latest Update: 07. June 2018 at 10:33h (german time)
Link: macmark.de/blog/osx_blog_2018-06-a.php