© best_vector/Shutterstock.com
Erfahrungen mit der Portierung der Audiobook-Player-App

Von Windows 8.1 nach Windows 10


Im folgenden Erfahrungsbericht wird die Portierung der Windows-Phone-8.1-Audiobook-Player-App [1] hin zur Windows-10-Universal-Windows-Platform-App beschrieben und auf Stolpersteine sowie Lösungen aufmerksam gemacht.

Die Idee, eine App für Hörbücher auf der Microsoft-Plattform zu entwickeln, existiert bereits seit dem Erscheinen von Windows Phone 7. Doch erst ab Windows 8.1 und Windows Phone 8.1 waren die technischen Möglichkeiten gegeben, und die Idee konnte umgesetzt werden.

Vor Kurzem erschien nun Windows 10, Windows 10 Mobile in der Preview und mit ihnen das stark überarbeitete Konzept einer gemeinsamen Codebasis für verschiedene Plattformen: die Universal-Windows-Platform-Apps (UWP-Apps). Es kann zwar noch zwischen den Plattformen unterschieden werden, aber nun gibt es für Entwickler tatsächlich nur noch ein Projekt, das alle Plattformen abdeckt und ein einziges Package produziert, das auf alle Plattformen ausgerollt werden kann.

Eine App für alle Windows-10-Plattformen, mit vollen Features zu haben, die einer gemeinsamen Codebasis entstammen, war für mich der Auslöser zur Erstellung einer UWP-App. Da die Windows-Phone-8.1-App (WP 8.1) die meisten Funktionen besaß, die ich auf der neuen Plattform haben wollte, nahm ich diese als Grundlage und begann damit die Portierung.

Der erste erfolgreiche Build

Mein erstes bescheidenes Ziel war, die neue UWP-App kompilieren zu können. Ich habe also ein neues UWP-App-Projekt in Visual Studio 2015 erstellt und das Shared-Projekt aus der 8.1-App referenziert. Das war problemlos möglich, aber es fehlten noch die Files aus dem WP-8.1-Projekt. Da abzusehen war, dass der Source­code auseinanderlaufen wird, habe ich diese gleich in das UWP-App-Projekt kopiert. Nach Anpassung verschiedener using-Direktiven und Compiler-Switches kam der erste Kompilierungsversuch. Es traten zwar Fehler auf, aber insgesamt weniger als gedacht. Ein Problem war die BackgroundAudioTask. Das WP-8.1-Projekt ließ sich aufgrund des Outputs nicht referenzieren. Also wurde ein neues ClassLibrary-Projekt mit Output-Typ Windows Runtime Component erstellt und die Datei vom ursprünglichen Projekt hineinkopiert. Die nächsten Probleme bereiteten das Fehlen der Exten­sion AdMediator. Der AdMediator ist ein Control und Service, der es ermöglicht, mit einem Werbe-Control verschiedene Anbieter abzudecken. Damit lässt sich prozentual definieren, welcher Anbieter wie oft angezeigt werden soll. In der Visual Studio Gallery war die Extension zunächst noch nicht...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang