Über unsMediaKontaktImpressum
Aaron Czichon 13. Dezember 2016

Mobile Web im Enterprise-Umfeld

Das Jahr 2016 geht langsam in sein Finale und es ist wohl mal wieder Zeit, auch ein technisches (Web-)Resumeé zu ziehen. Heute werfe ich einen Blick auf die aktuellen Entwicklungen im Web und schaue mir dabei den Zusammenhang zu dem Enterprise-Umfeld an.

Ein kleiner Rückblick: 2016 war aus Sicht des Webs und der Web-Technologien ein sehr aufregendes Jahr. Nicht nur die finale Veröffentlichung von Angular 2 im vergangenen September war ein großer Meilenstein, sondern auch die Weiterentwicklung von Typescript, React und vielen weiteren. VueJS ist ein junges Framework welches aktuell das hippe Tool schlechthin ist.

Neben den guten Neuigkeiten gab es auch nicht so erfreuliche Nachrichten, wie z. B. das Debakel mit Left-Pad welches kurzzeitig von NPM genommen wurde. Dieses Ereignis hat auch unter den Webentwicklern eine große Diskussion ausglöst und viele haben das gesamte System der Dependencies in Frage gestellt.

Wie sieht es im Enterprise-Bereich aus?

Meine Erfahrungen haben gezeigt, dass gerade in größeren Unternehmen Webentwicklung immer noch nicht richtig ernst genommen wird. Durch das Left-Pad-Issue haben auch die Entwickler aus den Unternehmen mitbekommen, dass es hier eine Diskussion gab. Die meisten dieser Entwickler – vermutlich Java und/oder .Net – haben dann gleich die Meinung bezogen, dass es soetwas nur im Web gibt. In "unserer" Programmiersprache gibt es sowas nicht. Das dieses Problem aber auch mit einem Packagemanager von Java und/oder .Net mit ihrer Nuget-Plattform hätte passieren können, wollte irgendwie niemand wahrhaben.

Auch ist es leider immer noch gängige Praxis in großen Unternehmen, keine "richtigen" Webentwickler anzustellen. Dort macht jeder Entwickler "so ein bisschen Web" nebenher. Das ist vermutlich auch der Grund, warum man in diesem Umfeld als Webentwickler nicht als Softwareentwickler angesehen wird. Jeder kann dort doch die Webentwicklung – "Besteht nur aus HTML und etwas Javascript." Leider ist das auch 2016 immer noch gängige Praxis.

Seit der ersten Vorstellung von Typescript hat sich das jedoch sehr in eine bessere Richtung verändert. Die Entwickler rund um Websites und Web-Applikationen haben Typescript als eine brauchbare Sprache für sich entdeckt (obwohl diese von Microsoft kommt). Den Enterprise-Entwicklern wird mit Typescript der Einstieg in die Web-Applikation-Entwicklung stark erleichtert. Microsoft hat hier etwas geschafft, was viele andere schon vorher versucht haben: Hochsprachen-Entwickler und Web-/Frontend-Entwickler auf einen gemeinsamen Nenner zu bringen.

Spätestens als das Angular-Entwicklerteam von Google verkündet hat, Typescript als Standard für Angular 2 zu nutzen, ist jedem klar geworden, dass das eine Zukunft hat. In 2016 ist Typescript einer der großen Standards in der Entwicklung von Web-Applikationen geworden.

Fokussierung auf Plattformunabhängigkeit

Der Fokus auf Plattformunabhängigkeit nimmt auch in den letzten Jahren sehr stark zu. Erste Ansätze gab es schon sehr früh mit Phonegap, Xamarin und vielen weiteren. Mit dem Erscheinen von HTML5 und von SPA-Frameworks (Single Page Application Frameworks) wie AngularJS, haben sich vorallem die Webtechnologien als sehr gute Lösung der Plattformunabhängigkeit herausgestellt. Als Basis für mobile Apps wird dabei auf Cordova gesetzt und für die Desktop-Varianten gibt es Electron.

Damit ist es nun möglich, mit einer einzigen Code-Basis alle Plattformen zu bedienen: Web, Windows, macOS, Linux, iOS und Android. Es werden keine einzelnen Entwickler für die bevorzugten Plattformen benötigt. Dadurch werden die Entwicklungs- und Wartungskosten der Projekte deutlich gesenkt. Außerdem ist es so nun möglich, die Webentwickler vielseitiger einzusetzen und quasi jeder kann eine entsprechende Applikation für alle entwickeln.

Die Besonderheit bietet auch den Vorteil, dass mit ein paar Wunschplattformen (beispielsweise Web und Android) gestartet und dann ohne großen Aufwand um weitere Zielplattformen ergänzt werden kann (z. B. iOS und Windows 10 Mobile).

Tooling und Plattform-UX

Für viele Unternehmen und Entwickler ist es wichtig, dass sich die Applikationen entsprechend dem System verhalten und den gegebenen UX- und UI-Vorstellungen folgen. Android Apps sollten beispielsweise auf Material-Design setzen (oder zumindest Elemente davon nutzen), Windows Apps auf die entsprechenden Metro-Controls und iOS auf deren UI-Vorgaben. Nutzt man nun in einem Projekt eine einheitliche Code-Basis welche auf dem Web-Technologie-Stack aufbaut, müsste man dazu für jede Plattform eigene UI-Controls entwickeln.

Es gibt auch für nahezu jede Plattform die entsprechenden Controls. Diese können sich jedoch je nach UI-Framework unterschiedlich verhalten. Dies würde wieder eine starke Trennung der Code-Basis erfordern, da die Business-Logik gekapselt werden müsste. Die View-Logik müsste pro Plattform neu entwickelt werden. Dadurch würde der Mehrwert einer einheitlichen Code-Basis wieder verschwinden.

Mit den ersten Alpha-Versionen und den darauffolgenden langen Beta-Phasen Ende 2013 und Anfang 2014 konnte das Startup – damals noch Drifty – das mobile Framework Ionic entwickeln.

Dieses UI-Framework bietet entsprechende Plattform-HTML-Controls für Angular, um so mit einem UI-Framework eine an das System angepasste UI für die App zu liefern. Die große Besonderheit hierbei ist, dass dies nahezu automatisch und per Default richtig auf den jeweiligen Plattformen passiert, sodass der Entwickler nicht mehr selbst die Unterscheidungen der jeweiligen Plattformen treffen muss. Dadurch kann dieser den Fokus auf die Business-Logik legen und muss sich zunächst nicht um die UI kümmern.

Zukunftsausblick

Im Enterprise steht man Technologien welche noch nicht länger als 5 Jahre auf dem Markt sind immer sehr skeptisch gegenüber. Wird sich das durchsetzen? Es gibt dafür viele Lösungen, was passiert, wenn sich eine andere Lösung durchsetzt? Open Source – wo bekomme ich dann Support?

Es gibt keinen besseren Support als eine aktive, große Community.

Viele Fragen davon sind heutzutage überflüssig oder sogar nicht mehr zeitgemäß. Wichtig ist vorallem, dass man sich offen gegenüber Open Source verhält. Selbst große Firmen wie Microsoft haben – wenn auch spät – gemerkt, dass es eine gute Strategie ist, andere Entwickler mit ins Boot zu holen und auf Reaktionen innerhalb der Community Rücksicht zu nehmen. Es gibt keinen besseren Support als eine aktive, große Community. Auch neue Features und Technologien werden in Open Source-Projekte viel schneller eingebunden als irgendwo sonst.

Vorallem die traditionelle Plattformentwicklung wie Objective-C/Swift für iOS/macOS, Java für Android und .NET C# für Windows werden weiter zurückgehen und verstärkt auf Web-Technologien aufbauen.

Auch Google hat das unter Android schnell begriffen und bietet nun seit einigen Monaten die sogenannten PWAs (Progressive Web Apps) an. PWAs sind Apps, welche zunächst wie eine Web-App funktionieren. Sie können aber auch offline genutzt werden und als Homescreen Icon unter Android hinterlegt werden. Der Nutzer selbst merkt dann bei der Bedienung der App nicht mehr, ob es sich um eine native oder eine Progressive Web App handelt.

Für das bereitstellende Unternehmen und/oder die Entwickler fällt somit weniger Aufwand an, Apps über die verschiedenen Vertriebskanäle in die Stores zu bringen. Es reicht damit lediglich eine Veröffentlichung als Progressive Web App.

Autor

Aaron Czichon

Aaron Czichon arbeitet als Software-Entwickler im Projektumfeld mit Javascript und .NET bei der cellent AG mit Hauptsitz in Stuttgart. Nebenberuflich ist er als freier Entwickler unterwegs und Mitglied der Ionic Alpha-Gruppe.
>> Weiterlesen
botMessage_toctoc_comments_9210