Skip to content

Building Bridges – Build 2015

Mai 13, 2015

Nach der Build 2015 ist Zeit für ein Resumee. Android und iPhone Apps auf Windows? Microsoft baut bridges? Was bedeutet das für diw Entwicklung für Windows 10 Apps?

Building Bridges

Eine der ganz wichtigen Ankündigungen der Build war dass es jetzt unter diesen Technologien möglich ist Windows 10 apps zu bauen:

  • Android Runtime
  • iOS
  • Klassische Windows Anwendungen (.NET/Win32)
  • Web apps

Das sollte zu viel mehr App auf der Windows Plattform führen. Was sind aber die Einschränkungen?
Mit alle diesen Technologien ist es möglich, viele Features der Windows-Runtime, z. B. Live-Tiles, Notifications und In-App Käufe zu nutzen.  Was unterscheidet diese Bridges?

Android Runtime – Project Astoria

Nur wenige Änderungen am Code sind erforderlich, um Android apps auf Windows 10 laufen zu lassen. Ein Subsystem macht ein Mapping von Android zu Windows apps. Damit kann die Android-IDE noch zur Entwicklung verwendet werden. Diese IDE wird mit Interop-Funktionen und einen Windows Phone-Emulator erweitert. Aus der Android App wird ein Windows App Package, und damit die App in den Windows Store übernommen werden. Mit Hilfe des Subsystems werden Android-Plattform-Funktionen auf Funktionen der Windows-Plattform umgeleitet. Zugriff auf das Dateisystem, Kontakte, Sensoren, Kamera, Networking, ALM und vieles mehr wird direkt zugeordnet. Es gibt aber auch Windows-Features wie Live-Tiles. Hierzu muss die App erweitert werden. Natürlich wird nicht alles von der Android-API unterstützt. Die Android-Plattform ist bereits stark fragmentiert. Mit dieser Bridge wird die zusätzliche Hürde für Android-Entwickler nur minimal größer, damit aber gleich die Möglichkeit geboten mit der gleichen Applikationsbasis eine weitere Plattform zu gewinnen.

iOS – Project Islandwood

Mit iOS ist die Bridge ganz unterschiedlich zu Android. Vorhandene Xcode Projekte können in Visual Studio importiert werden. Visual Studio enthält Intellisense für Objective-C, und dieser Code kompiliert. Einige iOS APIs können direkt verwendet werden – die am häufigsten genutzten APIs werden von Microsoft zuerst implementiert. Notifications werden von den Windows Notifications unterstützt und erscheinen im Action Center, StoreKit wird auf Windows In-App-Käufe gemapped, und das File System wird auch unterstützt. Objective-C-Code kann in Visual Studio importiert werden, und dieser Code nutzt die Windows Runtime.

Classic Winodws Apps – Project Centinnial

.NET und Win32-Anwendungen können jetzt für die Windows-Store als APPX gepacked werden und die Runtime-APIs von Windows nutzen. Ein Statement bei der Konferenz war dass eine klassische Applikation all das tun kann was eine Universal Windows App kann. Ich muss das erst ausprobieren, ob es da nicht doch Einschränkungen gibt. Seit Windows Vista können native apps, die ohne Administratorrechte ausgeführt werden nicht in den Ordner „Programme“ schreiben. Wenn das eine Applikation doch macht erfolgt ein Redirect (auch in der Registry). Mit dieser Technologie erfolgt ebenfalls eine Umleitung. Dabei wird zwischen einem App-Namespace (App-Daten und Registry-Informationen), und dem System-Namespace (z.B. Dokumente) unterschieden. Dies ist der beste Weg für die Wiederverwendung des Rich-Client-Codes.

Web Apps – Project Westminster

Web-Anwendungen können ebenfalls für den Windows Store als APPX erzeugt werden. Auf diese Weise wird nicht der gesamte HTML, CSS und JavaScript-Code in das Paket kopiert, stattdessen sendet die App einen Request an die URL der Website. Damit ist es auch möglich, Features der Windows Runtime zu nutzen. Natürlich muss die Web-app im Scripting Code unterscheiden, ob sie als Windows-Anwendung oder im Browser ausgeführt wird. Microsoft hat bereits eine lange Geschichte in Web-Anwendungen, die auf Windows Features zugreifen können wie z.B. die Integration von Web-Anwendungen in der Taskleiste und dem Anbieten dynamischer Inhalte (ab  Windows 7): http://weblogs.thinktecture.com/cnagel/2011/09/taking-advantage-of-windows-7-with-web-pages.html. Dieses Feature jetzt geht aber viel weiter.

Wann ist all das möglich? Alle Bridges werden im Sommer 2015 zur Verfügung gestellt. Weitere Informationen: Universal Windows Platform Bridges.

Gibt es mit all diesen Bridges weiterhin einen Grund, XAML und C# zu verwenden? Natürlich! Anpassen der App für all die unterschiedlichen Bildschirmgrößen ist viel einfacher mit den neuen Controls SplitView, adaptive Trigger, RelativePanel… Neben neuer XAML Controls gibt es auch eine Menge neuer Funktionen und Performance-Steigerung wie z.B. compiled Bindings. Compiled Bindings sind nicht nur schneller, jetzt gibt es auch Compiler-Errors.

XAML wird auch von Microsofts Office verwendet. Aufgrund seiner alten Codebasis mit C++ verwendet Office C++ und XAML. Die Windows-Runtime ist sehr offen für unterschiedliche Sprachen, seit Windows 8 ist es möglich, C++ mit XAML zu verwenden. Die meisten meiner Apps schreiben ich weiterhin mit C# und XAML – und mit Xamarin für iPhone und Android.

Diese Bridges sind nur ein erster Schritt um mehr Apps auf die Windows Plattform zu bringen. Der zweite Schritt ist das konvertieren der Apps um nach und nach weitere Funktionalitäten zu erhalten.

Visual Studio Code

Microsoft integriert sogar mehr Bridges zu anderen Plattformen und Technologien. Visual Studio Code ist ein kostenloses Tool für Windows, Mac OS X und Linux. Visual Studio Code ist nicht nur ein Code-Editor, sondern bietet auch GIT-Integration sowie Intellisense und Debugging. Am besten eignet sich dieses Tool für ASP.NET 5 mit C# und Node.js.
Der größere Bruder, Visual Studio 2015, hat natürlich viel mehr Features ist jetzt als Release Candidate verfügbar.

Spannende Entwicklungen!

Christian

Weitere Informationen gibt es in meinen Windows Universal Platform Workshops!

http://www.cninnovation.com

Schreibe einen Kommentar

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: