Ersatzteile für Windows Phone

Die sogenannte „Ersatzteil-App“ ist ein Produkt, das wir für den Hersteller von Heiztechnik-Systemen Viessmann entwickelt haben. Es besteht im Wesentlichen aus einer hybriden Lösung, die die Vorzüge einer reinen Web-Applikation mit den technischen Möglichkeiten der mobilen Plattformen in Form nativer Apps verbindet. Sie soll dem Fachhandwerker als Werkzeug und Nachschlagewerk für den umfassenden Produktkatalog Viessmann’s dienen.

Umgesetzt hatten wir diese Applikation vorerst ausschließlich für Apples iOS– und Googles Android-Plattformen, da sie den Markt derzeit gemeinsam wie kaum ein anderer dominieren. Für die übrigen mobilen Systeme war bislang also lediglich eine Web-Applikation verfügbar, ohne erweiterte Funktionen, wie den integrierten Barcode-Scanner.

Im Zuge der parallelen Markteinführung von Windows 8 und Windows Phone 8 durch Microsoft im Herbst letzten Jahres und unter der Annahme, die Plattformen hätten die Voraussetzungen, sich hinter den beiden Großen als dritte Kraft am Markt zu etablieren, haben wir Viessmann den Vorschlag gemacht, die Plattform-Abdeckung der hybriden Apps um Windows zu erweitern. Infolge dessen bekamen wir die Möglichkeit, Erfahrung mit dieser Plattform zu sammeln und die erste Applikation für Windows Phone 8 in unserem Hause zu entwickeln.

Plattform

Grundsätzlich teilen sich Windows 8 und Windows Phone 8 den selben Kern. Das heisst, es gibt die Möglichkeit, z.B. über Portable Class Libraries Logik für beide Plattformen zu schreiben. Da es aber nicht wie für iOS möglich ist, sogenannte Universal Apps zu entwickeln, die auf beiden Plattformen lauffähig sind, müssen zumindest die Views und zum Teil sogar Plattform-spezifische Implementierungen getrennt umgesetzt werden.

Durch diesen gemeinsamen Kern sind Windows Phone 8 Apps unter Windows Phone 7 nicht lauffähig. Umgekehrt können Windows Phone 7 Apps allerdings auf Windows Phone 8 Geräten ausgeführt werden, da hier explizit auf Rückwärtskompatibilität geachtet wurde. Wir haben uns für die Umsetzung gegen die Unterstützung von Windows Phone 7 entschieden, um die technische Nähe zu Windows 8 nutzen zu können.

Umsetzung

Das Setup für die Entwicklung ist unkompliziert und schnell erledigt. Neben Visual Studio 2012 ist lediglich das Windows Phone SDK erforderlich. Um das allerdings vollständig nutzen zu können, sollte ein PC mit Windows 8 Pro als Entwicklungsgerät verwendet werden.

Um Unit Tests innerhalb des Emulators einsetzen zu können, haben wir das Windows Phone Toolkit Test Framework von Microsoft verwendet. Es ermöglicht die manuelle Ausführung der Tests über eine separate Applikation und lässt sich leicht integrieren. Matteo Pagani hat hierzu auf seinem Blog einen hilfreichen Artikel geschrieben.

Für die Umsetzung des Barcode-Scanners haben wir ZXing.Net von Michael Jahn verwendet, das einer Portierung der Java-Bibliothek ZXing entspricht. Die Herausforderung bei der Integration lag hierbei vor allem in der Übergabe der Kameradaten. Die Untersuchung der Beispiel-Implementierungen war hier bei der Lösung eine große Hilfe.

Etwas abenteuerlich war die Umsetzung lokalisierter Titel für die App. Was unter iOS recht einfach über die Lokalisierung der Info Property List realisiert werden kann, erfordert für Windows Phone die Verwendung einer speziellen Dynamic Link Library, sowie die Erstellung entsprechender Multilingual User Interface Dateien. Folgt man der ausführlichen Anleitung von Microsoft, lässt sich das Thema allerdings schneller lösen, als es zuerst den Anschein hat. Eine elegantere Lösung wäre hier zukünftig wünschenswert.

Fazit

Das Projekt war sehr lehrreich und die Umsetzung hat insgesamt großen Spaß gemacht. Die Einarbeitung anhand der bereitgestellten Dokumentation gestaltet sich angenehm und die Werkzeuge zur Umsetzung erleichtern die Entwicklung spürbar, wobei hier insbesondere der schnelle Emulator positiv zu erwähnen ist. Auf der Suche nach Problemlösungen im Netz stellt man schnell fest, dass die Plattform noch sehr jung ist und demnach die damit arbeitenden Entwickler schlicht nicht so zahlreich vertreten sind. Zudem bieten vorhandene Komponenten, wie z.B. eine WebView, hier schlicht noch Raum für zukünftige Erweiterungen, was die Funktionalität und mögliche Einflussnahme durch den Entwickler angeht. Ich bin allerdings optimistisch, dass Microsoft diesbezüglich bereits Ende des Jahres nachliefern wird.

.Net News – Januar Summary

metro-visualstudio-128-link

Neues Jahr, neues Glück? Ich denke neues Jahr, mehr Produktivität. Als DotNet’ler ist man ja schon fast ein wenig verwöhnt wenn man die Anzahl an Aktualisierungen in den bestehenden Produkten anschaut. Schon im ersten Monat des neuen Kalenderjahres startet Microsoft … Weiterlesen