Wir möchten eine App für zahlreiche Plattformen wie iOS, Windows 7 und Windows 8 entwickeln.
Allerdings ist Windows 8 eine wirklich verwirrende Plattform! Wie Sie haben:
- Desktop-Apps
- Desktop (Vollbild-Apps wie Spiele)
- Moderne Apps
Soweit wir das beurteilen können, gibt es außer dem UI-Design eigentlich keinen Unterschied zwischen einer Desktop- und einer modernen App, da Desktop-Apps AUCH auf Touchscreens funktionieren!
Kann jemand erklären, was der eigentliche Unterschied ist? Es scheint, als wären moderne Apps nur Apps, die unter Windows RT und Windows 8 laufen und aus dem Windows Store heruntergeladen werden (obwohl wir auch gesehen haben, dass moderne Apps nur von Websites heruntergeladen werden).
Wir möchten eigentlich Adobe AIR verwenden, um die verschiedenen Plattformen anzusprechen, aber anscheinend unterstützt AIR Windows 8 (Modern) noch nicht. Da AIR jedoch einen Vollbildmodus auf dem Desktop unterstützt, was hindert uns daran, es wie eine moderne App aussehen zu lassen?
Antwort1
Moderne Apps werden mit der WinRT-API erstellt, während Desktop-Software mit der Win32-API erstellt wird.
Die WinRT-API ist ein reduzierter Satz von Funktionen (verhindert z. B. den vollständigen Dateisystemzugriff, bietet eingeschränkte Funktionen zur Interprozesskommunikation, verhindert das Laden von Add-Ons und externen Modulen, gewährt eingeschränkten Hardwarezugriff usw.), der nativ unter Windows 8/8.1 sowohl auf ARM- als auch auf x86-CPUs ausgeführt werden kann und daher sowohl auf Maschinen mit Windows 8.x Pro als auch mit Windows 8.x RT funktioniert – ja, die Benennung kann ziemlich verwirrend sein.
Der springende Punkt bei WinRT ist, dass die Win32-Zugriffs- und Anpassungsebene (und die damit verbundenen Sicherheitsaspekte) nicht immer erforderlich sind. Wenn ich beispielsweise ein Gelegenheitsspiel, einen Facebook-Wrapper oder einen Taschenrechner programmiere, brauche/möchte ich weder den vollständigen Dateisystemzugriff noch die Fähigkeit zur Interaktion mit der Windows-Shell (Kontextmenü, Umgebungsvariablen usw.), die ich beispielsweise für einen Dateimanager benötigen würde. Auch den granularen Zugriff auf die Hardware auf niedriger Ebene, den ich für einen Treiber benötigen würde, und auch nicht die Möglichkeit, externe Plug-ins von Drittanbietern, wie beispielsweise Webbrowser, zu laden.
Es ist Gadgets recht ähnlich, verfügt aber über eine bessere integrierte Sicherheit. Eine echte Sicherheitsbewertung kann/sollte jedoch erst erfolgen, wenn es in der Praxis an Popularität gewonnen hat: Eine stark in einer Sandbox ausgeführte/virtualisierte Umgebung ist aus Sicherheitssicht sicherlich gut, aber es gibt kein Patentrezept für Sicherheit. Denken Sie an all die Sicherheitsprobleme, die Java/JVM und Flash (die von Grund auf als Sandbox-Runtimes entwickelt wurden) in den letzten Jahren hatten. Die Idee ist gut, aber sie muss trotzdem wie jeder andere Teil des Systems gesichert und auf dem neuesten Stand gehalten werden.