Startseite‎ > ‎

Entwicklungs- und Laufzeitumgebung

App

Butterfly lag zunächst als Android-Anwendung vor. Da der aktuelle Smartphone-Markt jedoch stark fragmentiert ist und für eine VGI-App möglichst viele Freiwillige angesprochen werden sollen, erfolgte die Entwicklung nicht als native Andorid-App, sondern mit Hilfe von PhoneGap. Dieses erlaubt die Erstellung einer portablen App mit Hilfe von bewährten und standardisierten Webtechniken (HTML5, JavaScript, CSS) und bietet dabei eine über alle wichtige Smartphone-Plattformen hinweg einheitliche API, z.B. für den Gerätezugriff (Geolocation, Kamera etc.).

Durch kleine Code-Änderungen konnte Butterfly so auch an iOS angepasst werden:


Die Unterstützung weiterer PhoneGap-Plattformen (z.B. Windows Phone, Blackberry, Symbian) soll nach Bedarf überprüft werden.

Tests der als Open Source vorliegenden JavaScript-Karten-Bibliothek OpenLayers haben leider ergeben, dass diese in der Version 2.10 noch nicht für den Betrieb auf Smartphones bzw. in einer Touch-Umgebung geeignet ist (Performance-Probleme, keine Touch-Unterstützung; Verbesserungen diesbzgl. sind laut Entwicklern in Version 2.11 eingebaut; OpenLayers wird demnächst bzgl. Mobil-Tauglichkeit erneut getestet). Daher fiel die Entscheidung, als Kartenkomponente die Google Maps JavaScript-API in Version 3 einzusetzen, die gut auch für mobile SmartPhone- und Tablett-Plattformen optimiert ist.

Bewusst wurde auf den Einsatz weiterer JavaScript-Bibliotheken verzichtet, so dass ausser zu PhoneGap (derzeit Version 1.2) und zur Google Maps JavaScript API (Version 3) keine weiteren Abhängigkeiten bestehen.

Bzgl. IDE besteht bei Entwicklung für Android kaum eine Wahl, Eclipse mit den entsprechenden Plugins ist das Tool der Wahl.

Server

Da auf der mobilen Seite Webstandards zum Einsatz kommen, sollte aus Aufwands- und Performance-Gründen JSON bzw. GeoJSON als Datenformat für die Ajax-Requests zum Einsatz kommen. Mit CouchDB steht eine inzwischen bewährte NoSQL-Datenbank zur Verfügung, deren API auf HTTP und JSON beruht und für die mit GeoCouch eine Variante mit performanten räumlichen Abfragemöglichkeiten existiert. Durch die Verwendung von CouchDB/ GeoCouch konnte auf der Serverseite auf eine Eigenentwicklung verzichtet werden.