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.

Microsoft Demo Challenge: And the winner is… Namics!

Stell dir vor, du bist im Job viel unterwegs. Und willst trotzdem effizient arbeiten. Ein Widerspruch? Nicht mit den neuen Produkten und Features, findet Microsoft und lud seine Partner vergangene Woche ein, die Business Produktivität im Rahmen der Demo Challenge zu präsentieren. Benjamin Hörner, Matthias Gehrig und Veronika Sharonova nutzten diese Chance, ihre Präsentations- und Überzeugungskünste im Wettbewerb zu messen.

Die Aufgabe bestand darin, die neuen Office-Produkte überzeugend vorzustellen und aufzuzeigen, wie diese die tägliche Arbeit erleichtern. Marketing-Geheimnis: Funktionalität gepaart mit Emotionen. Bewertet wurde daher neben der Präsentationstechnik und dem Einsatz verschiedener Devices und Funktionalitäten auch die Überzeugungskraft der Demonstration gegenüber einem fiktiven Kunden.

Das Namics-Team setzte sich gegen die Mitbewerber durch und überzeugte die Jury mit einer abwechslungsreichen Geschichte einer Sales-Mitarbeiterin, die innerhalb von 20 Minuten auf dem Weg vom Kunden ins Büro die Kollegen informiert und ihr Projekt aufgleist. Die überzeugende Message: Mit den neuen Produkten ist Zusammenarbeit einfach, schnell, flexibel, effizient und macht Spass. Das Team bedankt sich bei Microsoft und den Mitbewerbern für einen spannenden Nachmittag sowie für den Reisegutschein, der dem ganzen Team zu Gute kommen wird.

Fun Fact: Das Namics-Team hat sich als einziges getraut, auch ein MacBook mitzunehmen. Die Jury witzelte über Punktabzug, konnte aber überzeugt werden: mit Parallels Desktop laufen Windows 8 und Office 2013 reibungslos auch auf Apple.

Willkommen am Arbeitsplatz der Zukunft

Am 21. Januar 2013 hat Namics zum Event Vernetzt & Mobil ins Microsoft Briefing Center geladen, bei dem die Teilnehmer den Arbeitsplatz der Zukunft live erleben konnten. Im Mittelpunkt des Tages stand der moderne Mitarbeiter. Längst ist es nicht mehr die offizielle Job description, die ihn den Tag über beschäftigt, sondern die Suche nach Informationen, um seine eigentlichen Aufgaben ausführen zu können. Und auch für diese braucht er heute mehr und bessere Tools. Das Fazit des Tages: Die Zukunft verheisst goldene Zeiten – dann sollen die Mitarbeiter die richtigen Informationen schneller finden und ihre Aufgabe effizienter ausführen, egal wo sie gerade sind.

Durch den Tag führten spannende Vorträge und überzeugende Live-Demonstrationen über das informationsorientierte Arbeiten im virtuellen Raum von allen Devices zu jeder Zeit. Die Lösung für Microsoft heisst SharePoint 2013, Office 2013, Yammer und Lync. Warum?

  • Information durch soziale Netzwerke: Kein Frust durch Intranet-, Ablagesysteme- und Papierberge-Durchsuchen, keine Massen-E-Mails an alle Kollegen – Finden statt Suchen funktioniert am besten, wenn man genau denjenigen fragt, der es weiss. Im Intranet, über Hash-Tags und dank intrinsischer Förderung von Experten: soziale Netzwerke sind aufgrund ihres Nutzens bei der Informationssuche in Unternehmen längst erwachsen geworden.
  • Effizienz durch Social Collaboration: Gleiches Tool, zusätzlicher Effekt – nicht nur Informationsaustausch, sondern auch richtige Zusammenarbeit klappt online teilweise besser, als endlose Meetings und Team-Grenzen.
  • Share and Follow: Ob Sites, Personen oder Dokumente – wer möchte, dem entgeht kein Update und keine Aktion, ohne darüber informiert zu werden. Und wer keine Zeit dafür hat, setzt Prioritäten und abonniert nur das für ihn Relevante.
  • Integration über alle Devices: Arbeiten vor und nach der Arbeit? Kein Problem: eine Dokumentenseite, die man auf dem Mobile auf dem Weg zum Kunden bearbeitet, öffnet sich – natürlich synchronisiert – an der gleichen Stelle, sobald man den Laptop im Office hochfährt.

Auch seitens Microsoft gab es Einblicke in die neue Arbeitswelt. Wem die Vorträge und Demos nicht ausreichten, konnte sich live vom Next Generation Office überzeugen. Im Microsoft-Office ist die Vision von der Zukunft längst angekommen. Das Highlight: die Abschaffung der Maus. Das Relikt vergangener Zeiten wird zwar noch von Mitarbeitern genutzt, doch sind Touch-Bildschirme in arbeitsfähiger Qualität längst über das Stadium der Prototypen hinaus. Bildschirme reagieren auf Fingerdruck und lassen sich dank Kinect gar durch Bewegung steuern, ohne auch nur ein Stück Hardware zu berühren. Willkommen in der Zukunft.

Stellt sich zuletzt die Frage, ob das Ziel die vollständige Einbindung des Mitarbeiters ist, damit er nicht nur im eigenen Office, sondern auch in der Badewanne effizient arbeitet. Das gesellige Apéro zum Abschluss des gelungenen Tages zeigt: nicht „ständig“, sondern „flexibel“ ist das Schlagwort. Der Mitarbeiter entscheidet selbst, wann er wie und wo arbeiten möchte. Microsoft und Namics beweisen, dass es möglich ist – und helfen anderen Unternehmen bei ihrer Entwicklung in die Zukunft. Vielen Dank an alle Teilnehmer für diese Einblicke!

Die vielleicht grösste JavaScript-Konferenz der Welt

1513-bayjqcon-thumb-500x178-1512.png
Die Apfellogodichte auf dem Microsoft-Areal in Mountain View war vergangenes Wochenende überdurchschnittlich hoch. Grund dafür war die „wohl grösste JavaScript Konferenz der Welt„. An der Bay Area jQuery Konferenz 2010 war alles versammelt was Rang und Namen in der JavaScript- und insbesondere in der jQuery-Welt hat.

John Resig, der Schöpfer und geistige Vater von jQuery, eröffnete die Konferenz mit ihren fast 500 Teilnehmern und danach folgen etwa dreissig Sessions – Schlag auf Schlag – randvoll mit Informationen. Johns Ansprache wurde per Livestream in den zweiten Raum übertragen – nicht alle Personen passen in den mit allen technischen Finessen ausgestatteten Raum Eins des Microsoft Conference Centers.

1502-jqcon (7 of 7)-thumb-500x323-1501.jpg

Verteilt in den zwei Räumen finden jeweils parallel 45-minütige Sessions statt. „High Performance jQuery“, durch Steve Souders, Nicholas C. Zakas und einem herausragend Robert Duffy und in drei Sessions vertreten – eines der thematischen Schwerpunkte der Konferenz.

«0.1 second is about the limit for having the user feel that the system is reacting instantaneously»

1505-Nicholas C. Zakas-thumb-500x229-1504.jpg
Nicholas, kein ausgesprochener jQuery-Experte, dafür aber bewaffnet mit jahrelanger Erfahrung als JavaScript Entwickler – und als Principal Frontend Engineer der Yahoo!-Homepage eine Koryphäe auf dem Gebiet – vermittelte auf äusserst eingängige Art und Weise, warum die Ausführung von JavaScript den Browser-UI Thread blockieren, und dadurch eine Webseite träge erscheinen lassen kann – und präsentierte gleich auch Lösungen, um dies zu verhindern. Des Weiteren erläuterte er auch die Problematik, welche durch die besonders CPU-lastige Neuberechnung – ein so genannter Reflow – der Seite durch JavaScript-Manipulationen entsteht und wie man solche Reflows vermeiden oder zumindest reduzieren kann.

Use the right tools for the right job

Weniger Neues – dafür aber zum Brüllen komisch – vermittelte der Brite Robert Duffy anschaulich, wie man mit wenigen Tricks die Performance von jQuery-Applikationen um ein Viellfaches verbessern kann. Durch ein witziges Beispiel seines britischen Rennwagens auf einer jQuery-gesponsorten Rennbahn vermittelte er die Prinzipien von Selektor-Caching und wie man durch richtigen Einsatz der verfügbaren Mittel – zum Beispiel durch die Verwendung von CSS-Klassen statt der show(); und hide(); Funktionen – die Performancegewinne erzielen kann. Quintessenz:

«Performance is no Rocket Science but has a massive Impact if you pay attention to the small things.»

Und die Aussage des Tages:

«Use Tables…»

Werbung ist (oft) nicht nur langweilig, sie beeinträchtigt (meist) auch die Performance der Webseite

1507-jqcon (3 of 7)-thumb-500x289-1506.jpg
Das war eine der Grundaussagen von Steve Souders, welcher in seinem schon oft gehaltenen Vortrag einige neue und sehr praktische Tools vorgestellt hatte. Darunter ein wohl oft übersehenes Tab „Tools“ in YSlow welches einige praktische Werkzeuge enthält – All JS Beautified, wenn man mal wieder das komprimierte Apple-JavaScipt entschlüsseln will – und eine Webseite, mit der man die Performance einer Seite in IE7 und IE8 in ausführlich testen kann. Besonders spannend daran ist die Möglichkeit, den Aufbau der Seite über Zeit in Screenshots und als Video aufzuzeichnen. Ein praktisches Tool um dem Kunden eine Performance-Verbesserung schmackhaft zu machen.

How To Manage Large Applications with jQuery

Alex Sexton präsentierte – in seinem ihm eigenen Humor – gleich drei Methoden um grosse jQuery Applikationen handbar zu machen:

  1. Nativ / Pseudo-Classical
  2. Classical
  3. Prototype Inheritance (fits into the language the best)

zusammen mit seiner Präsentation bestimmt ein (vertiefter) Blick wert.

«OO Code in JavaScript is Crippled Evented Code»

Ebenfallst eine Perle unter den Vorträgen war { Evented von Yehuda Katz. Mit seiner polarisierenden Aussage

«Don’t use OO to organize your code – There are better concepts.»

regte er viele Diskussionen an und lieferte gleich einige schlagkräftige Argumente um seine Aussage zu untermauern. Leider sind seine Slides und Beispiel noch nicht online… Einen Blogpost in dem dieses Prinzip erklärt wird hat findet sich hier. Nebenbei erwähnte Yehuda noch haml, sass and compas – drei Dinge die wohl ebenfalls erwähnt und beachtet werden dürfen.

«Design is not just what it looks like and feels like. Design is how it works.» Steve Jobs

Neben vielen sehr technischen Vorträgen gab es auch (vereinzelte) Ausnahmen. Die einzige Folie mit Code in der Präsentation des redegewandten Steve Smith:

jQuery.fx.speeds._default = 
   ( 
      jQuery.browser.ie && 
      jQuery.browser.version < parseInt(8,10)
   ) ? 0 : 200;

Steve erläuterte warum Entwickler Interaction-Design ernstnehmen sollten - und lieferte ein paar Tipps, wie man ein UI entwickeln kann, welches dem Benutzer Zuversicht schenkt, statt Misstrauen bei der Bedienung zu wecken. Zusammengefasst:

  1. Design the User Experience first
  2. Interactions are meant to
    impress the user
    impress the client
    
engage and enhance
  3. Speed is important - distractions are bad
  4. It's our job to build user confidence
  5. Don't solve problems with code - Solve the problem, then write the code

jQuery als Browser-Standard?

1511-20100426-01-38-47-IMG_9786-thumb-500x255-1510.jpg

Zum Schluss hielt John Resig eine Rede zur Lage der Nation von jQuery in der er über geplante Features wie Script Loading und einigen offiziellen Plugins (Template- und Data Binding Plugin) Stellung nahm. Das jQuery Team und insbesondere John ist ausserdem in Gesprächen mit unterschiedlichen Browser-Herstellern um Teile von jQuery zu einem Browser-Standard zu machen:

«I've been talking width Mozilla, IE, Crockford, and the W3C to come up with a good result that everyone is happy with and that is shipped with Browsers»

1509-4465177194_eee5cbd9fa_o-thumb-500x181-1508.png
Auf
seinem triumphalen Siegeszug durch das Internet hat jQuery mittlerweile auf zwei von drei Webseiten Einzug gehalten und eine Kehrtwende ist nicht in Sicht. Diese Konferenz - mit Entwicklern aus aller Welt und aus Firmen wie google, Yahoo! und Microsoft - hat dies eindrücklich gezeigt. Die nächste jQuery Konferenz in London steht bereits vor der Türe und ich für meinen Teil kann eine Teilnahme nur empfehlen. Das geballte Know-How und die informativen und sogleich humorvollen Präsentationen sowie viele Gespräche - sowohl vor als auch nach den Sessions - das gemütliche After-Party-Bier bei angeregter Unterhaltung, die Chance neben Jay Freeman - a.k.a. Saurik, dem Entwickler des inoffiziellen iPhone-App-Stores - zu sitzen machen diese Konferenz zu einem must see.

Zum Nachschlagen

Alle Die meisten Slideshows kann man unter Speakerrate betracht. Es lohnt sich.