Eine Woche harte Arbeit zahlt sich aus: In der Zeit vom 21.02.2011 bis 25.02.2011 konnte die OpenSource JavaScript Bibliothek
OpenLayers dahingehend erweitert werden, dass nun auch mobile Endgeräte unterstützt werden. Damit ist es möglich, das volle Potenzial von webbasierten Kartenapplikationen auch für Nutzer sogenannter
Smartphones bereitzustellen.
Initiiert und organisiert wurde der Mobile Code Sprint federführend von Cedric Moullet (
Swisstopo) und Claude Phillipona (
camptocamp), die dank der
zahlreichen Sponsoren (darunter auch terrestris) eine Gruppe von insgesamt 15 JavaScript-Entwicklern in die
Ecole Polytechnique Fédérale (EPFL) nach Lausanne einladen konnten. Von terrestris durfte dankenswerterweise ich, Marc Jansen, in die Schweiz reisen.
Die Teilnehmer und Organisatoren des Code Sprints
Die Ziele, die sich die Truppe um die Kernentwickler Christopher Schmidt, Tim Schaub, Andreas Hocevar, Eric Lemoine, Pierre Giraud, Frédéric Junod und Bart van den Eijnden gesetzt hatten, waren hoch:
- Bedienung der durch OpenLayers dargestellten Karte mittels Fingerspitzengesten. Die OpenLayers-Karte soll sich wie eine native Smartphone-Applikation (sogenannte App) anfühlen
- Exemplarische Oberflächengestaltung analog zu der visuellen Darstellung von nativen Apps mit Hilfe der bekannten und stark verbreiteten JavaScript-Bibliotheken Sencha Touch und jQuery Mobile
- Optimierung der Ladezeiten einer OpenLayers-Kartenanwendung
- Performancesteigerungen in internen Programmierabläufen, um eine flüssige Bedienung bereitzustellen
- Evaluierung und ggfs. Verwendung neuer Technologien wie die Geolocation API, Web Storage, CSS-Transformationen, etc.
- Unterstützung auch für ältere Smartphones ohne Multitouch-Oberflächen, wie sie etwa iPhones oder einige Android-Geräte verschiedenster Hersteller bieten
- Aktualisierung und Neuentwicklung zahlreicher Beispiele, die die Verwendung von OpenLayers zeigen.
OpenLayers auf dem IPhone
Die oben aufgeführten Ziele konnten weitestgehend erreicht werden, sodass OpenLayers nun für die Entwicklung von mobilen webbasierten Kartenapplikationen genutzt werden kann. Am einfachsten kann man die neue oder geänderte Funktionalität anhand von Beispielen verdeutlichen:
- Mobile Navigation (Pinch, Pan, DoubleTap, TapToPan)
- komplexere Oberflächen mit Sencha Touch und Mobile jQuery
- Geolocation
- weitere mobile Beispiele in an mobile Endgeräte angepasster Auflistung
Um die initiale Ladezeit von Karten mit OpenLayers zu reduzieren, wird bei der Erzeugung spezieller OpenLayers-Varianten zukünftig der
JavaScript-Kompressor und Optimierer Google Closure eingesetzt. Daneben gab es durch die Integration von Tools wie
csstidy und
pngcrush Verbesserungen in den externen CSS-Stylesheets und den verwendeten Grafiken.
Bezüglich der Optimierung interner Abläufe ist exemplarisch die Reduzierung der von JavaScript zum Verschieben der Karte benötigten Zeit in Funktionen um unglaubliche 75 % zu nennen. Das so genannte Panning (vgl. obige Beispiele) fühlt sich hierdurch sehr natürlich an und sorgt für eine gute Benutzererfahrung. Auch OpenLayers-Karten, die nicht primär von Smartphones angefragt werden, profitieren von dieser Verbesserung.
Die Änderungen, die gemeinsam entwickelt, qualitätsgesichert und dokumentiert wurden, sind derzeit noch nicht in einem neuen Release OpenLayers 2.11 veröffentlicht. Es ist jedoch mit der Bereitstellung einer entsprechenden Version in Kürze zu rechnen.
An dieser Stelle möchte ich mich als Mit-Sprinter herzlich bei den Organisatoren, Sponsoren und sonstigen Teilnehmern des Sprints bedanken. Die technischen Gegebenheiten am EPFL, die familiäre Atmosphäre und der unermüdliche Einsatz der Teilnehmer trugen dazu bei, OpenLayers weiterzuentwickeln und für die mobile Zukunft zu rüsten.
01.03.2011: Kernentwickler Pierre Giraud und Frédéric Junod hinzugefügt, Rechtschreibung