<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog der Rheingans Company GmbH &#187; Software</title>
	<atom:link href="http://blog.rcgmbh.com/tag/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rcgmbh.com</link>
	<description>Softwareentwicklung und digitale Kommunikationslösungen aus Bielefeld</description>
	<lastBuildDate>Wed, 08 Dec 2010 13:30:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Erfahrungsbericht zur Entwicklung der iPhone-App &#8220;Smart Alarm&#8221;</title>
		<link>http://blog.rcgmbh.com/erfahrungsbericht-zur-entwicklung-der-iphone-app-smart-alarm/</link>
		<comments>http://blog.rcgmbh.com/erfahrungsbericht-zur-entwicklung-der-iphone-app-smart-alarm/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 12:23:50 +0000</pubDate>
		<dc:creator>Patrick Scheips</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[AppStore]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Smart Alarm]]></category>
		<category><![CDATA[Wecker]]></category>

		<guid isPermaLink="false">http://blog.rcgmbh.com/?p=213</guid>
		<description><![CDATA[Als Entwickler ist es immer eine spannende Aufgabe, f&#252;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&#246;glichkeiten, die die Hardware des iPhone und iPod &#8230; <a href="http://blog.rcgmbh.com/erfahrungsbericht-zur-entwicklung-der-iphone-app-smart-alarm/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Als Entwickler ist es immer eine spannende Aufgabe, f&#252;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&#246;glichkeiten, die die Hardware des iPhone und iPod touch bieten, gestaltet sich die <strong>Entwicklung einer Applikation</strong> f&#252;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&#252;hsam bei Seite geschafft werden k&#246;nnen.</p>
<p>Neben den Projekten, die wir bei der Rheingans Company GmbH durchf&#252;hren, habe ich als &#8220;Privatbesch&#228;ftigung&#8221; einen kleinen Ausflug in die Welt der <a title="iPhone Apllikation / Software f&#252;r Radio.de" href="http://www.rcgmbh.com/unternehmen/news/details/iphone-application-fuer-radiode/">iPhone-Softwarentwicklung</a> gewagt. Das Ergebnis ist die seit Mitte vergangener Woche <a href="http://itunes.apple.com/de/app/smart-alarm/id323890885?mt=8">im App Store erh&#228;ltliche</a> Applikation <em>Smart Alarm</em>.</p>
<p><span id="more-213"></span></p>
<p><em>Smart Alarm</em> ist eine Wecker-Applikation f&#252;r das iPhone und den iPod touch, welche von den M&#246;glichkeiten, die diese Ger&#228;te zur Verf&#252;gung stellen, auf innovative Weise Verwendung nimmt.</p>
<p>In diesem Artikel m&#246;chte ich Ihnen einen kurzen Eindruck dar&#252;ber verschaffen, welche H&#252;rden bei der Entwicklung einer iPhone-App am Beispiel von <em>Smart Alarm</em> &#252;berwunden werden m&#252;ssen und wo die Vorteile bei der Entwicklung f&#252;r diese Plattform liegen — er soll einen kleinen, aber feinen Erfahrungsbericht darstellen.</p>
<p>Dazu vorab einige Informationen zur Funktionsweise der Applikation:</p>
<p><strong><br />
Ein paar Worte zu <em>Smart Alarm</em></strong></p>
<p><em>Smart Alarm</em> ist — das habe ich bereits verraten —<strong> eine Wecker-Applikation f&#252;r das iPhone</strong> OS und nutzt den Beschleunigungssensor (Accelerometer) um die Schlafphase des Benutzers zu ermitteln und den Weckvorgang erst auszul&#246;sen, wenn sich der Benutzer in einer &#8220;leichten Schlafphase&#8221; befindet, also bereits dabei ist, aufzuwachen.</p>
<p><a href="http://blog.rcgmbh.com/wp-content/uploads/2009/12/fourth-design-settings-configured.PNG" rel="lightbox[213]"><img class="alignright size-medium wp-image-232" style="border: 2px solid black; padding:0 !important;" title="Einstellungs&#252;bersicht Smart Alarm" src="http://blog.rcgmbh.com/wp-content/uploads/2009/12/fourth-design-settings-configured-200x300.PNG" alt="Einstellungs&#252;bersicht Smart Alarm" width="200" height="300" /></a>Der Ablauf ist dabei folgender: Der Benutzer stellt den gew&#252;nschten Weckzeitpunkt und einen Zeitrahmen, in dem er in jedem Fall geweckt werden m&#246;chte, ein. Anschlie&#223;end legt er das iPhone auf das Bett und wartet, bis er geweckt wird.</p>
<p>Sobald der eingestellte Zeitrahmen begonnen wird, &#8220;fragt&#8221; <em>Smart Alarm</em> den Beschleunigungssensor mehrmals in der Sekunde, in welcher Lage sich das iPhone befindet. Dabei muss erw&#228;hnt werden, dass der Beschleunigungssensor die Position in Form von Werten auf einer X-, Y- und Z-Achse &#252;bermittelt. Im Idealfall betragen diese Werte jeweils 0, sodass &#252;ber diesen API-Aufruf ermittelt werden kann, wie gro&#223; die Abweichungen von diesen Standardwerten sind.</p>
<p>Da in den unterschiedlichen Schlafphasen unterschiedlich starke Bewegungen des Benutzers stattfinden und sich diese auf das iPhone &#252;bertragen, kann <em>Smart Alarm</em> so die aktuelle Schlafphase des Benutzers bestimmen.</p>
<p>Erkennt <em>Smart Alarm</em> eine tiefe Schlafphase, so wird der Weckzeitpunkt um einige Minuten nach hinten verlegt, ansonsten erfolgt er unmittelbar.</p>
<p><strong><br />
Erleichterungen und H&#252;rden</strong></p>
<p>Mit der Erw&#228;hnung des Beschleunigungssensors m&#252;ssen an dieser Stelle einmal direkt lobende Worte f&#252;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&#252;ckgibt und eine anschlie&#223;ende Verarbeitung erm&#246;glicht.</p>
<p>&#220;berhaupt stellt Apple mit zahlreichen einfach zu verwendenden APIs eine gute M&#246;glichkeit zur <strong>schnellen Entwicklung von iPhone-Applikationen</strong> zur Verf&#252;gung. So k&#246;nnen schnell die Hardware-Features des iPhone und iPod touch verwendet werden, ohne sich mit deren technischer Seite gro&#223;artig besch&#228;ftigt zu haben.</p>
<p>Schnell konnte so im Fall von <em>Smart Alarm</em> der Ann&#228;herungssensor (Proximity Sensor) verwendet werden, welcher das Display des Ger&#228;tes dunkel schaltet und so f&#252;r Energieeinsparungen sorgt.</p>
<p>Doch auch zum Thema Verwendung von Apple-APIs gibt es Negativbeispiele:</p>
<p><a href="http://blog.rcgmbh.com/wp-content/uploads/2009/12/fourth-design-alarm-monitor-configured.PNG" rel="lightbox[213]"><img class="alignleft size-medium wp-image-231" style="border: 2px solid black;padding:0 !important;" title="&#220;bersichtliche Darstellung des Weckzeitpunkts" src="http://blog.rcgmbh.com/wp-content/uploads/2009/12/fourth-design-alarm-monitor-configured-200x300.PNG" alt="&#220;bersichtliche Darstellung des Weckzeitpunkts" width="200" height="300" /></a>Die CFNetwork-API (<a rel="nofollow" href="http://developer.apple.com/mac/library/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html">Dokumentation und weitere Erkl&#228;rungen</a>), welche die Kommunikation mit Webservern erm&#246;glicht, ist ein solches. Hier wird einiges an Wissen abverlangt und einige Stunden Recherche in den (&#252;brigens vorbildlichen) Dokumentationen von Apple vorausgesetzt. Das ist allerdings ein Problem, welches nicht nur <strong>Objective-C</strong>, 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&#252;rzung nat&#252;rlich auch nehmen — f&#252;r den konkreten Fall leistet der, wie er vom Entwickler selbt genannt wird, &#8220;Wrapper&#8221; <a rel="nofollow" href="http://allseeing-i.com/ASIHTTPRequest/"><em>ASIHTTPRequest</em></a> gute Dienste.</p>
<p>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&#228;tzen und wie die Nachteile kompensiert werden k&#246;nnen.</p>
<p>So bleibt abschlie&#223;end zu sagen, dass die <strong>Entwicklung f&#252;r die iPhone-Plattform</strong> eine spannende Herausforderung ist, der man sich gerne annimmt und die beeindruckend schnell Ergebnisse erm&#246;glicht.</p>
<p><em><strong>Smart Alarm</strong></em> ist <a href="http://itunes.apple.com/de/app/smart-alarm/id323890885?mt=8"><strong>im App Store erh&#228;ltlich</strong></a><strong> und setzt ein iPhone oder iPod touch mit iPhone OS 3.0 oder h&#246;her vorraus.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rcgmbh.com/erfahrungsbericht-zur-entwicklung-der-iphone-app-smart-alarm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

