Dark Mode in macOS Mojave: Wie viel Arbeit ist die Anpassung für Entwickler?
Zur Freude vieler kümmerte sich Apple auf der diesjährigen Worldwide Developers Conference
verstärkt um macOS und stellte einen Dark Mode, einige Verbesserungen am Finder und am Desktop, einen neuen Mac App Store und
UIKit für macOS vor.
Ein dunkler Oberflächenmodus wurde hauptsächlich von iOS-Nutzern gefordert - Apple führt diesen aber komischerweise zuerst mit macOS Mojave ein. Schon in den Vorversionen macOS Sierra und High Sierra konnten Entwickler manche Bereiche einer App in einem dunklen Modus betreiben - allerdings funktionierten hier die meisten mitgelieferten Bedienelemente wie Knöpfe, Drehregler und Menüs nur unzureichend. In macOS Mojave hat sich Apple mehr Mühe gegeben: Fast alle Elemente verrichten auch im Dark Mode ohne Probleme ihren Dienst - erstaunlich für die erste Betaversion von macOS 10.14.
Apple-eigene ProgrammeAlle mitgelieferten, Apple-eigenen Programme in macOS Mojave wurden bereits für den Dark Mode angepasst. Sogar iTunes kommt, von einigen Problemen bei Textfarben abgesehen, bereits im dunklen Gewandt daher. Auch die in UIKit entwickelten Programme wie die Aktien-App oder die News-App passen sich automatisch an den Dark Mode an.
Selbstversuch: Dark Mode in MacStammbaumNeben MacTechNews.de unterhält die Synium Software GmbH auch eine Vielzahl von Programmen für macOS und iOS - eines der bekanntesten ist
MacStammbaum. Bei MacStammbaum handelt es sich um eine Ahnenforschungssoftware mit einer Vielzahl an Diagrammen, Bearbeitungsmöglichkeiten und Berichten wie auch einen Cloud-Sync auf iCloud-Basis. Durch die große Menge an Eingabemöglichkeiten und Auswertungen gehört die App zu einer der komplexesten im Mac App Store.
Wird ein Mac-Projekt in Xcode 10 geöffnet, nutzt dies automatisch das Software Development Kit für macOS 10.14 Mojave. Dies impliziert, dass Programme automatisch im dunklen Modus ausgeführt werden, sobald macOS dementsprechend konfiguriert ist. Programme, die noch das macOS-High-Sierra-SDK verwenden, werden im hellen Aqua-Modus ausgeführt - unabhängig davon, ob der Dark Mode in macOS aktiviert ist.
Bestandsaufnahme nach dem ersten StartNach dem ersten Start von MacStammbaum, kompiliert mit Xcode 10, war es Zeit für eine erste Bestandsaufnahme: Positiv fiel sofort auf, dass die Apple-eigenen Bedienelemente ohne jegliches Zutun des Entwicklers auch in Schwarz ihren Dienst verrichten. So waren Fenster, die Toolbar und alle Dialoge mit systemeigenen Bedienelementen ohne Anpassungen lauffähig. Da MacStammbaum, wie fast jedes größere Projekt, aber mit einer Menge eigener Bedienelemente daherkommt, lag noch einiges an Arbeit vor uns.
Erforderliche AnpassungenAlle Elemente in MacStammbaum, in denen wir selbst das Zeichnen übernehmen, malten sich natürlich nach wie vor so, als hätten Fenster einen hellen Hintergrund. Hier mussten wir Ansicht für Ansicht durchgehen und die Farben idealerweise von fest definierten Werten wie "Schwarz" auf dynamische Werte anpassen. Apple liefert hierzu in der Farb-Klasse "NSColor" eine nützliche Hilfe - diese bringt vordefinierte Werte mit, welche sich automatisch der ausgesuchten Betriebssystemfarbgebung anpassen. Zeichnet man einen Text in ein Fenster, teilt man dem System nicht mehr mit, dass der Text schwarz sein soll, sondern weist die Farbe "labelColor" zu. Diese steht für Schwarz, wenn das System im hellen Modus läuft oder für Weis im Dark Mode.
Größere Anpassungen erforderten der Interaktive Baum (3D-Ansicht auf Basis von Apple SceneKit), der Bearbeiten-Modus mit vielen eigenen Bedienelementen wie auch die Diagramme. Diese Bereiche bringen eine besonders große Anzahl an MacStammbaum-eigenen Elementen mit, die mit viel Aufwand umgestellt werden mussten.
Fazit und ErgebnisNach etwa 9 Tagen Arbeit ist die Adaption von MacStammbaum so weit vorangeschritten, dass nur noch wenige Details fehlen - Apple hat mit macOS Mojave gute Arbeit geleistet, es den Entwicklern so einfach wie möglich zu machen, ihre Programme anzupassen. Je mehr systemeigene Bedienelemente genutzt werden, desto weniger Arbeit hat der Entwickler bei der Umstellung. Kleinere, aber gut strukturierte Projekte lassen sich in Stunden bis wenigen Tagen an den neuen Look anpassen. Kompliziert wird es, wenn fast alle Bedienelemente einer App selbst geschrieben sind oder gar auf Dritthersteller-Bibliotheken für Benutzeroberflächen gesetzt wird, die noch nicht aktualisiert sind.