Mit Windows 8 und Windows Phone 8 hatte Microsoft die Vision, eine gemeinsame Plattform sowohl für Smartphones, Tablets als auch PCs und Workstations bereitzustellen. Basis dessen war WinRT, die Windows Runtime, mit der Apps für Windows 8 und Windows RT geschrieben wurden. Zu dem Zeitpunkt war mobil allerdings noch Silverlight die Technologie der Wahl. Silverlight war allerdings zu WinRT inkompatibel. Mit Windows 10 kam dann die erste Inkarnation der UWP – Universal Windows Platform. Mit der UWP kamen die UWAs, die Universal Windows Apps, welche einmal geschrieben auf allen Windows 10 basierenden Systemen laufen. Die UWP hatte das Zeug dazu, die bereits etwas in die Jahre gekommene API Win32 zu ersetzen.
Doch wie ist die Universal Windows Platform technisch aufgebaut?
Universal Windows Platform
Die ursprüngliche Universal Windows Platform basiert auf dem gemeinsamen NT Kernel, den sich alle modernen Windows-basierten Systeme teilen. UWPs können sowohl auf APIs aus Win32, als auch WinRT zugreifen und somit Grafikschnittstellen wie DirectX oder Hardwaretreiber ansprechen. Apps für die Universal Platform kann mit mit vielen verschiedenen Sprachen schreiben. So unterstützt Microsoft C++, das hauseigene C#, JavaScript, Visual Basic sowie einige weitere.
UWAs laufen dabei in einer gesicherten Sandbox und müssen jegliche Zugriffe auf das System beim Betriebssystem anfragen. Auch werden sie an einem zentralen Ort im Ganzen installiert, sodass der Deinstallationsvorgang denkbar einfach ist. Aktuell wird der Begriff UWP von Microsoft immer weiter aufgeweicht, sodass mittlerweile auch stinknormale Win32 Applikationen, welche über den Microsoft Store vertrieben werden als UWP bezeichnet werden.
UWP Apps laufen damit unter Windows 10, auf der Xbox One, Windows 10 IoT, Windows Holographic sowie Windows 10 Team (Surface Hub).
Doch welche Analogie gibt es zu dem nun vorgestellten SwiftUI und Catalyst?
SwiftUI ermöglicht selben Code für macOS und iOS / iPadOS
Auf der diesjährigen WWDC hat Apple das Project Marzipan in Project Catalyst umbenannt und damit das Ganze auch für Drittanbieter freigeschaltet. Mit Catalyst wird es möglich sein, für das iPad geschriebene Apps auch unter Apples macOS verfügbar zu machen. SwiftUI bietet dabei ein neues, modernes Framework auf Basis der Programmiersprache Swift, welches das bereits in die Jahre gekommene AppKit ablösen wird.
Im Kern waren die Systeme macOS (damals noch MacOS X) und iOS (damals noch iPhoneOS) bereits seit Anfang an gleich. Steve Jobs hat bei der Präsentation sogar explizit die Gemeinsamkeiten der beiden Systeme herausgearbeitet. Natürlich war das iPhoneOS kein vollwertiges MacOS, denn die Hardware hatte gar nicht die ausreichenden Kapazitäten zur Verfügung. Mittlerweile ist die Hardware jedoch stark genug, um ein gemeinsames Set an Funktionalitäten und APIs zu teilen.
Der Kernel beider Systeme ist der Quelloffene XNU-Kernel, welcher ein Unix-Derivat darstellt. Eine Schicht darüber ist Darwin anzutreffen, welches Quelloffen ist. Der XNU-Kernel vereint sowohl einen Mach-Mikrokernel sowie ein BSD. Über dem Darwin OS ist die Cocoa-Programm-API sowie die Aqua-Oberfläche anzutreffen.
Dementsprechend laufen SwiftUI-Applikationen mit einer Codebasis auf macOS (Macs), iOS (iPhones & iPod Touch), iPadOS (iPad), watchOS (Apple Watch) sowie tvOS (AppleTV).
Fazit
Im Großen und Ganzen ähneln sich beide Ansätze von der Konzeption und dem Endergebnis her sehr. Allerdings hat sich Apple deutlich mehr Zeit gelassen, seine Softwareplattformen anzunähern. Anders als Microsoft bleiben die unterschiedlichen Betriebssysteme eigenständig, was unter anderem aber auch daran liegt, dass sowieso seit Anbeginn sehr viel Code geteilt wurde. Entwickler mussten dennoch vor Project Catalyst für iOS und macOS Apps jeweils zwei vollständige Apps schreiben, ohne viel Code übernehmen zu können.
Microsoft hingegen bietet Entwicklern seit Windows 10 die Möglichkeit, ein Programm oder eine App ein einziges Mal zu schreiben und nahezu mühelos auf alle UWP unterstützenden Plattformen auszuliefern. Dieses Konzept wurde allerdings bisher noch nicht wirklich erfolgreich von vielen Entwicklern angenommen. Sehr viel Software wird immer noch klassische direkt für die Win32 API entwickelt, weswegen diese Apps mittlerweile auch über den Microsoft Store vertrieben werden.
„UWP Apps laufen damit unter Windows 10, auf der Xbox One, Windows 10 IoT, Windows Holographic sowie Windows 10 Team (Surface Hub).“
=> Interessanterweise hat der Autor des Artikels Windows 10 Mobile in der Aufzählung der Windows Plattformen, auf denen UWP-Apps laufen, schlicht vergessen. Was soviel bedeutet, dass ihm das keine Erwähnung wert ist. Korrekterweise müsste W10 Mobile aber aufgeführt werden, egal, wie man dazu steht und ob man schon längst Googles Android „verfallen“ ist.
Windows 10 Mobile ist eine abgekündigte Plattform und wird von aktuellen SDKs nicht mehr berücksichtigt.
*räusper*
https://youtu.be/VnT7pT6zCcA
Dennoch laufen die Apps aufm iPad, iPhone und co. schneller, smoother, als auf Windows 10. Das ist Fakt – Leider.
Ist UWP eigentlich nicht schon gestorben?
https://www.theverge.com/2019/5/30/18645609/microsofts-universal-windows-app-dead-microsoft-store-windows-store
Schon lange vor diesem Theverge-Artikel. Aber bis vor kurzen flogen für solch‘ Ketzertum hier noch die Steine.
So wie es aussieht, ist der App-Ansatz für immer gescheitert. Und ob UWP-Features, die jenseits des Smartphones eigentlich keine Sau wirklich braucht, tatsächlich anderen Formaten und Anwendungstypen zur Verfügung gestellt werden, darf getrost bezweifelt werden. Ist doch nur heiße Luft. Sonst könnte man ein klares Ziel benennen.
Die Entwickler sind schlicht zu faul… Ich mein Microsoft gibt Ihnen fast alle Tools und nimmt Ihnen echt viel Arbeit ab und trotzdem macht keiner irgendwas hochkarätiges. Ich mein wenn alle mal auf den Fluent Design Zug aufspringen würden, dann hätten wir viele wunderschöne Apps. Apple hat wieder mal lieber hinter verschlossenen Türen gearbeitet und ein fertiges Produkt abgeliefert und es sieht von Anfang an gut aus und funktioniert super. Das Problem an der Universal Windows Plattform ist einfach das sie in der Öffentlichkeit weiterentwickelt wurde und alle Fehler berichtet wurden, somit denken alle UWA’s wären totaler Bockmist. Das Gegenteil… Weiterlesen »
Falsch. Die Entwickler sind zu schlau. Für wen sollen sie denn UWP proggen? Für einen erbärmlichen, unwirtschaftliche Restgaufen von dahergelaufen Klugscheißern aus dem völlig kollabierten MS-Ökoversum, welche die Devs zu allem Überdruss auch noch für „zu faul“ halten?
So dumm ist doch kein Dev! Und selbst die Geduldigsten und Gutmütigsten UWP-Devs werden in den nächsten Monaten hinwerfen.
Das wird sich mit. Net 5 ändern. So weit ich lesen konnte soll dann auch mit Mono und dem Core gedanke Java und ObjectivC möglich sein. Ich hoffe dann auch ohne Mac Apple App’s schreiben zu können.. Mal sehen.
Das UWP-Konzept ist eine tolle Sache. Nur ohne eigene mobile Plattform entwickelt sich Windows zur Desktop-Plattform zurück, mit allen nachteiligen Konsequenzen für UWP. Hätte Nadella bedenken sollen. Die kurzsichtigen Aktienkurs-Cloud-Träume werden immer mehr von Amazons Ambitionen getrübt werden.