<?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>andforge.net</title>
	<atom:link href="http://andforge.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://andforge.net</link>
	<description>The android Blog! News, Tutorials and Reports!</description>
	<lastBuildDate>Wed, 14 Jul 2010 11:00:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Neue App: AL Voice Recorder</title>
		<link>http://andforge.net/2010/neue-app-al-voice-recorder/</link>
		<comments>http://andforge.net/2010/neue-app-al-voice-recorder/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 10:55:41 +0000</pubDate>
		<dc:creator>Johannes Borchardt</dc:creator>
				<category><![CDATA[andforge updates]]></category>
		<category><![CDATA[cool news]]></category>

		<guid isPermaLink="false">http://andforge.net/?p=1627</guid>
		<description><![CDATA[Seit einer Woche ist meine neue App, der AL Voice Recorder im Android Market verfügbar. Die App ist mit dem Anliegen gestartet, ein möglichst einfacher Voice Recorder zu sein der das, was er tun soll so gut wie möglich macht. Zunächst ist die App darum mit zwei Funktionen gesetartet: Tonaufnahme und Tonwiedergabe. Links sieht man [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Seit einer Woche ist meine neue App, der AL Voice Recorder im Android Market verfügbar.</strong></p>
<p>Die App ist mit dem Anliegen gestartet, ein möglichst einfacher Voice Recorder zu sein der das, was er tun soll so gut wie möglich macht. Zunächst ist die App darum mit zwei Funktionen gesetartet: Tonaufnahme und Tonwiedergabe.</p>
<p>Links sieht man wie das Ganze optisch aussieht: Namen für die Datei eingeben, auf   den großen Button mit dem Kreis drücken und los geht&#8217;s.</p>
<div id="attachment_1628" class="wp-caption aligncenter" style="width: 391px"><a href="http://andforge.net/wp-content/uploads/2010/07/alvrrecord.jpg"><img class="size-full wp-image-1628 " src="http://andforge.net/wp-content/uploads/2010/07/alvrrecord.jpg" alt="Die AL Voice Recorder Aufnahme-Activity" width="381" height="675" /></a><p class="wp-caption-text">Die AL Voice Recorder Aufnahme-Activity</p></div>
<p>Die Datei wird dann standardmäßig auf der SD-Karte in dem Ordner &#8216;AL Voice Recorder&#8217; abgelegt. Da ich nicht nur diesen, sondern alle Ordner des jeweiligen Android Handys auf Audiodateien durchsuchbar machen wollte, haben ich auch noch einen Dateibrowser entwickelt (s. Bild unten). Der Browser startet automatisch im Ordner &#8216;AL Voice Recorder&#8217;, es kann aber auch jede andere Directory angesteuert werden.</p>
<p style="text-align: left">
<div id="attachment_1635" class="wp-caption aligncenter" style="width: 380px"><a href="http://andforge.net/wp-content/uploads/2010/07/alvrbrowser.jpg"><img class="size-full wp-image-1635  " src="http://andforge.net/wp-content/uploads/2010/07/alvrbrowser.jpg" alt="Die Browser-Activity des AL Voice Recorders" width="370" height="658" /></a><p class="wp-caption-text">Die Browser-Activity des AL Voice Recorders</p></div>
<p>Über das Menü gerät man von dort aus, wie man auf dem Bild schon sehen kann, zu dem Fenster in dem neue Tonaufnahmen gemacht werden können.</p>
<p style="text-align: left"><strong>Ständige Weiterentwicklung, Feedback erwünscht</strong></p>
<p style="text-align: left">Der AL Voice Recorder ist minimalistisch gestartet und wird kontinuierlich weiter entwickelt. Jeder Nutzer oder Interessent ist dazu aufgerufen, jederzeit Feedback abzugeben und neue Funktionen vorzuschlagen. Einige User haben das bereits getan und einige dieser Vorschläge wurden bereits umgesetzt.</p>
<p style="text-align: left">Daher hier eine Übersichtsliste, welche Features bereits auf Euren Wunsch hin umgesetzt wurden und welche noch umgesetzt werden sollen (auf englisch):</p>
<p style="text-align: left"><strong>Done:<br />
</strong></p>
<ul>
<li>Delete auidiodata by longpress</li>
<li>Send audiodata by longpress</li>
</ul>
<p style="text-align: left"><strong>Todo:</strong></p>
<p style="text-align: left"><em>task, (difficulty),[comment]</em></p>
<ul>
<li>Develop plugin for mp3-encoding <em>(difficult)</em> [currently only AMR contained by a .3gp-container is supported]</li>
<li>Implement widget <em>(easy)</em></li>
<li>Enable AL Voice Recorder to record calls <em>(medium)</em></li>
</ul>
<p style="text-align: left">
<p style="text-align: left">Sollten Ihr irgendwelche Ideen oder Verbesserungswünsche haben, hinterlasst mir einfach eine Nachricht in den Kommentaren <img src='http://andforge.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left">
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/neue-app-al-voice-recorder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Teleporter Prototyp auf der DroidCon 2010</title>
		<link>http://andforge.net/2010/teleporter-prototyp-droidcon/</link>
		<comments>http://andforge.net/2010/teleporter-prototyp-droidcon/#comments</comments>
		<pubDate>Thu, 27 May 2010 22:53:26 +0000</pubDate>
		<dc:creator>Mohammed El Batya</dc:creator>
				<category><![CDATA[cool news]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[droidcon]]></category>
		<category><![CDATA[teleporter]]></category>

		<guid isPermaLink="false">http://andforge.net/2010/teleporter-prototyp-auf-der-droidcon/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div align="center" style="margin-top: 30px;margin-bottom: 30px;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/LRkzVsEZy5I&amp;hl=de_DE&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/LRkzVsEZy5I&amp;hl=de_DE&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</div>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/teleporter-prototyp-droidcon/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apps auf SD-Karte mit Froyo</title>
		<link>http://andforge.net/2010/apps-au-sd-mit-froyo/</link>
		<comments>http://andforge.net/2010/apps-au-sd-mit-froyo/#comments</comments>
		<pubDate>Tue, 25 May 2010 10:30:30 +0000</pubDate>
		<dc:creator>Lukas.Jarosch</dc:creator>
				<category><![CDATA[dev stuff]]></category>
		<category><![CDATA[test reports]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[apps installieren]]></category>
		<category><![CDATA[froyo]]></category>
		<category><![CDATA[sd-karte]]></category>

		<guid isPermaLink="false">http://andforge.net/2010/apps-2-sd-mit-froyo/</guid>
		<description><![CDATA[Wie ich in meinen vorherigen Post geschrieben habe, kann man nicht per default Apps auf die SD-Karte verschieben. Dem kann jetzt ganz einfach abgeholfen werden 1: Über ADB... Handy mit Aktiviertem USB-Debugging Modus mit dem PC verbinden und ADB Starten. adb shell pm setInstallLocation 2 2: Direkt auf N1 &#8220;therminal emulator&#8221; vom Market laden. Therminal [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wie ich in meinen vorherigen Post geschrieben habe, kann man nicht per default Apps auf die SD-Karte verschieben.</strong></p>
<p>Dem kann jetzt ganz einfach abgeholfen werden</p>
<p><strong>1: Über ADB..</strong>.<br />
Handy mit Aktiviertem USB-Debugging Modus mit dem PC verbinden und ADB Starten.</p>
<ul>
<li>adb shell</li>
<li>pm setInstallLocation 2</li>
</ul>
<p><strong>2: Direkt auf N1</strong><br />
&#8220;therminal emulator&#8221; vom Market laden.<br />
Therminal Emulator Starten und folgendes eingeben:</p>
<ul>
<li>su</li>
<li>pm setInstallLocation 2</li>
</ul>
<p>Getestet und funktioniert, viel Spaß.</p>
<p>P.S. kopiert nur Spiele und andere große apps die ihr nicht dauernd braucht. Widgets etc sollten auf dem Handy bleiben.</p>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/apps-au-sd-mit-froyo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Froyo für das Nexus One ist hier</title>
		<link>http://andforge.net/2010/froyo-nexus-one/</link>
		<comments>http://andforge.net/2010/froyo-nexus-one/#comments</comments>
		<pubDate>Mon, 24 May 2010 22:25:05 +0000</pubDate>
		<dc:creator>Lukas.Jarosch</dc:creator>
				<category><![CDATA[cool news]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[android 2.2]]></category>
		<category><![CDATA[froyo]]></category>
		<category><![CDATA[keynote]]></category>

		<guid isPermaLink="false">http://andforge.net/2010/froyo-fur-das-nexus-one-ist-hier/</guid>
		<description><![CDATA[Endlich ist es da! Android 2.2! Wie in der Google I/O Keynote sind alle Features vorhanden und laufen wie angekündigt. Hier http://forum.xda-developers.com/showthread.php?t=686627 könnt ihr sogar schon eine Root-Version runterladen (wie immer ohne Gewähr) Erster Eindruck: solide Der Homescreen hat jetzt ein kleines Dock mit Telefon und Browser Shortcut bekommen. Das Gerät lässt sich jetzt in [...]]]></description>
			<content:encoded><![CDATA[<h3>Endlich ist es da! Android 2.2!</h3>
<p>Wie in der Google I/O Keynote sind alle Features vorhanden und laufen wie angekündigt.</p>
<p>Hier <a href="http://forum.xda-developers.com/showthread.php?t=686627">http://forum.xda-developers.com/showthread.php?t=686627</a> könnt ihr sogar schon eine Root-Version runterladen (wie immer ohne Gewähr)</p>
<h3>Erster Eindruck: solide</h3>
<ul>
<li>Der Homescreen hat jetzt ein kleines Dock mit Telefon und Browser Shortcut bekommen.</li>
<li>Das Gerät lässt sich jetzt in beiden Richtungen im Landscape Modus benutzen, sprich nur noch kopfüber Portrait gibts nicht.</li>
<li>Der AppMarket hat jetzt ein Widget bekommen.</li>
<li>Wunderschön und einfach ist auch das erstellen eines Accesspoints.</li>
<li>Was ein bißchen entäucht ist das kopieren von Apps auf die SD Karte. Zwar ist dieses Feature enthalten, jedoch muss jeder Entwickler explizit angeben das er das erlaubt was wiederum heißt das er erst auf die API 2.2 wechseln muss &#8230;.. und das haben bis jetzt die wenigsten gemacht.</li>
</ul>
<h3>Fazit: Stark positiv und ein Update zu Froyo ist auf jeden Fall zu empfehlen!</h3>
<p>Postet eure Erfahrungen in den Comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/froyo-nexus-one/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Magic Tree &#8211; Live Wallpaper</title>
		<link>http://andforge.net/2010/magic-tree-live-wallpaper/</link>
		<comments>http://andforge.net/2010/magic-tree-live-wallpaper/#comments</comments>
		<pubDate>Sat, 22 May 2010 19:21:03 +0000</pubDate>
		<dc:creator>Mohammed El Batya</dc:creator>
				<category><![CDATA[cool news]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[android 2.1]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[live wallpaper]]></category>
		<category><![CDATA[magic tree]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://elbatya.de/?p=1592</guid>
		<description><![CDATA[Just announcing our new Live Wallpaper called &#8220;Magic Tree Live Wallpaper&#8221; for Android 2.1!]]></description>
			<content:encoded><![CDATA[<div align="center" style="margin: 50px"><strong>Just announcing our new Live Wallpaper called &#8220;Magic Tree Live Wallpaper&#8221; for Android 2.1!</strong></div>
<div align="center" style="margin-bottom: 50px"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/1NEKtot8XgQ&amp;hl=de_DE&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/1NEKtot8XgQ&amp;hl=de_DE&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/magic-tree-live-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Wallpaper Tutorial für Android 2.1</title>
		<link>http://andforge.net/2010/live-wallpaper-tutorial-fr-android-21/</link>
		<comments>http://andforge.net/2010/live-wallpaper-tutorial-fr-android-21/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 00:32:17 +0000</pubDate>
		<dc:creator>Mohammed El Batya</dc:creator>
				<category><![CDATA[cool news]]></category>
		<category><![CDATA[dev stuff]]></category>

		<guid isPermaLink="false">http://www.andforge.net/?p=1582</guid>
		<description><![CDATA[Wie viele von euch sicherlich bereits mitbekommen haben hat Google vor ein paar Wochen das Nexus One veröffentlicht und damit auch die neue Android-Version 2.1. Eines der tollen neuen Features nennt sich &#8220;Live Wallpaper&#8221; (auch manchmal &#8220;Living Wallpaper&#8221; genannt). Das sind coole dynamische Desktop-Hintergründe, welche schicke Animationen darstellen. Oft reagieren diese auch auf Benutzerinteraktionen. Ich [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wie viele von euch sicherlich bereits mitbekommen haben hat Google vor ein paar Wochen das Nexus One veröffentlicht und damit auch die neue Android-Version 2.1. Eines der tollen neuen Features nennt sich &#8220;Live Wallpaper&#8221; (auch manchmal &#8220;Living Wallpaper&#8221; genannt). Das sind coole dynamische Desktop-Hintergründe, welche schicke Animationen darstellen. Oft reagieren diese auch auf Benutzerinteraktionen.</strong></p>
<p>Ich möchte mit diesem Artikel einen grundlegenden Überblick über die Programmierung eines solchen Live Wallpapers vermitteln.<br />
Dieser Artikel enthält keinen voll funktionstüchtigen Code, da bereits ein gutes Beispiel im SDK 2.1 (namens &#8220;Cube&#8221;) mitgeliefert wird.</p>
<p>Vom Prinzip her ist so ein Live Wallpaper ( ab jetzt LWP abgekürzt ) das selbe wie eine normale Activity, welche auf einem 2D Surface einfache Dinge wie Kreise und und Linien zeichnet. Es ist vergleichbar mit der Programmierung eines kleinen 2D Spiels.</p>
<p>Voraussetzungen für dieses Tutorial:</p>
<ul>
<li>Du hast schon mal eine normale Activity programmiert.</li>
<li>Du hast das SDK 2.1 installiert.</li>
</ul>
<h3>0. Grundlagen</h3>
<p>Ein LWP besteht im Grunde aus 5 Teilen:</p>
<ol>
<li>einem WallpaperService</li>
<li>einer &#8220;Engine&#8221;, welche sich um das Zeichnen kümmert</li>
<li>einer &#8220;Einstellungen&#8221;-Activity zur Anpassung des Wallpapers durch den User (z.B. Farben)</li>
<li>einer XML-Datei um zu konfigurieren wie das LWP aufgelistet wird (z.B. Icon)</li>
<li>das übliche Android-Manifest</li>
</ol>
<h3>1. Der WallpaperService</h3>
<p>Zunächst benötigst du eine Klasse, welche von &#8220;WallpaperService&#8221; erbt. In dieser Klasse musst du nur die Methode &#8220;onCreateEngine()&#8221; überschreiben und deine eigene Engine zurückgeben.</p>
<pre name ="code" class="java">public class AndforgeWallpaper extends WallpaperService {
	@Override
	public Engine onCreateEngine() {
		return new AndforgeLWPEngine();
	}
}</pre>
<h3>2. Die Engine</h3>
<p>Die Engine übernimmt das eigentliche Zeichnen und muss innerhalb deines WallpapersServices definiert werden. Also definieren wir als nächstes eine innere Klasse, welche von WallpaperService.Engine erbt.</p>
<pre name="code" class="java">public class AndforgeWallpaper extends WallpaperService {
	@Override
	public Engine onCreateEngine() {
		return new AndforgeLWPEngine();
	}

	 class AndforgeLWPEngine extends Engine{
		// TODO: ausprogrammieren
 	}
}</pre>
<p>Die Engine besitzt einen SurfaceHolder, welcher wiederum ein Canvas besitzt. Auf diesem Canvas kann man letztendlich seine Animationen zeichnen. Mit der Methode getSurfaceHolder() bekommt man in der Engine das Surface. Wendet man auf das Surface die Methode lockCanvas() an bekommt man das Canvas zum zeichnen.</p>
<p>Achtung: Es ist wichtig das Canvas über die Methode lockCanvas() zu erhalten, da es sonst zu seltsamen Fehlern kommen kann. Dies hat unter anderem damit zu tun, dass &#8220;DoubleBuffering&#8221; eingesetzt wird.</p>
<p>DoubleBuffering?<br />
Kurz gesagt: Es werden zwei Bilder generiert, eines auf dem gerade gezeichnet wird und eines, welches auf dem Bildschirm zu sehen ist. Diese Bilder werden nach jedem Zeichenvorgang ausgetauscht, was bedeutet, dass man immer eine &#8220;alte&#8221; Version des Bildes zum Zeichnen bekommt. Ruft man nun lockCanvas() auf bekommt man das Canvas, welches gerade nicht angezeigt wird um darauf zu zeichnen. Ist man fertig mit dem Zeichnen kann man mit unlockCanvasAndPost(canvas) das Canvas wieder freigeben und ein Austauschen des angezeigten Canvas mit dem frisch bemalten Canvas anstoßen.</p>
<p>Das Zeichnen sieht dann ungefähr so aus:</p>
<pre class="java" name="code" >

Canvas canvas = getSurfaceHolder().lockCanvas();

//TODO: auf dem canvas zeichnen

getSurfaceHolder().unlockCanvasAndPost(canvas);</pre>
<p>Wo stecken wir nur unseren Code zum Zeichnen hin? Theoretisch kann man jetzt eine beliebige Methode der Engine überschreiben und dort etwas zeichnen (was nicht immer sinnvoll ist ^^). Es ist wichtig zu verstehen, dass die Engine einen Lifecycle (Lebenszyklus) durchlebt. Das bedeutet, dass es z.B. Momente gibt in denen es gar keinen SufaceHolder gibt ( also der SurfaceHolder null ist). Hier sind die Methoden onSurfaceDestroyed(), onSurfaceCreated(), onSurfaceChanged(), onDestroy(), onCreate(), usw. entsprechend zu beachten.</p>
<p>Aber wo kommt jetzt endlich der Code zum Zeichnen hin?</p>
<p>Eine mögliche (aber nicht besonders sinnvolle) Stelle wäre die onSurfaceCreated() Methode:</p>
<pre name="code" class="java">@Override
		public void onSurfaceCreated(SurfaceHolder arg0) {

			Canvas canvas = getSurfaceHolder().lockCanvas();

			// Zeichne einen Kreis
			canvas.drawCircle(200, 200, 10, color);

			getSurfaceHolder().unlockCanvasAndPost(canvas);
		}</pre>
<p>Dies hat zur Folge, dass ein Kreis gezeichnet wird sobald der SurfaceHolder erzeugt wird, also einmal und dann nie wieder.</p>
<p>Was wir aber für bewegte Animationen benötigen ist eine Möglichkeit das Zeichnen regelmäßig anzustoßen. Das Cube Beispiel aus dem SDK verwendet hierfür eine recht elegante Lösung unter Verwendung eines Handlers, welcher sich selbst immer wieder auf die &#8220;Queue&#8221; schmeißt. Ich möchte hier nicht weiter auf die Implementierung der Engine eingehen und auf das Cube Beispiel verweisen, da dies sonst den Rahmen des Artikels sprengen würde. Ich bin mir aber sicher, dass man mit dem hier gelernten Wissen das Cube Beispiel relativ gut verstehen kann. (Falls jemand Interesse an einem ausführlicheren Artikel zur Implementierung eines Wallpapers hat, kann er/sie gerne einen Kommentar hinterlassen.)</p>
<h3>3. Die &#8220;Einstellungen&#8221;-Activity</h3>
<p>Dies ist eine ganz normale Activity, welche dem Nutzer ermöglichen soll das Wallpaper zu personalisieren. Vorstellbar wären z.B. Farbe, Geschwindigkeit und diverse Effekte des Wallpapers. Hierfür sollte man wie im Cube Beispiel auf SharedPreferences zurückgreifen um die Einstellungen auch beim Zeichnen mitzubekommen. Zusammengefasst: Diese SettingsActivity lässt den Nutzer die SharedPreferences editieren, welche wiederum in der Engine beim Zeichnen berücksichtigt werden.</p>
<p>Hier sollte man beachten, dass diese Activity normalerweise nicht im AppMenü von Android auftauchen soll. Daher sollte man das Manifest (siehe Punkt 5) entsprechend anpassen. Diese App wird gestartet wenn der Nutzer in der LWP-Liste neben dem LWP auf Einstellungen klickt.</p>
<h3>4. LWP lwp_config.xml</h3>
<p>Diese XML Datei dient dazu, zu konfigurieren wie das LWP im LWP-Menü aufgelistet wird. Sie muss sich im Verzeichnis res/xml befinden, wenn dieses Verzeichnis nicht existiert muss man eins erstellen. Eine typische Konfiguration würde folgende Werte enthalten:</p>
<ul>
<li><strong>android:thumbnail</strong> = mini Vorschaubild in der LWP-Liste</li>
<li><strong>android:description</strong> = kurze Beschreibung für die LWP-Liste</li>
<li><strong>android:settingsactivity</strong> = Packagepfad zu der Settings-Activity</li>
</ul>
<pre name="code" class="xml">
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android" android:thumbnail="@drawable/icon" android:description="@string/description" android:settingsactivity="net.andforge.wallpapers.AndforgeWallpaperSettings">
</wallpaper>
</pre>
<h3>5. Das Manifest</h3>
<p>Im Folgenden wird der WallpaperService und die SettingsActivity eingerichtet.<br />
Man beachte, dass kein Menüeintrag erstellt wird.</p>
<pre name="code" class="xml">
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="net.andforge.wallpapers" android:versionCode="8" android:versionName="1.8">
	<application android:icon="@drawable/icon" android:label="Andforge Wallpaper">

		<service android:label="Andforge Wallpaper" android:name=".AndforgeWallpaper"
			android:permission="android.permission.BIND_WALLPAPER">
			<intent-filter>
				<action android:name="android.service.wallpaper.WallpaperService" />
			</intent-filter>
			<meta-data android:name="android.service.wallpaper"
				android:resource="@xml/lwp_config" />
		</service>

		<activity android:label="Andforge Wallpaper - Settings" android:name=".AndforgeWallpaperSettings"
			android:theme="@android:style/Theme.Light.WallpaperSettings"
			android:exported="true">
		</activity>

	</application>
	<uses-sdk android:minSdkVersion="7" />

</manifest>
</pre>
<p><strong>Ich hoffe ich konnte einen Überblick und ein Grundverständnis über die Erstellung eines Android Live Wallpapers bieten. Ich habe bewusst ein paar Details vorenthalten und versucht mich auf das Wesentliche zu konzentrieren. Bei offenen Fragen einfach einen Kommentar hinterlassen.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/live-wallpaper-tutorial-fr-android-21/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to: Serverkommunikation in Android (REST + JSON)</title>
		<link>http://andforge.net/2010/serverkommunikation-android-rest-json/</link>
		<comments>http://andforge.net/2010/serverkommunikation-android-rest-json/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 00:05:30 +0000</pubDate>
		<dc:creator>Johannes Borchardt</dc:creator>
				<category><![CDATA[dev stuff]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.andforge.net/?p=1589</guid>
		<description><![CDATA[Es gibt viele Bücher über Android, mindestens drei davon sogar in der deutschen Sprache. Die meisten dieser Bücher sind sich ziemlich ähnlich: Sie erklären Android-Grundkonzepte und manchmal noch ein bisschen mehr (z.b. OpenGL/ES) und das wars dann. Die Frage, die sich mir in diesen Büchern immer gestellt hat, war: Wenn meine Anwendung mit mehr als [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Es gibt viele Bücher über Android, mindestens drei davon sogar in der deutschen Sprache. Die meisten dieser Bücher sind sich ziemlich ähnlich: Sie erklären Android-Grundkonzepte und manchmal noch ein bisschen mehr (z.b. OpenGL/ES) und das wars dann. Die Frage, die sich mir in diesen Büchern immer gestellt hat, war: Wenn meine Anwendung mit mehr als dem Handy kommunizieren lassen will, was dann? Wie bringe ich meinen Android dazu, mit einem Server zu reden? Dieser Teil wurde in der Regel als &#8220;HTTP-Grundlagen&#8221; oder ähnliches ausgelassen, zumindest in den Büchern die mir untergekommen sind.</strong></p>
<p>Um ein bisschen Abhilfe zu verschaffen erkläre ich  hier zwei Methoden, mit Hilfe derer Android-Clients REST-Server ansprechen und JSON-Format übertragen, bzw. verarbeiten können.</p>
<p>Zuerst der Theoretische Teil: REST steht für <em>Representional State Transfer</em> und wurde im Jahr 2000 von Roy Fielding vorgestellt. Wie der Name bereits sagt, können Stadien transferiert werden, sprich auf solche zugegriffen werden. Oder andersrum: Ein REST-konformer Server kennt keinen Zustand. Rest baut auf dem HTTP-Protokol auf und verwendet (mindestens) vier der Basiskomponenten:</p>
<p>GET für Datenanfragen,</p>
<p>POST für das Ablegen von Daten,</p>
<p>DELETE für das Löschen von Daten und</p>
<p>PUT für das Updaten von Daten.</p>
<p>Internetnutzer sollten zumindest mit GET-Befehlen vertraut sein. Internetseiten, die Daten anfordern, übertragen, wenn sie so programmiert wurden, wie es von den HTTP-Schaffern (zu denen auch Fielding gehört) gedacht war, in der URL Parameter. Diese Parameter werden mit einem ? eingeleitet (z.B. http://www.andforge.net/?m=201001).</p>
<p>Als Übertragungsformat hat sich auf mobilen Endgeräten aufgrund des geringen Datenoverheads die JavaScript Object Notation, kur JSON, als passend erwiesen. JSON stellt Objekte Beispielsweise wie folgt dar:</p>
<pre name="code" class="js">
{
  "Name" : "Mustermann",
  "Vorname"      : "Max",
  "Adresse"       :
  {
    "Strasse"        : "Musterstrasse",
    "Nummer"     : "123",
    "PLZ"  : "98765",
    "Ort"   : "Musterstadt
  }
}
</pre>
<p>Das Format ist also durchaus noch lesbar, aber in seinen Zusatzzeichen, die eine Interpretierbarkeit ermöglichen, sehr sparsam. Dies ist für die eventuell schwachen Verbindungen, die es auf Mobiltelefonen geben kann, hilfreich.</p>
<p>Nach dieser kurzen Einführung wenden wir uns DER Frage zu: <strong>Wie geht das in Android? </strong></p>
<p><strong>HTTP GET</strong></p>
<p>Zunächst einmal wird ein REST-konformer Webservice, der im JSON-Format antwortet benötigt. Hat man diesen, kann es losgehen:</p>
<pre name="code" class="java">
public class Xxx{

//Bezeichnung der Klasse:

private final String TAG="Xxx";

public void getJSONObject(String url)
{

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse response;

try {
response = httpClient.execute(httpGet);

// TODO: HTTP-Status (z.B. 404) in eigener Anwendung verarbeiten.

Log.i(TAG,response.getStatusLine().toString());

HttpEntity entity = response.getEntity();

if (entity != null) {

InputStream instream = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
StringBuilder sb = new StringBuilder();

String line = null;
while ((line = reader.readLine()) != null)
sb.append(line + "n");

String result=sb.toString();

Log.i(TAG,result);

instream.close()

JSONObject json=new JSONObject(result);

JSONArray nameArray=json.names();
JSONArray valArray=json.toJSONArray(nameArray);

for(int i=0;i&lt;valArray.length();i++)
{
//TODO: Inhalte der Arrays verarbeiten.
}
}
catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}finally{
httpGet.abort();
}
}
</pre>
<p>Zuerst erzeugen wir einen HTTPCLient. Dann wird ein HTTPGet-Objekt erzeugt. Diesem Objekt wird eine URL mitgegeben, die bereits alle Parameter der Anfrage enthält. Da Wir eine Antwort vom Server erwarten, erzeugen wir zudem ein HTTPResponse-Objekt. Nun führen wir den HTTPGet-Request aus und schreiben die Antwort in unser HTTPResponse-Objekt.</p>
<p>Nun machen wir uns an die angehängten Daten. Diese befinden sich in der HTTPEntity der Antwort. Wir lesen sie mit Hilfe eines buffered readers und eines stringbuffers (aus Performancegründen) aus und erzeugen aus dem so generierten String ein JSONObjekt, welches alle übertragenen Daten enthält, sofern sie im JSON-Format waren. Mit diesen Daten kann nun gearbeitet werden.</p>
<p>So einfach lassen sich Daten mittels REST und JSON in Android abfragen.</p>
<p><strong>HTTP POST</strong></p>
<p>Die nächste Frage, die sich aufdrängt: Daten abfragen funktioniert, aber wie ist das mit den drei anderen Dingern?</p>
<p>Fangen wir mit einer Methode zum Abschicken eines HTTP POST- Objektes an:</p>
<pre name="code" class="java">
public void postJSONObject(String url, JSONObject data, String objectName)
{
HttpPost postMethod = new HttpPost(url);

try {
HttpParams params = new BasicHttpParams();
params.setParameter(objectName, data.toString());

postMethod.setParams(params);
httpClient.execute(postMethod);
Log.i(TAG, "Post request, data: " + params.toString());

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();

} finally {
postMethod.abort();
}
}
</pre>
<p>Wie zuvor wird der Methode eine Ziel-URL übergeben. Des Weiteren wird ein JSONObject mit den zu übertragenden Daten und die Bezeichnung der Daten (z.B. &#8220;User&#8221;) übergeben. Da wir einem HTTPPost nicht einfach so ein JSONObject anhängen können, wandeln wir dieses zuerst in HTTP-Parameter um und hängen diese dann an.  Nun führen wir den POST aus und alles ist gut (hoffentlich). Natürlich sollten an dieser Stelle noch eventuelle Fehlercodes oder -Meldungen abgefangen werden, dies kann analog zur ersten Methode geschehen, wobei Fehlermeldungen natürlich für jeden Server individuell behandelt werden müssen (üblicherweise gillt: wenn ein JSON-Objekt mit &#8220;error:&#8221; beginnt, ist was schief gelaufen).</p>
<p><strong>HTTP DELETE und HTTP PUT</strong></p>
<p>DELETE und PUT können so wie POST implementiert werden, nur dass der Objekttyp von postMethod in HTTPDelete, bzw. HTTPPut, geändert wird.</p>
<p>Et voilà: So schnell geht&#8217;s und schon fangen die Server an zu flüstern, mehr als das, sie hören sogar zu =)</p>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/serverkommunikation-android-rest-json/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3D Hologramm Effekt auf Android Geräten</title>
		<link>http://andforge.net/2010/3d-hologramm-effekt-android/</link>
		<comments>http://andforge.net/2010/3d-hologramm-effekt-android/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 10:59:10 +0000</pubDate>
		<dc:creator>Mohammed El Batya</dc:creator>
				<category><![CDATA[cool news]]></category>
		<category><![CDATA[dev stuff]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[3d effekt]]></category>
		<category><![CDATA[hologram]]></category>

		<guid isPermaLink="false">http://www.andforge.net/?p=1330</guid>
		<description><![CDATA[Folgendes Video von TATMobile zeigt sehr schön, wie ein User-Interface der Zukunft mit 3D Hologramm Effekt aussehen könnte und am Ende dieses Artikels gibt es noch eine weitere sehr schöne Demo. [ad#google_article_mo] Der Trick hierbei ist, dass das Bild  auf den momentanen Blickwinkel des Benutzers angepasst wird.  Das im Video gezeigte User-Interface ist leider nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Folgendes Video von TATMobile zeigt sehr schön, wie ein User-Interface der Zukunft mit 3D Hologramm Effekt aussehen könnte und am Ende dieses Artikels gibt es noch eine weitere sehr schöne Demo.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/7SImOIMcMlk&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/7SImOIMcMlk&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>[ad#google_article_mo]</p>
<p>Der Trick hierbei ist, dass das Bild  auf den momentanen Blickwinkel des Benutzers angepasst wird.  Das im Video gezeigte User-Interface ist leider nicht echt und soll nur zeigen wie so etwas theoretisch aussehen könnte.</p>
<p>Das Prinzip ist jedoch seit langem bekannt und wurde bereits durch folgendes Video sehr berühmt. Es zeigt eine beeindruckende Umsetzung dieser optischen Täuschung für die Nintendo Spielekonsole Wii.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Jd3-eiid-Uw&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Jd3-eiid-Uw&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>3D Hologramm Effekt für Android</h2>
<p>Theoretisch ist es technisch möglich solch einen Effekt auch für Android Geräte zu entwickeln. Ich habe mir daher ein paar Gedanken gemacht und möchte nun beschreiben wie man das ganze auf einem Android Gerät realisieren könnte. Für diesen Effekt ist es essentiell, dass die Positionen von Betrachter und Gerät relativ zueinander ermittelt werden können. Daher habe ich die verschiendenen Bewegungsmöglichkeiten im Raum  in die folgende Fälle unterteilt und sie isoliert betrachtet.</p>
<h3>1. Handy kann nur kippen</h3>
<p>Zunächst möchte ich davon ausgehen, dass sich der Kopf des Benutzers und das Android Gerät fest im Raum befinden. Sie können sich in keinerlei Richtung Bewegen. Das Gerät kann aber in alle möglichen Richtungen gekippt werden.</p>
<p>Möchte man nun unter diesen Umständen einen 3D Effekt erzeugen, muss man nur die Lage des Gerätes anhand der Beschleunigungssensoren (welche momentan so gut wie alle Android Geräte besitzen) ermitteln. Mit den Daten kann man dann das Bild auf dem Gerät so anpassen, dass man einen wunderbaren Effekt erzielt. Wenn man sich hierbei ein Auge zuhält wirkt der Effekt noch besser, da dann jegliches Gefühl für &#8220;Tiefenwahrnehmung&#8221; verschwindet .</p>
<h3>2. Handy kann sich nur Horizontal/Vertikal bewegen</h3>
<p>Jetzt kommt der etwas kompliziertere Fall drann. Ich möchte jetzt annehmen, dass sich das Gerät auf einer Art Schiene im Raum nach oben, unten, links und rechts bewegen kann. Es kann sich jedoch in keine Richtung drehen/kippen. Bei diesen Bewegungsabläufen helfen uns die Beschleunigungssensoren leider nicht mehr weiter, da wir die Position des Gerätes relativ zur Position der betrachtenden Augen benötigen. Dies könnte man mit einer Front-Kamera, wie es heutzutage viele Video-Telefonie-Taugliche Geräte haben realisieren. Die Kamera müsste dann anhand eines Augen-Erkennungs-Algorithmusses die Position der Augen des Benutzers ermitteln. Es gibt bereits einige solcher Algorithmen, welche oft in  Digitalkameras eingesetzt werden.</p>
<h3>3. Handy kann sich nur auf der Z-Achse bewegen</h3>
<p>Dieser Fall ist ähnlich zu lösen wie der vorherige. Hier wird angenommen, dass sich das Gerät nur nach vorne und hinten bewegen kann. Es kann wieder nicht gekippt werden. Wenn sich das Handy exakt auf einer Linie vor dem Betrachter befindet hat diese Bewegung keine Auswirkung auf den Bildschirminhalt.</p>
<p>Befindet sich das Handy, jedoch leicht versetzt neben dem Betrachter und bewegt sich dann auf der Z-Achse muss dies auch erfasst werden um den Effekt  möglichst realistisch wirken zu lassen. Auch hierfür benötigt man einen Augen-Erkennungs-Algorithmus. Um die Länge der Strecke zwischen Handy und Betrachter zu ermitteln muss man diesmal den Abstand zwischen den beiden Augen messen. Liegen die Augen relativ nah zusammen ist der Betrachter etwas weiter entfernt. Vergrößert sich dann der Abstand zwischen den Augen bewegt sich der Betrachter auf das Android Gerät zu. Das selbe funktionier natürlich auch umgekehrt.</p>
<h3>Die Mischung machts!</h3>
<p>Kombiniert man nun alle drei Fälle kann man mit den ermittelten Daten einen wunderbaren 3D Hologramm Effekte auf Android Geräten erzeugen, welcher den Effekt aus dem TATMobile Video noch weit übertreffen könnte. Ich bin mir sicher, dass in den nächsten Monaten noch viele coole Experimente auf diesem Gebiet passieren werden.</p>
<p>[ad#google_article_mo_2]</p>
<h3>4. Das Ultimative 3D Erlebnis !!!</h3>
<p>Das Android Gerät besitzt einen weiteren nicht zu unterschätzenden Sensor. Den Kompass! Mit diesem liese sich der 3D Effekt um einen besonders coolen Aspekt erweitern. Man könnte die auf dem Bildschrim dargestellten &#8220;Pseudo-3D-Objekte&#8221; von allen möglichen Seiten betrachten.</p>
<p>Das folgende Video zeigt diesen Effekt sehr schön. Es ist eine Kombination aus den Punkten 1 und 4. Man beachte, dass sich weder Kamera noch das Gerät von der Stelle bewegen.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/cnhFRr7DBGg&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/cnhFRr7DBGg&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Der 3D Hologramm Effekt ist machbar!</h3>
<p>Mit den hier vorgestellten technischen Möglichkeiten sind solche Effekte theoretisch nur eine Frage der richtigen Implementierung. Es müssen nämlich aller der 4 Fälle berücksichtigt werden um die perfekte Illusion zu erzeugen. Ein Android Phone mit Front-Kamera wäre natürlich auch recht hilfreich <img src='http://andforge.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Ich übersehe unter Umständen ein paar Aspekte oder es geht noch einfacher als ich es hier beschrieben habe. Daher würde ich mich über Feedback und weitere Ideen zu diesem Thema sehr freuen.</p>
<blockquote><p><strong>Nachtrag:</strong><br />
Ich habe gerade ein weiteres Video zu diesem Thema entdeckt. Wieder ist es eine iPhone App, welche offensichtlich mit Kompass und den Beschleunigungssensoren arbeitet. Wie bei der &#8220;Katze&#8221; von oben wirkt der Effekt nur solange wie der Betrachter seine relative Position zum Gerät nicht verändert.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/SOMsBJOdih8&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/SOMsBJOdih8&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2010/3d-hologramm-effekt-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fahrplan NG ist im Market!</title>
		<link>http://andforge.net/2009/fahrplan-ng-ist-im-market/</link>
		<comments>http://andforge.net/2009/fahrplan-ng-ist-im-market/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 11:25:10 +0000</pubDate>
		<dc:creator>Mohammed El Batya</dc:creator>
				<category><![CDATA[Fahrplan]]></category>
		<category><![CDATA[cool news]]></category>

		<guid isPermaLink="false">http://www.andforge.net/?p=1576</guid>
		<description><![CDATA[Ich möchte nur kurz Mitteilen, dass Fahrplan NG nun im Market erhältlich ist. Die Version ist noch recht simpel, erledigt aber Ihre Aufgabe. Für weiter Infos und einen Screenshot einfach den Blogeintrag  http://www.andforge.net/?p=1552 lesen. Feedback ist natürlich wie immer erwünscht.]]></description>
			<content:encoded><![CDATA[<p>Ich möchte nur kurz Mitteilen, dass Fahrplan NG nun im Market erhältlich ist. Die Version ist noch recht simpel, erledigt aber Ihre Aufgabe. <img src='http://andforge.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Für weiter Infos und einen Screenshot einfach den Blogeintrag  <a href=" http://www.andforge.net/?p=1552">http://www.andforge.net/?p=1552</a> lesen.</p>
<p>Feedback ist natürlich wie immer erwünscht.</p>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2009/fahrplan-ng-ist-im-market/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Was ist eigentlich ein Geschäftsmodell?</title>
		<link>http://andforge.net/2009/ist-eigentlich-ein-geschftsmodell/</link>
		<comments>http://andforge.net/2009/ist-eigentlich-ein-geschftsmodell/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 12:45:32 +0000</pubDate>
		<dc:creator>Johannes Borchardt</dc:creator>
				<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://www.andforge.net/?p=1568</guid>
		<description><![CDATA[Wie wir kürzlich angekündigt haben, veröffentlichen wir hier anlässlich der in einer Woche stattfindenden Droidcon eine Reihe über Geschäftsbasiswissen. Oft wird über Geschäftsmodelle geredet oder geschrieben, dabei aber oft auf Ideen zur Ertragserzielung, sprich ein Ertragsmodell, reduziert. Tatsächlich beinhaltet es aber deutlich mehr als nur dieses. [ad#google_image_middle_jo] Was ist also ein Geschäftsmodell tatsächlich? Wie der [...]]]></description>
			<content:encoded><![CDATA[<p>Wie wir kürzlich <a href="http://www.andforge.net/?p=1560">angekündigt</a> haben, veröffentlichen wir hier anlässlich der in einer Woche stattfindenden <a href="http://www.droidcon.de">Droidcon</a> eine Reihe über Geschäftsbasiswissen.</p>
<p>Oft wird über Geschäftsmodelle geredet oder geschrieben, dabei aber oft auf Ideen zur Ertragserzielung, sprich ein Ertragsmodell, reduziert. Tatsächlich beinhaltet es aber deutlich mehr als nur dieses.<br />
[ad#google_image_middle_jo]<br />
<strong>Was ist also ein Geschäftsmodell tatsächlich?</strong></p>
<p>Wie der Name schon sagt das Modell eines Geschäfts. Es hängt also eng mit der Definition von &#8220;Geschäft&#8221; zusammen. Da diese unterschiedlich ausgelegt wird, ist auch die Definition von &#8221; Geschäftsmodell&#8221; nicht eindeutig. Auf jeden Fall ist das letztendliche Ziel eines Unternehmens die Generierung von Wert, sei es in ökonomischer, sozialer oder anderer Form.</p>
<p>Nachfolgende Punkte sind die Kernpunkte eines Businessplans, die ein Geschäft gut beschreiben können und vor einer Neugründung auf jeden Fall definiert werden sollten.</p>
<ol>
<li> Die Marketingstrategie: Eine Marketingstrategie umfasst mindestens vier Punkte, die klassischen &#8220;vier P&#8221; des Marketing: Produkt (product), Preis (price), Werbung (publicity) und Distributionspolitik (place). Darüber hinaus gibt es weitere mögliche p&#8217;s, wie beispielsweise Menschen (people).</li>
<li>Das Ertragsmodell: Wie oben beschrieben der Weg der Ertragserzielung.</li>
<li>Markt: Die Antwort auf die Frage:<em> Welcher Märkt oder welche Märkte, bzw. welches Marktsegment oder welche Marktsegmente können mit dem vertriebenen Produkt oder den vertriebenen Produkten penetriert werden?</em>[ad#google_article_jo]</li>
<li>Wettbewerber: Eine Übersicht der vorhandenen direkten und indirekten Wettbewerber auf dem oder den existierenden Markt oder Märkten, bzw. Marktsegment oder -Segmenten.</li>
</ol>
<p>Darüber hinaus</p>
<ol>
<li>Das Nutzenversprechen: Um Absatz zu erzielen, müssen Kunden, seien es Endkunden oder Kooperationspartner, einen Nutzen aus dem Unternehmen ziehen können. Dies sollte definiert werden, und zwar in der</li>
<li>Architektur der Wertschöpfung: Beantwortet die Frage:<em> Welche Leistungen werden wo, also auf welchem Markt, wie, sprich: mit welchem Produkt, angeboten?</em></li>
</ol>
<p>In den weiteren Folgen dieser Serie werden nun die einzelnen oben genannten Punkte abgehandelt, beginnend mit Punkt eins: Marketing.</p>
]]></content:encoded>
			<wfw:commentRss>http://andforge.net/2009/ist-eigentlich-ein-geschftsmodell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
