Interview: „Es gab vereinzelte kritische Stimmen, vor allem auf Grund der Typfreiheit von JavaScript und den damit verbundenen „Schwächen“ aus der Entwicklung.“

JavaScript statt Xamarin – ein Fallbeispiel
Kommentare

Die mobileX AG ist ein etablierter Anbieter von Mobile-Workforce-Management-Lösungen. Ihr neuestes Cross-Plattform-Projekt hat das deutsche Unternehmen, das aus dem C#-Umfeld kommt, mit Cordova umgesetzt. Das wirft natürlich einige Fragen auf.

So haben wir uns zum Beispiel gefragt, warum man sich für Cordova und gegen Xamarin entschieden hat. Spannend ist es natürlich auch, zu erfahren, wie diese Entscheidung bei den Entwicklern ankam.

Über diese und andere Themen haben wir mit Hannes Heckner, CEO, und Holger Schif, CTO der mobileX AG, gesprochen.

Über mobileX-CrossMIP

Mit mobileX-CrossMIP haben Sie gerade eine neue Cross-Plattform-App veröffentlicht. Die Bedürfnisse welches Zielpublikums werden mit mobileX-CrossMIP gestillt?

mobileX-CrossMIP ist eine App für Außendiensttechniker im Kundenservice oder in der Instandhaltung von mittelständischen oder größeren Unternehmen aus den Branchen Maschinen- und Anlagenbau, Energieversorgung, IT und Telekommunikation, Facility Management und Medizintechnik. Mit der intuitiven App können Techniker die wichtigsten Auftragsfunktionen unterwegs auf ihrem iOS- oder Android-Smartphone bearbeiten. mobileX-CrossMIP ist damit die ideale Ergänzung oder auch Companion-App für die mobile Lösung mobileX-MIP for Field Service, über die der Techniker das ausführliche Reporting auf seinem Laptop durchführt.

Das Hauptmerkmal liegt auf der Anbindung an Systeme wie SAP oder Microsoft Dynamics ERP. Wie wird die Kommunikation mit den unterschiedlichen Systemen geregelt?

Zur Anbindung der Backendsysteme bietet die mobileX AG drei Schnittstellen: ein natives SAP-AddOn für die Anbindung an SAP ERP und SAP CRM, eine WebServices-Schnittstelle basierend auf SOAP sowie eine Schnittstelle basierend auf einer Transferdatenbank. Die letzten beiden Schnittstellen werden in der Regel direkt durch den Kunden implementiert.

Cordova vs. Xamarin

Die App bedient verschiedene Plattformen. Als Unternehmen, das aus dem klassischen C#-Umfeld kommt, haben Sie sich bei der Umsetzung dennoch gegen Xamarin und für Cordova entschieden. Warum?

Durch den JavaScript-Ansatz ist man nicht an eine Firma gebunden.

Die Zukunft von Xamarin war zum Zeitpunkt unserer Entscheidung vor etwa zwei Jahren noch unklar. Des Weiteren war Xamarin Forms erst angekündigt. Auch der hohe Preis spielte für die Entwicklung unter Xamarin eine Rolle. HTML5/JavaScript wurde als zukunftsfähiger und investitionssicherer betrachtet, während man sich im Gegensatz mit Xamarin in die Abhängigkeit einer Firma begeben hätte.

Durch den JavaScript-Ansatz ist hier eine deutlich größere Unabhängigkeit gewährleistet. So wäre es beispielsweise recht einfach, von Cordova auf ReactNative zu wechseln ohne die gesamte Entwicklung neu zu machen.

Xamarin im Videotutorial

entwickler.tutorialsIn unserem entwickler.tutorial Einstieg in Cross-Plattform-App-Development mit Xamarin zeigt Jörg Neumann, wie Xamarin funktioniert und wie Sie das Maximum aus der Plattform herausholen können. Wer sich jetzt anmeldet, sichert sich das 3-in-1 Gratistutorial – und kann das erste Kapitel des Tutorials kostenlos sehen!

Pilotprojekt JavaScript

Gab es Seitens der Entwicklung Ressentiments gegen die Entscheidung, ein solches Projekt mit Webtechnologien umzusetzen?

Es gab vereinzelte kritische Stimmen, vor allem auf Grund der Typfreiheit von JavaScript und den damit verbundenen „Schwächen“ aus der Entwicklung. Diese kamen zum Teil von Entwicklern, die keine oder nur sehr wenig Erfahrung mit JavaScript besitzen. Die Kernmannschaft für das Projekt hatte und hat diese Ressentiments nicht. Die „Angst“ vor der Technologie und vor allem vor der „anderen Entwicklungs-Kultur“ konnten wir dann durch internes Marketing und Schulungsmaßnahmen nehmen.

Mit welchen Problemen sahen Sie sich in erster Linie beim Umstieg auf die Entwicklung mit JavaScript konfrontiert?

Die JavaScript-Welt – ob mobil oder nicht – ist aktuell einer extrem starken Dynamik unterworfen. Für jedes Problem, für jede Aufgabe existieren zig verschiedene Bibliotheken und Tools. Diese sind zum Teil extrem kleinteilig, was Vorteile (man wählt das für sich beste Tool) aber auch Nachteile (nicht alles aus einer Hand, man muss für jedes Problem auf die Suche gehen) mit sich bringt – Stichwort „JavaScript-Fatigue“.

Die „Angst“ vor der Technologie und der „anderen Entwicklungs-Kultur“ wurde  durch internes Marketing und Schulungsmaßnahmen genommen.

Das Entwicklungs-Paradigma und die damit einhergehende „Kultur“, die sich insbesondere um node.js und npm, herausgebildet hat, ist zudem nur bedingt „Business-tauglich“. Das fängt mit den oben genannten Problemen der „Framework-Auswahl“ an und zieht sich durch die gesamte Entwicklung durch. Um hier eine ansprechende „Developer-Experience“ bereitstellen zu können, muss man relativ viel Aufwand in die Toolchain stecken (was im .NET- oder Java-Umfeld meist bereits existiert, ohne perfekt zu sein).

Sie setzen bei der Umsetzung auch auf Open-Source-Projekte? Geben Sie der Community auch etwas zurück?

Ja, das tun wir. Auf Github haben wir ein eigenes Repository für die Firma eingerichtet, in dem Tools/Bibliotheken, die wir nutzen oder anpassen, veröffentlicht werden können. Dies wird durch die Firma auch aktiv gefördert. Die bekannteste Entwicklung hier ist ein SASS-Plug-in für SystemJS. Das werden wir auch weiter fortführen, insbesondere auch im Bereich des Toolings rund um jspm/npm.

Zudem haben wir Chris Brody, den Entwickler des sqlite-Plug-ins für Cordova, beauftragt, Erweiterungen und Ergänzungen für uns zu entwickeln, die dann potentiell auch wieder in die Community zurückfließen können, da sie nicht exklusiv für uns umgesetzt werden.

API Summit 2017

Moderne Web APIs mit Node.js – volle Power im Backend

mit Manuel Rauber (Thinktecture), Sven Kölpin (Open Knowledge)

API First mit Swagger & Co.

mit Thilo Frotscher (Freiberufler)

Mit den Erfahrungen, die Sie in einem solchen Projekt sammeln konnten: Gab es technologische Grenzen, vor denen Sie andere Entwickler warnen würden?

Direkt warnen würde ich andere Entwickler nicht. Je „kleiner“ die mobile App ist und je weniger native Schnittstellen genutzt werden, desto produktiver ist der Cordova-Stack nutzbar.

Man sollte eine längere Evaluierungsphase mit entsprechenden Prototypen einplanen.

Wenn noch keine Erfahrungen mit JavaScript-Frameworks existieren, würde ich eine längere Evaluierungsphase mit entsprechenden Prototypen einplanen und durchaus zwei bis drei verschiedene Frameworks in der Entwicklung testen. Aber auch hier kommt es auf die Anforderungen und das Business-Umfeld an. Der Aufwand, der in den gesamten Entwicklungsstack fließt, ist aber nicht ohne. Frameworks sollten also entsprechend sorgfältig ausgewählt und für ihren Einsatz evaluiert werden. Das gilt auch für die Architektur und die Vorgaben an die Nutzung.

Offlinefähig mit SQLite

Ein Aspekt des Produkts ist die Offlinefähigkeit. Für welche Features spielt das eine besondere Rolle?

Prinzipiell für alle Features, insbesondere für Rückmeldungen (Kontierung der Zeit, Verbrauch von Material, etc.). Unsere Endanwender (Service- und Instandhaltungstechniker) sind oft in Räumen ohne Netzwerkverbindung (Keller, Aufzugsschacht, Krankenhäuser, etc.) tätig. Um zum einen relevante Daten jederzeit einsehen, aber auch um zeitnahe Rückmeldungen erfassen zu können, muss die Anwendung voll offlinefähig sein. Zudem sind die Techniker in ländlichen Gebieten oft mit einer schlechteren oder langsameren Verbindung unterwegs, so dass auch hier Offlinefähigkeit eine zentrale Anforderung ist.

Wie haben Sie die Offlinefähigkeit technologisch umgesetzt?

Der Datenaustausch zwischen dem MIP-Server und den Clients basiert auf einem eigenen Protokoll. Am Server wird nach der Initial-Synchronisierung nur noch das Delta der Änderungen berechnet und an den Client übertragen. Diese Daten werden in der SQLite-Datenbank am Client in einem relationalen Datenmodell persistiert. Der Zugriff erfolgt über das sqlite-Cordova-Plug-in, für das wir beim Entwickler einige Zusatzfeatures eingekauft haben (z.B. Nutzung per WebWorker, Batch-Transaktionen und anderes).

Gibt es einen Grund für die Entscheidung für SQLite?

SQLite wird von allen Plattformen unterstützt.

Es war eine relationale Datenbank notwendig, da IndexedDB als „Web-Standard“ aufgrund des unterschiedlichen, dokumentenorientierten, Datenmodells nicht genutzt werden kann. Eine Umstellung dieses Modells war aus Aufwandsgründen nicht möglich. SQLite wird von allen Plattformen unterstützt – dafür gibt es ein Cordova-Plug-in, das bei uns im Haus schon seit Jahren genutzt wird.

Welche Features planen Sie, in Zukunft umzusetzen?

Die wichtigsten Funktionen (Zeitraum Mitte bis Ende 2017):

Wir planen die Integration eines nativen Push-Kanals, um den Anwender über neue Daten (Aufträge, etc.) zu informieren. Zudem möchten wir ein Notification-System am Client im Zusammenhang mit der Push-Benachrichtigung aufbauen. Auch die Windows-Plattform (UWP) soll zukünftig unterstützt werden.

Dann möchten wir das User Interface für Tablets bzw. Phablets auf Basis von Responsive Design optimieren. Wir werden weitere Standard-Anwendungsfälle umsetzen, wollen aber auch unseren Kunden die Möglichkeit geben, ihre individuellen Anwendungsfälle selbst anzupassen.

 

Hannes Heckner

Hannes HecknerHannes Heckner (Jahrgang 1970) gründete bereits während seines Studiums der Informatik an der TU München ein Unternehmen aus der Internet-/Medienbranche. Im Jahr 2000 gründete er mit einigen anderen die mobileX AG.
Heute ist Hannes Heckner als CEO für die strategische Entwicklung des Unternehmens sowie für die Ressorts Vertrieb, Marketing und Finanzen verantwortlich. Unter seiner Führung konnte die mobileX AG Kunden wie STRABAG PFS, ThyssenKrupp Aufzüge, AVL List, Melitta, Alfred Kärcher und viele andere mehr gewinnen.

 

Holger Schif

Holger SchifHolger Schif (Jahrgang 1968) begann seine berufliche Karriere bei der IXOS AG als Software-Entwickler.
Im Jahr 2000 gründete Holger Schif mit einigen anderen die mobileX AG. Als Projektleiter war er jahrelang für die Einführung und Umsetzung von Mobile Workforce Management-Projekten bei namhaften Kunden zuständig. Seit 2010 leitete er als Head of Product Development die Entwicklung von mobileX-Dispatch und mobileX-MIP for Field Service. Seit Januar 2015 ist er als Chief Technical Officer Mitglied des Vorstands der mobileX AG.

 

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -