Erfahrungsbericht zur Entwicklung der iPhone-App “Smart Alarm”

Als Entwickler ist es immer eine spannende Aufgabe, für eine  junge und moderne Plattform wie dem iPhone OS zu entwickeln. Gerade durch die (lange Zeit und in gewisser Weise noch immer) einzigartigen Möglichkeiten, die die Hardware des iPhone und iPod touch bieten, gestaltet sich die Entwicklung einer Applikation für diese Plattform allerdings an gewissen Stellen auch als recht kompliziert. Die Programmiersprache, die Entwicklungsumgebung — alles Dinge, die eine gewisse Einarbeitung erfordern und an gewissen Stellen Steine in den Weg legen, die nur mühsam bei Seite geschafft werden können.

Neben den Projekten, die wir bei der Rheingans Company GmbH durchführen, habe ich als “Privatbeschäftigung” einen kleinen Ausflug in die Welt der iPhone-Softwarentwicklung gewagt. Das Ergebnis ist die seit Mitte vergangener Woche im App Store erhältliche Applikation Smart Alarm.

Smart Alarm ist eine Wecker-Applikation für das iPhone und den iPod touch, welche von den Möglichkeiten, die diese Geräte zur Verfügung stellen, auf innovative Weise Verwendung nimmt.

In diesem Artikel möchte ich Ihnen einen kurzen Eindruck darüber verschaffen, welche Hürden bei der Entwicklung einer iPhone-App am Beispiel von Smart Alarm überwunden werden müssen und wo die Vorteile bei der Entwicklung für diese Plattform liegen — er soll einen kleinen, aber feinen Erfahrungsbericht darstellen.

Dazu vorab einige Informationen zur Funktionsweise der Applikation:


Ein paar Worte zu Smart Alarm

Smart Alarm ist — das habe ich bereits verraten — eine Wecker-Applikation für das iPhone OS und nutzt den Beschleunigungssensor (Accelerometer) um die Schlafphase des Benutzers zu ermitteln und den Weckvorgang erst auszulösen, wenn sich der Benutzer in einer “leichten Schlafphase” befindet, also bereits dabei ist, aufzuwachen.

Einstellungsübersicht Smart AlarmDer Ablauf ist dabei folgender: Der Benutzer stellt den gewünschten Weckzeitpunkt und einen Zeitrahmen, in dem er in jedem Fall geweckt werden möchte, ein. Anschließend legt er das iPhone auf das Bett und wartet, bis er geweckt wird.

Sobald der eingestellte Zeitrahmen begonnen wird, “fragt” Smart Alarm den Beschleunigungssensor mehrmals in der Sekunde, in welcher Lage sich das iPhone befindet. Dabei muss erwähnt werden, dass der Beschleunigungssensor die Position in Form von Werten auf einer X-, Y- und Z-Achse übermittelt. Im Idealfall betragen diese Werte jeweils 0, sodass über diesen API-Aufruf ermittelt werden kann, wie groß die Abweichungen von diesen Standardwerten sind.

Da in den unterschiedlichen Schlafphasen unterschiedlich starke Bewegungen des Benutzers stattfinden und sich diese auf das iPhone übertragen, kann Smart Alarm so die aktuelle Schlafphase des Benutzers bestimmen.

Erkennt Smart Alarm eine tiefe Schlafphase, so wird der Weckzeitpunkt um einige Minuten nach hinten verlegt, ansonsten erfolgt er unmittelbar.


Erleichterungen und Hürden

Mit der Erwähnung des Beschleunigungssensors müssen an dieser Stelle einmal direkt lobende Worte für die Einfachheit, wie man die Werte des Sensors auslesen kann, ausgesprochen werden: Dazu ist nur ein kurzer API-Aufruf notwendig, welcher die besagten Werte zurückgibt und eine anschließende Verarbeitung ermöglicht.

Überhaupt stellt Apple mit zahlreichen einfach zu verwendenden APIs eine gute Möglichkeit zur schnellen Entwicklung von iPhone-Applikationen zur Verfügung. So können schnell die Hardware-Features des iPhone und iPod touch verwendet werden, ohne sich mit deren technischer Seite großartig beschäftigt zu haben.

Schnell konnte so im Fall von Smart Alarm der Annäherungssensor (Proximity Sensor) verwendet werden, welcher das Display des Gerätes dunkel schaltet und so für Energieeinsparungen sorgt.

Doch auch zum Thema Verwendung von Apple-APIs gibt es Negativbeispiele:

Übersichtliche Darstellung des WeckzeitpunktsDie CFNetwork-API (Dokumentation und weitere Erklärungen), welche die Kommunikation mit Webservern ermöglicht, ist ein solches. Hier wird einiges an Wissen abverlangt und einige Stunden Recherche in den (übrigens vorbildlichen) Dokumentationen von Apple vorausgesetzt. Das ist allerdings ein Problem, welches nicht nur Objective-C, der Programmiersprache des iPhone, betrifft, sondern auch bei anderen Sprachen vorhanden ist. Dort hilft man sich dann oftmals mit Frameworks weiter, welche einen einiges an Programmierarbeit ersparen bzw. stark vereinfachen. Bei Objective-C kann man diese elegante Abkürzung natürlich auch nehmen — für den konkreten Fall leistet der, wie er vom Entwickler selbt genannt wird, “Wrapper” ASIHTTPRequest gute Dienste.

Am ungewohntesten ist zu Beginn jedoch die Syntax der verwendeten Programmiersprache Objective-C und der Aufbau und Funktionsumfang der Entwicklungsumgebung Xcode. Mit der Zeit lernt man jedoch auch deren Vorteile zu schätzen und wie die Nachteile kompensiert werden können.

So bleibt abschließend zu sagen, dass die Entwicklung für die iPhone-Plattform eine spannende Herausforderung ist, der man sich gerne annimmt und die beeindruckend schnell Ergebnisse ermöglicht.

Smart Alarm ist im App Store erhältlich und setzt ein iPhone oder iPod touch mit iPhone OS 3.0 oder höher vorraus.

Dieser Beitrag wurde unter Allgemein, Projekte, Software abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>