Statististiken zur Verbreitung von Smartphones

Juli 29, 2010

Smartphones weltweit

  • 2. Quartal 2010
    • Verkauf: ca. 60 Millionen Smartphones. Steigerung um 43 Prozent gegenüber dem Vorjahreszeitraum. Anteil der Smartphones am Handymarkt: 19 Prozent. Quelle: Heise online
  • 1. Quartal 2010
    • Verkauf: 314,7 mobile Endgeräte, davon 54,3 Millionen Smartphones, was einem Zuwachs von 48,7 Prozent entspricht. Quelle: PC-Welt, Gartner

Smartphones Deutschland

  • Der Absatz von Smartphones steigt 2010 in Deutschland auf 8 Millionen Einheiten. Das entspricht einem Zuwachs von 47 Prozent gegenüber dem Vorjahr. Quelle: Bitkom,EITO

iPhones weltweit

  • 2. Quartal 2010
    • Verkauf: 8,4 Millionen
    • Steigerung um 61 Prozent gegenüber dem Vorjahreszeitraum
    • Anteil am Handymarkt: 14,1 Prozent
  • Apple hat in 23 Tagen (vom 24. Juni – 16. Juli 2010) 3 Millionen iPhones verkauft. Das sind mehr als 130.000 Geräte pro Tag. Quelle: John Batelle’s Searchblog

Android Smartphones

  • Juni 2010: Jeden Tag werden 160.000 Android-Smartphones aktiviert. Das sind ungefähr 2 Geräte pro Sekunde. Quelle: The Official Google Blog

jQTouch Tutorials

Juli 21, 2010

Einige Tutorials für den Einstieg in jQTouch.

  1. http://building-android-apps.labs.oreilly.com/
    Englisch
    Ebook von Jonathan Stark
  2. http://www.netway-media.com/blog/…
    Deutsch
    von Birger Krah
  3. http://www.youtube.com/watch?v=6X4K2MQsSeI
    Englisch
    Video auf YouTube von Janathan Stark
  4. http://www.tutorialhero.com/click-68210-build…
    Englisch
    den Namen des Autors kann ich nicht finden
  5. http://surgeworksmobile.com/cross-platform/…
    Englisch
    von Brad Midglay
    Registrationsformular, Intro Image / Splash Screen

Präzise GPS-Daten über die W3C Geolocation API bekommen

Juli 20, 2010

Das W3C hat eine Geolocation API spezifiziert. Die Details finden sich hier:
http://dev.w3.org/geo/api/spec-source.html

Hier ist ein Wikipedia-Beispiel für die Anwendung der API:
http://en.wikipedia.org/wiki/W3C_Geolocation_API#How_does_Geolocation_work.3F

Wenn ein Browser diese API unterstützt, dann ist es möglich, über den Browser an die GPS-Daten eines Smartphones zu kommen. Es sind in der API zwei Methoden definiert, um an Geo-Daten zu kommen:

  • getCurrentPosition
  • watchPosition

Der Unterschied zwischen den beiden Methoden liegt vor allem in der Häufigkeit, mit der Geo-Daten ermittelt und geliefert werden. So kann man mit getCurrentPosition einmal die Position abfragen, watchPosition hingegen liefert hingegen immer wieder neue Daten. So lange, bis man die Funktion explizit abschaltet.

Meine Erfahrung mit den beiden Methoden hat mir gezeigt, dass es noch einen weiteren Unterschied gibt. Ich habe diesen Unterschied auch teilweise in Diskussionsbeiträgen bestätigt gesehen, eine Erklärung habe ich allerdings nicht gefunden. Worin besteht dieser Unterschied?

Die ersten Koordinaten, die die beiden Methoden liefern, kamen in meinen Tests nie vom GPS-Sender des Smartphones. Stattdessen lieferte das Smartphone Daten, die über den benutzten Funkturm ermittelt wurden. Es wird festgestellt, über welchen Funkturm das Smartphone ins Netz geht. Da bekannt ist, wo sich der Funkturm befindet, kann anhand dieser Information ungefähr ermittelt werden, wo sich das Handy befindet. Diese Lokalisierung ist allerdings ziemlich ungenau. Sie kann mehrere Kilometer vom tatsächlichen Standort entfernt liegen. Für manche Anwendungen mag das genau genug sein, für andere sicher nicht.

Da getCurrentPosition die Daten per Definition nur einmal ermittelt, gibt es ein Problem. Und das Problem lautet: getCurrentPosition liefert nicht die GPS-Daten.

Wenn ich die GPS-Daten benötige, weil die Funkturmlokalisierung zu ungenau ist, dann gibt es zwei Möglichkeiten:

1. Ich rufe getCurrentPosition so lange immer wieder auf, bis es irgendwann die GPS-Daten liefert. Meine Erfahrung ist, dass dies tatsächlich passiert.

2. Ich benutze watchPosition, denn watchPosition wiederholt sich wie beschrieben von selbst immer wieder.

Der Unterschied, den ich weiter oben erwähnt habe, besteht darin, dass bei meinen Tests watchPosition die GPS-Daten wesentlich schneller lieferte als getCurrentPosition. Möglicherweise liegt der Grund darin, dass watchPosition in derselben Zeiteinheit häufiger gestartet wurde. Das ist aber nur eine Vermutung.

Zusammenfassend läßt sich also anhand meiner Erfahrungen sagen:

  1. Es ist möglich, über die W3C Geolocation API an die GPS-Daten zu kommen.
  2. Die ersten Daten, die die beiden dafür vorgesehenen Methoden liefern, sind nie GPS-Daten.
  3. Irgendwann kommen GPS-Daten.
  4. Über einen einmaligen Aufruf von getCurrentPosition kommt man nicht an GPS-Daten.

Präziser läßt sich das für mich leider nicht formulieren. Wie lange genau es dauert, bis GPS-Daten kommen, hängt mindestens von der Hardware, dem Wetter und dem Standort (unter freiem Himmel oder in einem Gebäude) ab. Nur, um mal einen ungefähren Anhaltswert zu geben: Bei meinen Tests dauert es unter freiem Himmel so um die 15 Sekunden.

Ich habe eine kleine Web App geschrieben, die in iPhones (jedenfalls den neueren) und Android Smartphones mit GPS funktionieren sollte. Sie ermittelt die aktuelle Position via GPS, zeigt diese Position auf einer Google Map an und versucht die dazu passende Adresse via reverse Geocoding herauszufinden.

Ich teste mit dem HTC Hero und Android Vers. 2.1. Damit läuft die App sehr stabil. Manchmal hakt sie, wenn die Stromsparfunktion den Bildschirm ausgeschaltet hat. Normalerweise fängt sie sich wieder, wenn man kurz auf den Home-Screen wechselt und dann den Browser erneut öffnet. Über Feedback würde ich mich freuen.

Wer also einen Blick auf die Web App werfen möchte: Sie ist hier.

Einfach auf “Where am I?” drücken. Dann kommt in rot “searching…”. Dann warten… :-)

So long,
Rolf D.

http://www.rolfdohrmann.de

Softwareentwicklung für Smartphones mit PhoneGap

Juli 20, 2010

Was ist PhoneGap?

Vor etwas über einer Woche habe ich in diesem Blog über Appcelerator/Titanium geschrieben. Mein Fazit war: trotz schwieriger Installation und dürftiger Doku ist Titanium eine interessante Software, wenn man native Apps für Android Smartphones oder iPhones ohne Kenntnisse von Java oder Objective C entwickeln will. Zielgruppe: Web Developer.

Kurz nachdem ich die Artikel über Titanium geschrieben hatte, stolperte ich über die Bücher von Jonathan Stark. In ihnen wird beschrieben, wie man Web Apps für iPhone und Android entwickeln kann. Es ist aber auch jeweils ein Kapitel enthalten, in dem beschrieben wird, was man tun kann, um aus der Web App eine native App zu machen. Und dieses kleine Kunststück soll PhoneGap schaffen. Ok, der Köder war geschluckt. Das musste ich ausprobieren.

Auf der PhoneGap Website steht in etwa (frei übersetzt):

PhoneGap ist ein Open Source Entwicklungs-Framework zum Erstellen von Apps für verschiedene mobile Endgeräte. Baue Apps in HTML, CSS, JavaScript und nutze dennoch die Core Features der SDKs von  iPhone/iTouch, iPad, Google Android, Palm, Symbian und Blackberry.

Als da wären GPS, Kamera, Audio, etc.

Plug and Play

war gestern, es lebe die Kommandozeile.

Ohne viele Umschweife: ohne Kommandozeile geht gar nichts. Entscheide Dich jetzt :-) Wenn Du nichts mit der Kommandozeile zu tun haben willst, dann kannst Du Dich jetzt anderen Dingen zuwenden. Denn PhoneGap ohne Kommandozeile – ich denke, das geht nicht.

Insofern kannst Du Dir jetzt eventuell die Installation sparen. Und die ist keine Kleinigkeit. Wenn’s doch nur PhoneGap wäre. Aber es kommt wieder so einiges zusammen. Zum Glück musste ich nicht bei Null anfangen. Die Java JDK und Android SDK hatte ich ja schon wg. Titanium. Es mussten dann noch Eclipse (Entwicklungsplatform), ein Plugin für Eclipse (ADT – Android Development Tools), Apache Ant, Ruby und schließlich PhoneGap installiert und konfiguriert werden.

Sei doch nicht so native

Ein Klick und aus der Web wurde eine native App. Schön wär’s. Die Umwandlung einer Web App in eine native App erfordert so einige Schritte. Und mehrfach ist dabei die  bereits erwähnte Kommandozeile beteiligt. Wobei ich nicht ausschließen kann, dass es verschiedene Wege zum Ziel geben könnte. Und möglicherweise ist meiner etwas umständlich. Ich weiß es nicht mit Sicherheit – aber mein Weg funktioniert, und das ist immerhin auch schon viel wert. Dies sind die Schritte:

  • Bereitstellung der Web App
    Alle Files, die benötigt werden, müssen innerhalb dieser Ordnerstruktur sein.
  • Umwandlung der Webapp in eine Struktur, die in Eclipse importiert werden kann
    In diesem Prozess werden neue Ordner angelegt und Dateien erzeugt. Wird über Kommandozeile gestartet.
  • Import in Eclipse
    Import dieser neu erzeugten Struktur in Eclipse. Dort ist noch eine kleine Konfigurationseinstellung vorzunehmen.
  • Bearbeitung in Eclipse (oder einem anderne Editor)
    Nun kann man die Dateien, falls es denn erforderlich ist, auch noch weiter bearbeiten. Eclipse beobachtet das und erstellt on the fly jeweils ein aktuelles Installationspaket. Bei Android sind das die Dateien mit der Endung apk.
    Wenn man sich an die Installationsanleitung hält, dann wird man feststellen, dass Eclipse in der installierten Version kein Syntax-Highlighting für HTML, CSS und JavaScript bietet. Wer sich mit Eclipse auskennt, kann dieses Feature sicherlich nachinstallieren (bin für entsprechende Tips dankbar…).
  • Testen im Emulator oder auf dem Smartphone.
    Ich teste auf meinem Smartphone. Dazu installiere ich die apk-Datei via Kommandozeile auf meinem Handy.

Funktioniert

Erstaunlich, aber es funktioniert. Phonegap (und all die anderen Beteiligten) machen aus einer Web App eine native App. Und im Gegensatz zu Titanium ist die eigentliche Programmierung bedeutend einfacher, denn man muss NICHTS zusätzlich schreiben. Bei Titanium muss erst ein Fenster erstellt werden, dann eventuell ein Webview, in den man die Web App lädt. Man hat da mit einigen Dingen zu tun, die man erst wieder lernen muß und die auch eventuell Probleme bereiten. Phonegap ist da einfacher. Außer den Methoden zum Ansprechen der Kern-Features (Kamera, etc) muss (zunächst) nicht viel dazu gelernt werden. Der Installationsaufwand ist beträchtlich. Das Handling gewöhnungsbedürftig (Kommandozeile). Aber das Ergebnis ist gut, es funktioniert. Daumen hoch und Verneigung vor den PhoneGap Team. Gute Arbeit!!

Links:

http://www.phonegap.com/

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org