In Teil 1 wurden die grundlegende Problematik der Cross-Plattform-Entwicklung und die drei möglichen Lösungsansätze mit Web-, Hybrid- und Nativ-Apps beleuchtet. In diesem 2. Teil geht es um Möglichkeiten der plattformübergreifenden Programmierung von Geo-Apps mit ArcGIS. Esri stellt dazu eine Reihe von Entwicklerwerkzeugen zur Verfügung:
ArcGIS APIs und SDKs für Cross-Plattform-Apps
Das ArcGIS Portfolio beinhaltet eine Reihe von Entwickler-APIs und SDKs zur Erstellung von benutzerdefinierten Geo-Apps für verschiedenste Plattformen und Geräte wie Smartphones, Tablets, Webbrowser und Desktops. Diese Optionen bieten die nötige Flexibilität, um für das jeweilige Client-System die Funktionalität umzusetzen, die genau auf die Anforderungen der Nutzer zugeschnitten ist.
Web-Apps und Hybride-Apps
Die ArcGIS API for JavaScript bietet effiziente Unterstützung beim Erstellen und Bereitstellen von intuitiven mobilen und Web-Apps, bei denen Content und Services von ArcGIS zum Einsatz kommen. Damit lassen sich Apps zum Anzeigen und Bearbeiten von ArcGIS Karten, für den Zugriff auf Feature-Services, zum Geokodieren von Orten und Adressen oder die Verwendung von Geoverarbeitungsservices entwickeln. Diese Anwendungen unterstützen gängige Webbrowser wie Chrome, Firefox, Internet Explorer (7 oder höher), Edge, Safari (3 oder höher) sowie mobile Browser, so dass sie überall und auf verschiedensten Geräten genutzt werden können.
Mit Esri Leaflet, einer leichtgewichtigen Alternative zum ArcGIS API for JavaScript, stellt Esri Open-Source-Werkzeuge zum Einbinden von ArcGIS Services in Leaflet bereit. Leaflet ist eine freie JavaScript Bibliothek für die Darstellung interaktiver Karten in Web-Apps.
Beide Web-APIs können auch zur Erstellung von Hybride-Apps genutzt werden.
Native-Apps
ArcGIS bietet ArcGIS Runtime SDKs für Anwendungs-Frameworks, die bei der plattformübergreifenden Entwicklung zum Einsatz kommen. Dank dieser Optionen genügt es, Apps einmal zu entwickeln und anschließend ganz einfach für verschiedene Plattformen bereitzustellen. Mithilfe dieser ArcGIS Entwicklerwerkzeuge lassen sich Native-Apps erstellen, über die überall und jederzeit auf ArcGIS Inhalte oder Features zugegriffen werden kann. Dabei können gleichzeitig die systemeigenen Funktionen der Geräte wie die integrierte GPS-Software, Kamera, Messaging-Dienste und vieles mehr zum Einsatz kommen. Bei eingeschränkter Internetverbindung können Karten und Daten trotzdem abgerufen oder bearbeitet werden; Änderungen werden später durch Synchronisierung übernommen.
Mit dem ArcGIS Runtime SDK for Java können fokussierte Mapping- und Analyseanwendungen für Windows, Linux und mit dem nächsten Major Release (Quartz) auch für Mac OS X erstellt werden. Das SDK beinhaltet Beispielcode und Projektvorlagen, in denen die Implementierung der API demonstriert wird, sowie Best Practices für die Programmierung, um Benutzern den Einstieg zu erleichtern. Für die Anwendungsentwicklung stehen außerdem verschiedene SDK-JARs und ein Eclipse-Plug-In zur Verfügung.
Das ArcGIS Runtime SDK for .NET ermöglicht die Erstellung von ArcGIS Anwendungen für Windows Desktop, Windows RT (Store) und Windows Phone. Dank dem Universal Apps-Konzept von Windows 10 können native Cross-Plattform-Apps erstellt werden, die unabhängig vom Formfaktor auf allen Windows 10-Geräten ausführbar sind.
Das ArcGIS Runtime SDK for Xamarin ist das jüngste Mitglied der ArcGIS Runtime Familie und steht zum Zeitpunkt der Erstellung dieses Blogs als Tech Preview für alle Interessierten zum Download bereit. Mit Xamarin können .NET Entwickler Cross-Plattform-Apps neben Windows auch für iOS und Android erstellen. Dieses ArcGIS Runtime SDK ist eigenständig, basiert aber im Kern auf dem ArcGIS Runtime SDK for .NET.
Mit dem ArcGIS Runtime SDK for Qt/QML lassen sich Cross-Plattform-Apps für Android, iOS, OS X, Windows und Linux entwickeln. Die Apps unterstützen die modulare Bereitstellung d. h. es müssen nur die Teile der Bibliothek gepflegt werden, die für die Apps erforderlich sind.
App Builder für Cross-Plattform-Apps
Mit den APIs und SDKs müssen Apps immer „from scratch“ programmiert oder der Code bei kleinsten Änderungen wieder angefasst werden. Oftmals muss aber nur die Farbe, Beschreibung oder das Logo für ein anderes Unternehmen geändert oder Funktionen der App für verschiedene Anwendungsszenarien aktiviert oder deaktiviert werden. Hierbei bieten sich Template-basierte App Builder an, mit denen Apps ohne jegliches Entwickler-Know-How konfiguriert und erstellt werden können.
Der Web AppBuilder for ArcGIS ist eine sofort verwendbare Anwendung zum Erstellen fokussierter ArcGIS Web-Apps mithilfe von intuitiven Widgets und Werkzeugen. Mit Web AppBuilder for ArcGIS können eigene Apps auf ArcGIS Online oder dem eigenen WebServer gehostet und auf jedem Endgerät genutzt werden. Ebenso lassen sich konfigurierbare Web-App-Vorlagen für die Wiederverwendung und unternehmensweite Nutzung erstellen. Mit dem Web AppBuilder for ArcGIS erstellte Web-Apps können um eigene Funktionen erweitert werden. Das Ganze basiert auf der weiter oben beschriebenen ArcGIS API for JavaScript.
Mit dem AppStudio for ArcGIS können native Cross-Plattform-Apps für Android, iOS, Windows, Mac OS X oder Linux konfiguriert und erstellt werden. Mit dem eigenen Branding können die Apps in allen gängigen App Stores veröffentlicht werden, ganz ohne Programmierkenntnisse! AppStudio for ArcGIS bietet eine Reihe von App-Templates. Entwickler können mit Hilfe des ArcGIS Runtime SDK for Qt/QML eigene App-Templates erstellen. Weiterhin bietet AppStudio for ArcGIS für jede Plattform einen AppStudio Player, mit dem sich die App-Templates abspielen lassen. Damit ist es nicht unbedingt nötig, die eigene App zu kompilieren und in die jeweiligen App Stores einzustellen.
Eine Antwort auf die große Frage: „Was nehme ich denn nun?“ kann leider nicht pauschal gegeben werden. Das Ziel ist es, in der heutigen heterogenen IT-Landschaft mit geringem Entwicklungsaufwand so viele wie möglich zu erreichen. Dabei dürfen Dinge wie Zielgruppe, Performance, Funktionalität und Nutzerfreundlichkeit nicht vernachlässigt werden. Die Frage sollte daher zuerst lauten: „Was will ich erreichen?“. Esri bietet Lösungen für plattformübergreifende Web-, Hybrid- und Nativ-Apps an. Mit den AppBuildern können Entwickler-Workflows vereinfacht und verschlankt werden. Auf ArcGIS for Developers, dem zentralen Einstiegstor für ArcGIS Entwickler, gibt es ausführliche Informationen und Hilfe zu den verschiedenen Werkzeugen. Mit einer kostenlosen Developer Subskription können diese getestet werden.