Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Cross-Plattform-Apps mit Cordova, Ionic, TypeScript und Visual Studio

Herausforderungen in mobilen Geschäftsanwendungen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der Bedarf an Enterprise Mobile Apps wächst schneller als die verfügbaren Entwicklungskapazitäten. In diesem Video werden drei Varianten vorgestellt, mit denen Entwicklern dieser Herausforderung begegnen können: Xamarin, Cordova und die native Entwicklung mit den Hersteller-SDKs.
12:28

Transkript

Als Software Entwickler stehen wir heute Herausforderungen gegenüber, die es früher so gar nicht gab. Doch erinnern wir uns einmal zurück. Wenn wir früher eine Software erstellt haben, einer Geschäftsanwendung, dann sah die häufig so aus, wie diese hier. Heisst also, wir haben Oberflächen geschrieben, die vollkommen überfrachtet waren, die viel zu viele Bildschirmelement hatten, und die sehr komplex zu bedienen waren. Also, Software von Ingenieuren für Ingenieure könnte man schon fast sagen. Das war aber damals alles kein Problem. Zum einen arbeitete der Benutzer an einem Desktop PC mit Windows oder an einem Laptop mit Windows, er hatte dort eine Maus und eine Tastatur, um diese Oberfläche zu bedienen und all diese feinen Bedienelemente auch zu treffen. Ausserdem arbeitete er in der Regel den ganzen Tag mit dieser Anwendung und er kannte daher die wichtigsten Funktionen im Detail, um seine Arbeit zu erledigen. Heisst also, ein Benutzer wusste wirklich nach einer Zeit, was passiert, wenn er auf das kleine “r”, z.b. drückt, was auf diesen vielen Schaltflächen hier ist oder was diese Häkchen alle bedeuten. Ausserdem darf man nicht vergessen, der Benutzer war es früher nicht anders gewöhnt. Im Endeffekt wusste man, dass Geschäftssoftware nunmal so aussieht. Seit einigen Jahren sieht die Welt allerdings ein wenig anders aus. Die meisten haben vermutlich mittlerweile ein Smartphone oder ein Tablet. Ich habe auf jeden Fall ein Smartphone und ein Tablet und Sie haben wahrscheinlich auch eins. Und auf diesen Geräten haben wir in der Regel eine ästhetische, ansprechende Oberfläche. Und so eine Oberfläche, die weckt natürlich auch Ansprüche an Business Software. Wenn ich im privaten Umfeld die ganze Zeit über sehr tolle Software benutzte, möchte ich natürlich auch im geschäftlichen Umfeld, in meinem beruflichen Alltag also, mit schöner Software, mit toller Software arbeiten. Darüber hinaus dürfen wir natürlich auch nicht vergessen, dass Smartphones nicht nur im privaten Umfeld genutzt werden, sondern dass auch immer mehr Firmen, Ihre Mitarbeiter mit Smartphones und Tablets ausstatten, oder eben dass Mitarbeiter, ihre privaten Smartphones beruflich nutzten im Zuge einer “bring your own” Device Strategie. Und in der beruflichen Nutzung wollen wir, natürlich nicht mehr so wie früher, einfach nur noch mit unserem Telefon telefonieren, sonder wir erwarten, dass betriebliche Abläufe durch Apps auf unseren Smartphones uns bei unserer Arbeit unterstützen. Und solche Apps, von denen ich hier spreche, das sind solche Geschäftsanwendungen wie z.b. eine Zeiterfassung oder eine Reisekostenabrechnung auf dem Handy, ein Customer-Relationship-Management, also ein CRM, bzw. zumindest ein Ausschnitt davon auf meinem Handy und meinem Tablet. Oder der elektronische Urlaubsantrag, die Mängeldokumentation, wenn Sie z.b. “Mängel rügen” für irgendwelche Lieferungen erstellen wollen. Es könnte aber auch das Frontend für eine bestehende ERP-Lösung sein, wie z.b. SAP oder ein anderes ERP System. Häufig werden auch Frontends für SharePoint als mobile Anwendungen erzeugt, einfach um die Interaktion ein wenig leichter zu machen, und es gibt bestimmt noch viele andere Beispiele. Es gibt eine sehr interessante Aussage von Gartner. Und zwar sagt Gartner, dass bis Ende 2017 der Bedarf an Enterprise Mobile Apps die verfügbaren Entwicklungskapazitäten um den Faktor fünf übersteigen werden. Wenn wir uns einmal die Verbreitung der verschiedenen mobilen Vertriebsysteme anschauen, dann sehen wir hier bei den Zahlen von IDC aus dem zweiten Quartal 2015, dass Android sicherlich der Platz sicher ist. Android hat einen Marktanteil von 82,8% im zweiten Quartal 2015 gehabt, gefolgt von iOS mit nur 13,9%. Windows Phone weit abgeschlagen mit 2,6% und der Rest kann mit 0.7% vollkommen vernachlässigt werden. Wenn wir uns diese Zahlen genauer anschauen, dann könnten wir natürlich zu dem Schluss kommen, dass wir eigentlich nur für Android entwickeln müssen, das würde die Zahl von eben, dass wir eigentlich fünf mal mehr Anforderungen oder fünf mal mehr Arbeit als Kapazität haben, ein wenig besser ausschauen lassen. Wenn wir aber mal genauer über diese Zahlen nachdenken, die wir hier sehen, dann sind die eigentlich gar nicht so aussagekräftig. Denn, diese Zahlen hier, die wurden ermittelt auf der Basis der weltweiten Mobiltelefon Nutzer. Das bedeutet, hier fliessen auch, z.b Jugendliche mit rein, in irgendwelchen weit entfernten Ländern, die sich ein günstiges Einsteiger Smartphone gekauft haben, um da vielleicht irgendwelche Handy Spiele, oder ähnliches, draufzuspielen, die aber bei weitem natürlich nicht die Anwender sind, die wir in so einer typischen Geschäftsanwendung später haben. Wenn wir stattdessen jetzt aber einmal auf die Zahlen von Good Technologies schauen, und die bringen einmal im Quartal den sogenannten Mobility Index heraus, dann sehen wir, dass im geschäftlichen Umfeld, wenn wir uns dort die Tablet Betriebssystemverteilung mal anschauen, tatsächlich die Verteilung anders ausschaut. Wir haben hier 64% für iOS, 25% für Android, und 11% für Windows, bedeutet also, alle drei Betriebssysteme sind so stark vertreten, dass wir eigentlich keines davon vernachlässigen können, sondern unsere mobilen Apps natürlich im geschäftlichen Umfeld für alle drei Betriebssysteme schreiben müssen. Das stellt uns vor die Herausforderung, dass wir eben ganz genau durch die Vielfalt an Geräten für drei unterschiedliche Betriebssysteme, nämlich iOS, Android, und für die Universal Windows Platform entwickeln müssen, und dass eben für diese Plattformen immer anders entwickelt wird. Normalerweise wenn wir für iOS entwickeln, dann Nutzern wir Objective C oder Swift mit Xcode, für Android wäre es Java und Android Studio, und für die Universal Windows Platform eben C#/VisualBasic.NET oder C++ mit XAML und für die Universal Windows Platform eben C#/VisualBasic.NET oder C++ mit XAML oder Sie nutzen JavaScript und HTML. Das Problem an der Sache ist nur, die meisten Firmen haben begrenzte Entwicklerressourcen. Die Frage ist natürlich: Wie können wir eine Lösung finden für dieses Problem, dass wir viele Unternehmensapps schreiben müssen und diese sogar auf mehrere Plattformen bringen müssen? Ein Ansatz wäre, wir nutzten die nativen Hersteller-SDKs und Werkzeuge und entwickeln damit für jede Plattform die App erneut. Heisst also, für iOS nutzen wir Objective-C oder Swift mit Xcode. Für Android nutzen wir Java mit Android Studio oder Eclipse und für Windows C# oder VisualBasic.NET oder C++ mit Visual Studio. Wenn wir solche Apps mehrfach entwickeln, dann hat das allerdings zur Folge, dass wir in der Regel mehrere Teams benötigen. Denn zum einen ist es zeitlich meist gar nicht machbar, dass man nacheinander die Apps entwickelt, sondern meistens müssen die parallel entwickelt werden. Zum anderen ist es natürlich für ein Team sehr schwer, sowohl das Expertenwissen im iOS Umfeld als auch im Android Umfeld als auch im Windows Umfeld mit den jeweiligen Programmiersprachen darunter aufzubauen. D.h. aber auch, dass wir mehrere Codezweige haben. Und zwischen diesen Codezweigen können wir keinen Code teilen, denn das sind vollkommen unterschiedliche Programmiersprachen und Ansätze. Mehrere Codezweige bedeutet aber auch, dass Funktionalitäten vielleicht anders umgesetzt worden sind. Es soll in Software Projekten durchaus mal vorkommen, dass unterschiedliche Entwickler die Anforderungen unterschiedlich verstehen. Das bedeutet einfach, dass die gleiche App unter iOS vielleicht die Features ein wenig anders implementiert als unter Android oder unter Windows, und das schafft natürlich Unzufriedenheit bei den Benutzern, weil die sagen, auf meiner Plattform funktioniert die App so und so, aber auf der anderen Plattform funktioniert sie viel besser. Natürlich heisst das auch, dass wir einfach mehr Aufwand haben, weil eine Weiterentwicklung einer solchen App bedeutet immer, dass wir bei jeder neuen Anforderung, drei Codezweige anfassen müssen. Also es kommen unheimliche Kosten auf Unternehmen hinzu. Natürlich benutzen diese drei Teams, die wir dann haben, auch unterschiedliche Werkzeuge. Das bedeutet also, wenn der Windows Entwickler ganz gern mal schauen möchte, wie der iOS Entwickler das Ganze gelöst hat, dann hat der Windows Entwickler im Zweifelsfall gar nicht die Werkzeuge, um überhaupt die Quelltext Dateien vom iOS Entwickler sinnvoll öffnen zu können. Vielleicht hat er auch gar nicht das richtige Betriebssystem, um überhaupt die Arbeitsergebnisse sich ansehen zu können. Eine Alternative zu der nativen Entwicklung ist die native Entwicklung mit Xamarin. Eben hatten wir also die native Entwicklung mit den Hersteller Werkzeugen, jetzt haben wir die native Entwicklung mit Xamarin, das ist ein Werkzeug von Microsoft, bzw. von einer Firma, die Microsoft aufgekauft hat im März 2016. Und was die machen, ist folgendes. Wenn Sie mit Xamarin eine App entwickeln, dann können Sie C# durchgänglich über alle Plattformen als Programmiersprache nutzten, also unter Android, unter iOS, aber auch unter Windows ganz klar, unter Windows geht es sowieso. Und Sie können auf die Funktionalität des .NET Frameworks zugreifen, haben also schon eine sehr grosse Basisbibliothek, die Sie für alle Plattformen nutzen können. Natürlich können Sie den Code, den Sie dann in den unteren Schichten schreiben, also beim Datenzugriff oder in der Geschäftslogik, auch wieder verwenden in jeder der drei unterschiedlichen Apps, heisst also, das Problem der parallelen Codezweige wird eingegrenzt. Heisst auch, Sie brauchen nicht mehr drei verschiedenen Teams sondern Sie brauchen nur noch ein Team. Von der Technik her, schaut das so aus, dass Sie mit Xamarin sowohl in der Lage sind, native UIs direkt zu programmieren indem Sie direkt gegen die herstellerseitigen UI Bibliotheken programmieren. Sie können aber auch mit Xamarin Forms, eine abstrakte Oberflächensprache nehmen, die die Oberflächen mit XAML beschreibt, also einem XML Dialekt, und im Endeffekt werden zur Laufzeit dann aber die nativen UI Elemente gerändert. Egal für was Sie sich entscheiden, Sie bekommen immer native Performance weil Sie eben eine native App schreiben, und Sie haben 100% der nativen APIs im Zugriff. Xamarin ist eine tolle Sache, wenn Sie sowie schon C# Entwickler sind. Und wenn Sie auch schon XAML Kenntnisse haben, dann bietet es sich wirklich an. Wenn Sie allerdings Web Entwickler sind, dann ist vielleicht der hybride Ansatz für Sie spannender bei dem Sie mit HTML und JavaScript Ihre Apps schreiben. Bei solch einem hybriden Ansatz können Sie Ihren Code, also Ihren HTML und JavaScript Code, über alle Plattformen hinweg nutzen. Heisst also, Sie haben auch hier wieder nur eine Code Basis. Von der Grundidee her, wird eine Web Anwendung gerändert, in einer nativen Container Anwendung, heisst, je Plattform gibt es eine native Container Anwendung und in dieser nativen Container Anwendung ist jeweils ein Browser im Vollbild dargestellt. Heisst also, dieser Browser, der hat keine Adresszeile, der hat keine Titelzeile, der hat keine Kontextmenüs, o.ä. drin, sondern der rändert nur HTML und JavaScript und der Anwender, der hat dadurch die Illusion, er benutzt eine echte App und sieht halt eben nicht nur Browser, also auf seinem Smartphone. In so einer App möchte man häufig aber auch auf Gerätefunktionalitäten zugreifen. Z.b auf die Kamera, auf die aktuelle Geo Position, auf das Adressbuch, vielleicht möchte man auch mal telefonieren aus einer App heraus, und all sowas unterbindet der Browser natürlich. Wenn ich mit meinem Browser auf meinem Handy z.b. auf einer mobilen Webseite bin, dann möchte ich nicht, dass irgendwie die Kamera gestartet wird und mal ein paar Bilder genommen werden. In einer App ist so etwas natürlich essentiell und in einer hybriden Anwendung können Sie das auch lösen, nämlich über sogenannte Plug-ins, die dann eine JavaScript API zur Verfügung stellen. Wenn wir also noch einmal zusammenfassen, dann können wir sagen, wir werden in den nächsten Jahren einen Bedarf an Enterprise Mobile Apps haben, der weitaus höher ist als die Kapazitäten, die zur Verfügung stehen. Ausserdem müssen wir, wenn wir an die Zahlen von Good Technologies zurückdenken, für jede Plattform in der Regel eine App herausbringen, also für Android, für iOS und auch für Window. Und für jede dieser Plattformen wird nunmal vom Hersteller vorgegeben erstmal anders entwickelt. Und jetzt die Lösung steht uns bereit, dass wir entweder nativ für jede Plattform entwickeln, oder wir entwickeln hybrid mit HTML und JavaScript für jede Plattform eine Count Basis oder wir nutzen Xamarin. Noch mit Xamarin können wir für alle Plattformen mit einer Count Basis entwickeln.

Cross-Plattform-Apps mit Cordova, Ionic, TypeScript und Visual Studio

Steigen Sie in die App-Programmierung ein und kombinieren Sie die praktischen Tools.

2 Std. 45 min (23 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:14.11.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!