Tuesday, February 02nd, 2010 | Author: ForgeMo

Ich möchte nur kurz unser neuestes Live Wallpaper namens “Magic Universe – Live Wallpaper” vorstellen :)

Get Adobe Flash player

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Category: cool news, video  | Leave a Comment
Tuesday, January 26th, 2010 | Author: ForgeMo

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 “Live Wallpaper” (auch manchmal “Living Wallpaper” genannt). Das sind coole dynamische Desktop-Hintergründe, welche schicke Animationen darstellen. Oft reagieren diese auch auf Benutzerinteraktionen.

Ich möchte mit diesem Artikel einen grundlegenden Überblick über die Programmierung eines solchen Live Wallpapers vermitteln.
Dieser Artikel enthält keinen voll funktionstüchtigen Code, da bereits ein gutes Beispiel im SDK 2.1 (namens “Cube”) mitgeliefert wird.

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.

Voraussetzungen für dieses Tutorial:

  • Du hast schon mal eine normale Activity programmiert.
  • Du hast das SDK 2.1 installiert.

0. Grundlagen

Ein LWP besteht im Grunde aus 5 Teilen:

  1. einem WallpaperService
  2. einer “Engine”, welche sich um das Zeichnen kümmert
  3. einer “Einstellungen”-Activity zur Anpassung des Wallpapers durch den User (z.B. Farben)
  4. einer XML-Datei um zu konfigurieren wie das LWP aufgelistet wird (z.B. Icon)
  5. das übliche Android-Manifest

1. Der WallpaperService

Zunächst benötigst du eine Klasse, welche von “WallpaperService” erbt. In dieser Klasse musst du nur die Methode “onCreateEngine()” überschreiben und deine eigene Engine zurückgeben.

public class AndforgeWallpaper extends WallpaperService {
	@Override
	public Engine onCreateEngine() {
		return new AndforgeLWPEngine();
	}
}

2. Die Engine

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.

public class AndforgeWallpaper extends WallpaperService {
	@Override
	public Engine onCreateEngine() {
		return new AndforgeLWPEngine();
	}	

	 class AndforgeLWPEngine extends Engine{
		// TODO: ausprogrammieren
 	}
}

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.

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 “DoubleBuffering” eingesetzt wird.

DoubleBuffering?
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 “alte” 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.

Das Zeichnen sieht dann ungefähr so aus:


Canvas canvas = getSurfaceHolder().lockCanvas();

//TODO: auf dem canvas zeichnen

getSurfaceHolder().unlockCanvasAndPost(canvas);

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.

Aber wo kommt jetzt endlich der Code zum Zeichnen hin?

Eine mögliche (aber nicht besonders sinnvolle) Stelle wäre die onSurfaceCreated() Methode:

@Override
		public void onSurfaceCreated(SurfaceHolder arg0) {

			Canvas canvas = getSurfaceHolder().lockCanvas();

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

			getSurfaceHolder().unlockCanvasAndPost(canvas);
		}

Dies hat zur Folge, dass ein Kreis gezeichnet wird sobald der SurfaceHolder erzeugt wird, also einmal und dann nie wieder.

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 “Queue” 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.)

3. Die “Einstellungen”-Activity

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.

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.

4. LWP lwp_config.xml

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:

  • android:thumbnail = mini Vorschaubild in der LWP-Liste
  • android:description = kurze Beschreibung für die LWP-Liste
  • android:settingsactivity = Packagepfad zu der Settings-Activity


5. Das Manifest

Im Folgenden wird der WallpaperService und die SettingsActivity eingerichtet.
Man beachte, dass kein Menüeintrag erstellt wird.



	

		
			
				
			
			
		

		
		

	
	


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.

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Tuesday, January 26th, 2010 | Author: Johannes Borchardt

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 “HTTP-Grundlagen” oder ähnliches ausgelassen, zumindest in den Büchern die mir untergekommen sind.

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.

Zuerst der Theoretische Teil: REST steht für Representional State Transfer 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:

GET für Datenanfragen,

POST für das Ablegen von Daten,

DELETE für das Löschen von Daten und

PUT für das Updaten von Daten.

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).

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:

{
  "Name" : "Mustermann",
  "Vorname"      : "Max",
  "Adresse"       :
  {
    "Strasse"        : "Musterstrasse",
    "Nummer"     : "123",
    "PLZ"  : "98765",
    "Ort"   : "Musterstadt
  }
}

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.

Nach dieser kurzen Einführung wenden wir uns DER Frage zu: Wie geht das in Android?

HTTP GET

Zunächst einmal wird ein REST-konformer Webservice, der im JSON-Format antwortet benötigt. Hat man diesen, kann es losgehen:

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<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();
}
}

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.

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.

So einfach lassen sich Daten mittels REST und JSON in Android abfragen.

HTTP POST

Die nächste Frage, die sich aufdrängt: Daten abfragen funktioniert, aber wie ist das mit den drei anderen Dingern?

Fangen wir mit einer Methode zum Abschicken eines HTTP POST- Objektes an:

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();
}
}

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. “User”) ü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 “error:” beginnt, ist was schief gelaufen).

HTTP DELETE und HTTP PUT

DELETE und PUT können so wie POST implementiert werden, nur dass der Objekttyp von postMethod in HTTPDelete, bzw. HTTPPut, geändert wird.

Et voilà: So schnell geht’s und schon fangen die Server an zu flüstern, mehr als das, sie hören sogar zu =)

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Category: dev stuff  | Tags: , , , ,  | One Comment
Saturday, January 02nd, 2010 | Author: ForgeMo

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.

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.

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.

3D Hologramm Effekt für Android

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.

1. Handy kann nur kippen

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.

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 “Tiefenwahrnehmung” verschwindet .

2. Handy kann sich nur Horizontal/Vertikal bewegen

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.

3. Handy kann sich nur auf der Z-Achse bewegen

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.

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.

Die Mischung machts!

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.

4. Das Ultimative 3D Erlebnis !!!

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 “Pseudo-3D-Objekte” von allen möglichen Seiten betrachten.

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.

Der 3D Hologramm Effekt ist machbar!

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 :).

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.

Nachtrag:
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 “Katze” von oben wirkt der Effekt nur solange wie der Betrachter seine relative Position zum Gerät nicht verändert.

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Thursday, October 29th, 2009 | Author: ForgeMo

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.

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Category: Fahrplan, cool news  | 3 Comments
Wednesday, October 28th, 2009 | Author: Johannes Borchardt

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.


Was ist also ein Geschäftsmodell tatsächlich?

Wie der Name schon sagt das Modell eines Geschäfts. Es hängt also eng mit der Definition von “Geschäft” zusammen. Da diese unterschiedlich ausgelegt wird, ist auch die Definition von ” Geschäftsmodell” nicht eindeutig. Auf jeden Fall ist das letztendliche Ziel eines Unternehmens die Generierung von Wert, sei es in ökonomischer, sozialer oder anderer Form.

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.

  1. Die Marketingstrategie: Eine Marketingstrategie umfasst mindestens vier Punkte, die klassischen “vier P” des Marketing: Produkt (product), Preis (price), Werbung (publicity) und Distributionspolitik (place). Darüber hinaus gibt es weitere mögliche p’s, wie beispielsweise Menschen (people).
  2. Das Ertragsmodell: Wie oben beschrieben der Weg der Ertragserzielung.
  3. Markt: Die Antwort auf die Frage: 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?
  4. Wettbewerber: Eine Übersicht der vorhandenen direkten und indirekten Wettbewerber auf dem oder den existierenden Markt oder Märkten, bzw. Marktsegment oder -Segmenten.

Darüber hinaus

  1. 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
  2. Architektur der Wertschöpfung: Beantwortet die Frage: Welche Leistungen werden wo, also auf welchem Markt, wie, sprich: mit welchem Produkt, angeboten?

In den weiteren Folgen dieser Serie werden nun die einzelnen oben genannten Punkte abgehandelt, beginnend mit Punkt eins: Marketing.

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Monday, October 12th, 2009 | Author: Johannes Borchardt

Am 4. November findet im Dahlem Cube in Berlin die erste Android Konferenz in Deutschland, die Droidcon, statt. Am Vortag findet ein dazugehöriges Barcamp statt. Die Teilnahme an der Konferenz kostet 99 Euro, das Barcamp ist natürlich kostenlos.

Anfang September wurden wir von einem der Organisatoren mit der Bitte angesprochen, uns für einen Sprecherplatz zu bewerben. Gesagt, getan: Andforge goes Droidcon!

So werden unsere Teammitglieder Florian Detig und Johannes Borchardt ab 14:00 Uhr mit “Making Money Mobile” den Sinn für das Android-zu-Geld-machen schärfen. Veranlasst dadurch werden wir in den nächsten Wochen eine Reihe über Businesswissen posten, beginnend mit dem “Geschäftsmodell”.

Andforge goes Droidcon

Andforge goes Droidcon

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Category: cool news  | One Comment
Wednesday, August 26th, 2009 | Author: ForgeMo
Fahrplan NG Prototyp

Fahrplan NG Prototyp

Um unsere Beta Applikation “Fahrplan Beta” ist es in den letzten Wochen ziemlich ruhig geworden. Auch ist es so dass wir die App seit einiger Zeit aus dem Android Market entfernt haben.

Was war los?

Das Hauptproblem waren einige technische Hürden, was die Beschaffung der Fahrplan-Informationen betraf. Nach langem hin und her sind wir zu dem Schluss gekommen, dass Fahrplan Beta in  der bestehenden Form keine vernünftige Zukunft hat und haben das Projekt eingestellt.

Fahrplan NG

Unser Ziel, eine effiziente und einfache Fahrplanauskunft aufs Handy zu zaubern haben wir jedoch noch nicht aufgegeben und arbeiten gerade an einem neuen Konzept.

Es geht darum, dass bestehende Verkehrsgesellschaften wie zum Beispiel die Deutsche Bahn bereits sehr schöne mobile Internetseiten anbieten. Diese zeigen nach kurzer Eingabe von Start und Ziel eine für den Handybrowser optimierte Fahrplanauskunft an. Nervig ist jedoch, dass man jedes mal erst den Browser öffnen, die URL ansteuern, die Eingaben tätigen und auf das Ergebnis waren muss.

Um diesen Prozess so stark wie möglich zu vereinfachen haben wir das Projekt “Fahrplan NG” ins Leben gerufen. Mit “Fahrplan NG” soll es nach einer kurzen “Lernphase” möglich sein mit nur 2 Klicks und keinerlei Texteingabe den gewünschten Fahrplan anzuzeigen.

Das ganze soll wie folgt funktionieren:

  1. Click um Fahrplan NG zu starten
  2. Es werden die Felder für Start und Ziel automatisch ausgefüllt
  3. Click um Start und Ziel zu bestätigen
  4. Es wird die Auskunft der Deutschen Bahn im Browser geöffnet

Noch arbeiten wir an einem Prototypen, da das “erraten” der richtigen Start-Ziel Kombination anhand von bisherigen Eingaben nicht immer so einfach ist.

Bei Benutzern, die täglich immer die selben Routen fahren und das “erraten” so gut wie immer funktioniert, könnte man sich sogar vorstellen, dass nur ein einziger Klick notwendig ist. Der Klick zum Bestätigen der Start – Ziel Kombination würde dann nämlich wegfallen.

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Category: Fahrplan, cool news  | 7 Comments
Saturday, August 01st, 2009 | Author: ForgeMo

Offensichtlich gibt es Bemühungen von androidguys.com besonders gute Apps mit einem gewissen Award namens Android Network Awards auszuzeichnen. Wie ernst man das Ganze nehmen kann ist schwer einzuschätzen und wird die Zukunft zeigen. Interessant ist jedoch, dass eine Liste mit den nominierten Applikationen unterteilt in entsprechende Rubriken veröffentlicht wurde.

Diese kann man sehr schön nutzen um neue interessante Anwendungen zu entdecken.

Nun viel Spaß beim stöbern! :)

Liste der nominierten Apps:

1. Best Widget

Beautiful Widget
Weather Widget (Android Apps)
Twidgit Lite
Battery Status (Android Apps)
Sticky Note

2. Best Media Player

TuneWiki
Meridian Media Player
Gmote
RockOn Music Player
LukLuk

3. Best Entertainment App

Shazam
Movies by Flixster
Bubble Wrap Game
Beebplayer
Magic 8 Ball

4. Best Social Networking App

Brightkite
Pingdroid
Babbler
Bloo
Wertago

5. Best Finance App

PayPal
Bank of America
Quote Pro
Budget Droid
aCurrency

6. Best Communication App

Handcent SMS
YouMail Visual Voicemail
K9 Mail
ChompSMS
Exchange by TouchDown

7. Best News App

USA Today
NewsRob
Greed
NewsDroid
Express News (Handmark)

8. Best Weather App

Weatherbug
The Weather Channel
iMap Weather
Weather Widget (Android Apps)
AccuWeather

9. Best Twitter App

I Tweet!
Twitterride
Twidroid
Twitta
Twidgit Lite

10. Best Reference App

WikiMobile
Translate
Transdroid
Wapedia
Aldiko

11. Best WOW Factor App

Shazam
ShopSavvy
Wikitude
Qik
Gmote

12. Best Organization/Productivity App

Astrid
AK Notepad
3banana Notes
Note Everything
Documents To Go

13. Best Security App

Mobile Defense
SIM Checker
Lock 2.0
Secrets for Android
Auto Lock

14. Best Sports App

NBA Game Time
Pro Football Live
FotMob
SportsTap
Plusmo College Football

15. Best GPS/Location Based app

nru
Qype
Where
a2b
Aloqa

16. Best GPS turn-by-turn App

Waze
TeleNav
CoPilot
AndNav2
Nav4All

17. Best Streaming Music App

imeem
Last.fm
Streamfurious
Gmote
Tunewiki

18. Best Tool App

Astro File Manger
SMS Popup
AnyCut
Backgrounds
MyBackup Pro

19. Best System Utility App

Advanced Task Manager
Toggle Settings
Useful Switchers
Better Cut
Taskiller

20. Best Fitness App

Buddy Runner
CardioTrainer
Calorie Tracker
SportyPal
WorkItOut

21. Best Home Replacement App

aHome
Open Home
dxTop
Sweeter Home
Panda Home

22. Best Shopping App

ShopSavvy
Compare Everywhere
Pkt Auctions eBay
Key Ring
Grocery King

23. Best Casual Game

Abduction!
Bonsai Blast
Buka
Trap!
market Millionaire

24. Best Arcade Game

PacMan
Cestos
SNESoid
PapiJump
Retro Defense

25. Best Puzzle Game

Mystique. Chapter 2: The Child
Battleships
Brain Genius Delux
Jewellust
Puzzle Blox

Gefunden auf androidguys.com

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email
Saturday, August 01st, 2009 | Author: ForgeMo

Das letzte “Over The Air” Update für Android brachte auf den ersten Blick keine großartigen Neuerungen. Kürzlich sind jedoch immer mehr Informationen zu diesem Update aufgetaucht.

Es wurde eine relativ gefährliche Sicherheitslücke behoben. Diese Sicherheitslücke erlaubt es einem Angreifer per SMS das Gerät des Empfängers außer Gefecht zu setzen. Diese Art von Angriff gehört zur Rubrik der DOA (Denial of Service) Attacken, welche versuchen das Ziel-System unbrauchbar zu machen.

Offensichtlich war auch das IPhone für diese Art von Angriff anfällig. Windows Mobile Geräte scheinen bis jetzt noch betroffen zu sein.

Ausführlichere Infos gibts auf informationweek.com.

Share and Enjoy:
  • Yigg
  • TwitThis
  • del.icio.us
  • Digg
  • Facebook
  • Tumblr
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Socialogs
  • MisterWong
  • MisterWong.DE
  • Webnews.de
  • LinkArena
  • LinkedIn
  • email