Das Interesse an Google Glass ist ungebrochen

Folgenden Screenshot habe ich heute Morgen um 08:00 Uhr von einem Google Glass Post bei Google+ gemacht.

Google x  labs It’s hard to believe that Glass started…

Innerhalb weniger Stunden sind über 160 Kommentare geschrieben worden. Der Beitrag ist mehr als 400 mal geteilt worden und Mehr als 1000 Leute haben +1 für den Beitrag gegeben. Das ist wohl ein eindeutiges Zeichen dafür, dass Google Glass doch noch nicht Tot ist und dass es nun an der Zeit sei, den Google Glass Prototypen zu einem fertigen Produkt zu bringen. Ob wir dieses Jahr endlich die fertige Google Glass im Handel sehen werden, bleibt ungewiss.

Hier noch der Link zu dem Beitrag:
https://plus.google.com/+GoogleGlass/posts/9uiwXY42tvc

Ich bin noch nicht ganz sicher, ob ich Google Glass eine Chance geben soll. Privat finde ich so eine Brille eher störend und beruflich habe ich noch keine Idee, in wie weit mir die Brille helfen könnte. Interessant finde ich es aber trotzdem….

Android App Promotion für Spiele

mobile-phone-426559_1280
Oscar Clark hat in dem Artikel „THE GOLD RUSH IS OVER“ einen lesenswerten Beitrag über die Computerspiele Industrie und ihre Probleme veröffentlicht. Seiner Meinung nach geht es der Industrie sehr gut. Es gibt mehr Spiele als je zuvor und die Anzahl der Downloads ist auch höher als je zuvor.

Das eigentliche Problem hat, wie so oft, mit Geld zu tun. Der geschätzte durchschnittliche Erlös pro Spiel ist nur noch $5,250. Da es sich bei der Kurve der Umsätze nicht um eine gerade Linie handelt müssen die gemittelten Einnahmen pro Spiel sogar auf $400 reduziert werden. Das ist viel zu wenig, da die geschätzten durchschnittlichen Entwicklungskosten für ein Spiel sich in etwa bei $25,000 bewegen.

Die Hoffnung, einen Erfolg wie z.B. Flappy Bird oder Clash of Clans im Google Play Store zu platzieren lässt die Computerspiele Industrie auch weiterhin wachsen. Das ist gut für die Spieler, die heute mehr spielen als je zuvor und doch die Möglichkeit haben, viele gute Spiele zu spielen ohne für die Spiele bezahlen zu müssen. Dank dem sehr beliebten „Free-Minimum-Model“ das heute in so gut wie jedem erfolgreichen Spiel zum Einsatz kommt.

Entscheidend für den Erfolg eines Spiels im Google Play Store ist neben der gelungenen Spielidee und einer ansprechenden Umsetzung auch das App-Marketing. Bei mehr als 1.000.000 Apps und Spielen im Google Play Store (Stand 07.2013) muss man sich den Weg an die Spitze mühsam erarbeiten. Hat man es dann aber geschafft, kann man sich auf reichlich Downloads gefasst machen.

Hier ein paar Beispiele (Stand 16.12.2014):

  • Clash of Clans 100.000.000–500.000.000 Installationen
  • Candy Crush Saga 100.000.000–500.000.000 Installationen
  • Mein Talking Tom 100.000.000–500.000.000 Installationen
  • Pou 100.000.000–500.000.000 Installationen
  • die Simpsons™ Springfield 50.000.000–100.000.000 Installationen
  • Real Racing 3 50.000.000–100.000.000 Installationen
  • 2048 10.000.000–50.000.000 Installationen
  • Candy Crush Soda Saga 10.000.000–50.000.000 Installationen
  • Minecraft – Pocket Edition 5.000.000–10.000.000 Installationen
  • Plants vs. Zombies 5.000.000–10.000.000 Installationen

Neben diesen Spielen, gibt es noch eine Reihe anderer Apps, die noch wesentlich mehr Installationen verzeichnen können. Allen voran Gmail, YouTube und Maps mit 1.000.000.000 – 5.000.000.000 Installationen. Und es werden täglich mehr.

Erinnere ich mich zurück an mein altes Nokia 7110 mit einer Handvoll Spielen, bin ich mit Snake II und Racket auch immer ganz zufrieden gewesen. Es gab ja nichts anderes. Entweder man hat die vorinstallierten Spiele gespielt oder halt nicht. Die Welt war einfach und die Handy Hersteller haben festgelegt, welche Spiele man zu spielen hat.

Heute sieht das anders aus. Aus dem Mangel ist ein Überfluss geworden und heute hat niemand mehr die Möglichkeit, alle verfügbaren Spiele auszuprobieren. Google versucht natürlich unser Verhalten zu tracken und zu bewerten um uns Vorschläge zu machen. Daneben gibt es noch diverse Portale, Foren, Blogs und Toplisten, die uns alle sagen wollen, welches Spiel wir denn nun als nächstes Spielen sollen. Aber das alles sind nur mangelhafte Lösungen zur Auswahl der Spiele und Apps.

Neue Spiele haben es in dieser Situation sehr schwer, auf einem natürlichen Weg die nötige Aufmerksamkeit zu erhalten. Das Zauberwort lautet hier App-Promotion. Dabei geht es darum, mit Hilfe verschiedener Hebel die Aufmerksamkeit in der Startphase so weit zu steigern, dass die Spieler nicht mehr anders können, als das Spiel zu installieren und zu probieren. So die Theorie. In der Praxis klappt das leider eher selten und nicht nur abhängig von der App Promotion Strategie sondern auch von der Spielidee und der Umsetzung.

Mögliche App-Promotion Strategien

Die App in den Appstore bringen (Google Play, Amazon, etc.)

Das wichtigste ist es natürlich, die App erst mal im App-Store zu haben, denn laut Forrester nutzen 63% der Smartphone Nutzer den Appstore als Anlaufstelle zum Finden von neuen Apps. „So weit so gut aber welcher Appstore ist denn der Richtige für die App?“ denkst Du gerade vielleicht. Aber der Gedanke ist falsch. Richtig währe: „Welcher Appstore ist denn der falsche für mich?“. In alle anderen App Stores sollte die App eingetragen werden. Eine sehr umfangreiche Liste von möglichen App-Stores findet man hier.

E-Mail Marketing

E.Mail Marketing ist ein alter Hut und funktioniert noch immer gut.
Wenn man die Möglichkeit hat, seine Zielgruppe per E-Mail zu erreichen, sollte man diese Chance nutzen. Es gibt nur sehr wenig andere Promotion Maßnahmen, die so erfolgreich sind wie das direkte E-Mail Marketing. Hat man die E-Mail Adressen der Zielgruppe nicht zur Hand oder sprechen andere Hürden (z.B. rechtliche Aspekte) gegen eine direkte Ansprache per Mail, dann helfen auch Blogs, Foren und Soziale Netzwerke zur indirekten Ansprache.

Den Preis reduzieren

Dank des “Free-Minimum” Modells vieler Apps ist das nicht immer ganz einfach, aber doch möglich. So kann man kostenpflichtigen Erweiterungen für einen begrenzten Zeitraum reduziert anbieten. Z.B. kann man im Spiel „Real Racing 3” gelegentlich neue Autos zu Schnäppchenpreisen kaufen. Hat man aber nicht genug virtuelle Währung auf dem virtuellen Konto, kann man den virtuellen Kontostand erhöhen, indem man den realen Kontostand ein wenig reduziert. :-)
Diese Strategie funktioniert in den meisten Fällen sehr gut und wird nicht nur von EA erfolgreich angewendet. Daneben gibt es noch viele andere kreative Ideen, den Spieler dazu zu bewegen, über seinen Schatten zu springen und doch mal einen Euro auszugeben. Diese Strategie dient aber eher der Monetarisierung eines erfolgreichen Spiels als der Neukundengewinnung.

Android Gamer Blogs, Foren und Soziale Netzwerke

Netzwerken heißt das Zauberwort. Über Foren, Blogs, Facebook, Twitter, und andere Soziale Kanäle kann man frühzeitig Kontakt zu Spiele begeisterten aufnehmen und vorab schon mal eine Alpha oder Beta Version zeigen. Das Zauberwort heißt hier “Pre–Launch–Marketing”. So kann man das Spiel schon bewerben, bevor es auf den Markt gebracht wird.
Der Google Play Store hat dafür eine eigenständige Funktion. So ist es möglich, eine im Play Store als „Beta“ gekennzeichnete Version nur einem ausgewählten Nutzerkreis anzubieten. So erzeugt man schon vor dem Launch Aufmerksamkeit und bekommt wertvolles Feedback für Verbesserungen und Bugfixes.

App Store Ranking

Das App Store Ranking ist das A und O des App Marketings. Eine App die im Google Play Store für den Begriff „Wetter“ ganz vorne steht, hat es geschafft. Doch wie genau funktioniert denn nun ASO (App store optimization). Ähnlich der SEO (Suchmaschinenoptimierung) gibt es hier eine Reihe von Ranking Faktoren, die dann eine App für einen Suchbegriff ranken lassen. Welche Faktoren das genau sind, weiß niemand so genau und ist von Appstore zu Appstore unterschiedlich. Trotzdem haben sich folgende Faktoren in den meisten Fällen als relevant herausgestellt:

  1. Keywort im Titel
  2. Keywort in der App Beschreibung
  3. Keywort im Promo Text
  4. Anzahl der Downloads
  5. Positive aber natürliche Ratings/Reviews
  6. App Icon
  7. Screenshots der App für alle Formate (Smartphone, Tablett 7“ und 10“)
  8. Internationalisierung der App
  9. Möglichst wenig Deinstallationen
  10. Soziales Engagement (+1 auf G+)
  11. Backlinks die den Appstore Eintrag verlinken

Diese Faktoren beeinflussen das Ranking der App im Appstore. Es ist wichtig, die relevanten Suchbegriffe (Keyworte) im Auge zu behalten und die Position der App in den Suchergebnissen des App-Stores zu prüfen um evtl. auftretende Änderungen zu registrieren und die Konkurrenz im Auge zu behalten. (https://blog.kissmetrics.com/app-store-optimization/)

Youtube, Everyplay und Co.

Das Sharing von Gameplay Videos hat ein enormes Wachstum hingelegt und Portale wie Youtube und Everplay haben dazu beigetragen, dass viele Gamer sich Tipps und Tricks von Gleichgesinnten abschauen indem sie sich diese Gameplay Videos ansehen. Auch Google hat diesen Trend erkannt und in das aktuelle Android Release (Android – 5.0 Lollipop) eine Funktion ergänzt, die Bildschirm-Aufzeichnung (Screencast) und -Spiegelung (Mirroring) ohne Root möglich macht. So können Spielabläufe mit geschnitten und die erstellten Videos direkt bei Youtube, Everyplay und Co veröffentlicht werden.
Diese kostenlose Marketing Maßnahme sollte den Spielern so einfach wie möglich gemacht werden. Zu diesem Zweck ist es nötig, die Funktion der Bildschirm-Aufzeichnung und Veröffentlichung direkt in das Spiel zu integrieren und vorhandene Hürden von vorneherein aufzulösen.

Weitere Infos zu Everplay: http://www.insidemobileapps.com/2014/02/11/everyplay-game-recording-network-comes-to-android/

Kontinuierliche Verbesserungen und Updates

Ist eine App erst mal fertig programmiert und steht im App-Store zum Download bereit, beginnt neben dem Marketing auch die kontinuierliche Verbesserung. Es müssen Fehler behoben werden und Funktionen ergänzt oder angepasst werden. Das Aussehen der App muss verbessert werden um die Usability zu verbessern, fehlende Funktionen müssen ergänzt werden, etc.. Jede Änderung bringt ein Update der App mit und erzeugt Aufmerksamkeit beim Spieler. Dies kann negative Aufmerksamkeit sein. Wenn z.B. das Game erst wieder nach dem Update gespielt werden kann und man gerade kein WiFi für den 1GB Download zur Verfügung hat. Es kann aber auch positive Aufmerksamkeit erzeugt werden, wenn man z.B. neue Funktionen freischaltet oder das Design des Spiels wesentlich verbessert.
Auf jeden Fall sollte man mit den Gamern auf allen Kanälen in Kontakt bleiben und genau zuhören. Statt die Wünsche zu ignorieren sollte man eine Roadmap für mögliche Erweiterungen erstellen und mit den engagiertesten Gamern abstimmen. Durch den kontinuierlichen Kontakt und die Mitbestimmung der Nutzer steigen Engagement und Loyalität und ganz nebenbei wird die App immer besser und besser. Aber nicht übertreiben sonst wird aus einem Tetris noch ein Snake. :-)

Widgets und Notifications

Widgets und Notifications sind in vielen Fällen eine sinnvolle Erweiterung für eine App, die etwas im Hintergrund macht und dem Nutzer diese Informationen an verschiedenen Stellen präsentieren möchten. Aber auch Spiele können diese Funktion nutzen und die Aufmerksamkeit steigern. Auch wenn hier das Spiel schon installiert sein muss, und der Gamer ein Widget erst bewusst und absichtlich auf dem Home-Screen platzieren muss um das Widget permanent vor Augen zu haben. Aber das geht nur, wenn ihm diese Möglichkeit überhaupt angeboten wird.

Lokalisierung/Internationalisierung (Qualität)

Was soll ich dazu noch sagen. Ich zitiere mal kurz:

“China, one of the fastest growing mobile device markets in the world”

Quelle: http://www.mobyaffiliates.com/blog/top-mobile-marketing-trends-2014/

Daher ist es entscheidend, ein Game nicht nur in deutscher Sprache und selbstverständlich auch in englischer Sprache zu produzieren sondern auch in chinesisch. Das bedeutet nicht nur Texte und Sprachausgaben, sondern auch Bilder und Farben an die Bedürfnisse der jeweiligen Nationalität und Kultur anzupassen. Hier kann man so viel falsch machen und es gibt nur so wenig Experten für diese Belange (wenigstens hier in Deutschland. In China sieht das ganz anders aus :-) ). Ich sehe jedenfalls rosige Zeiten auf die Branche der Internationalisierung und Lokalisierung von Apps und Spielen zukommen.

  1. China
  2. USA
  3. Indien
  4. Russland
  5. Japan
  6. Indonesien
  7. Brasilien
  8. Deutschland
  9. UK
  10. Mexiko

Infografik: Die Top 10 Smartphone-Nationen 2015 | Statista

Banner Werbung

Aus der Sparte “Evergreens” ist die Bannerwerbung eine der einfachsten Möglichkeiten, Aufmerksamkeit zu erregen und eine App oder ein Spiel bekannt zu machen. Leider ist es auch eine der teuersten Möglichkeiten, das App Marketing zu machen und wenn man es schon macht, dann auch richtig.
Online Banner-Werbung auf den richtigen Webseiten (Themenrelevant und Reichweiten stark) und Mobile Ads in Reichweiten starken Apps und Games mit Rich Media und Video Inhalten, die man zwar auch wieder teuer produzieren lassen muss, aber laut der Mobile Advertising Industrie lohnt sich das.

Fazit

App Promotion ist eine vielfältiges Betätigungsfeld. Es gibt eine Vielzahl von Möglichkeiten um die eigene App bekannter zu machen. Leider haben nicht alle Entwickler die Möglichkeiten, die App Promotion Maßnahmen durchzuführen. Einige Unternehmen haben das erkannt und sich auf diese Nische spezialisiert. Wer sich der Aufgabe also nicht gewachsen fühlt, sollte hier den Spezialisten ran lassen oder eine innovative “Guerilla-Marketing” Methode aus dem Hut zaubern können.

Code Beispiele für Android Lollipop

STAMP

Mit der Einführung von Android 5.0 Lollipop , hat Google mehr als 20 neue Codebeispiele veröffentlicht um den Entwicklern die neuen Funktionen zu präsentieren. Die Codebeispiele kann man ganz einfach im Android Studio 1.0 importieren, compilieren, installieren und ausprobieren :-).

Einfach im Menü unter “Datei” > “Import Sample” das Beispiel auswählen. Android Studio 1.0 erstellt automatisch ein neues Projekt für das Beispiel so dass man mit den Beispiel Code nach belieben herumexperimentieren kann.

Links:
http://android-developers.blogspot.de/2014/12/new-code-samples-for-lollipop.html
http://developer.android.com/samples/new/index.html?utm_campaign=lollipopsamples-1214&utm_source=dac&utm_medium=blog

Canva macht einen Designer aus mir :-)

STAMP (1)

Dank Canva bin ich zum Designer geworden. Seit ich mir vorgenommen habe, jeden Post mit einem Bild zu versehen, habe ich nach einer Lösung gesucht, die mir dabei hilft, schnell und einfach ein solches Bild zu erstellen.
Dabei habe ich schon so einiges ausprobiert und sogar schon angefangen, etwas eigenes zu programmieren. Doch dann habe ich Canva entdeckt.

Zitat:
“The easiest to use design program in the world”
The Webbys

Zitat:
“Canva enables anyone to become a designer”
PSFK

Dank Canva kann jeder zum Designer werden … sogar ich. Ich habe es natürlich direkt ausprobiert und war positiv überrascht, wie einfach es ist, mal schnell etwas zusammen zu klicken. Dabei hat mir die intuitive Bedienung und die vielen verfügbaren Elemente sehr geholfen. Das erste Ergebnis kannst Du ja hier schon bewundern (siehe oben).
Aber ich höre schon die Stimmen der ewigen Zweifler und derer, die sich schon vor Canva als Designer bezeichnet haben.

„Designen ist mehr als das herum schubsen von Elementen.„
„ A fool with a tool is still a fool”
„So ein Dienst kann den richtigen Designer nicht ersetzen.“
„Designer brauche viel Erfahrung, um ein gutes Design erstellen zu können“
„Designen ist eine Kunst und kein Handwerk“

Aber trotz der (vermutlich gerechtfertigten) Kritik ist Canva gut geeignet, um mal kurz eine Postkarte oder eine Grafik für ein eBook, eine Präsentation oder eine Infografik zu erstellen, ohne gleich eine Adobe Lizenz kaufen zu müssen.

Wie funktioniert denn dieses Canva nun?

Der Designer würde sagen: „Ein Bild sagt mehr als tausend Worte“ aber ein Video tu es auch :-).

Wie man im Video sieht ist Canva kinderleicht zu bedienen und liefert (in meinen Augen) brauchbare Ergebnisse, die sich nicht verstecken müssen. Sofern man einen Hauch von Begabung mitbringt. Für diejenigen, die kein Talent haben, wird sogar eine „Design Schule“ angeboten. In dieser Design Schule kann man die Grundlagen guten Designs lernen.

Was kostet Canva?

Canva ist kostenlos. Auch wenn dahinter natürlich kommerzielle Interessen stecken kann Canva kostenlos genutzt werden. Kosten entstehen nur, wenn man die „Premium Bilder“ verwenden möchte. Ein Bild kostet im Moment 1$. Das ist nicht sehr viel und auch wenn man nur die kostenlosen Bilder und Design Elemente verwendet. kann man schon eine Menge machen.

Fazit

Canva ist ein Design Tool, mit dem der Anfänger schnell die ersten Erfolge sieht, auch wenn ein Profi Designer nicht ersetzt werden kann. Allerdings ist das Tool ideal geeignet, wenn man ein schmales Budget hat.

Canva

Falls Du ein Design mit Canva erstellt hat, hinterlasse mir doch einfach hier einen Kommentar mit einem Link zum Design. Ich bin schon gespannt auf die Kreationen.

Google Developer Content ist nun auch offline verfügbar

DEV_KIT_2_1

Jeder, der schon mal für Android entwickelt hat und kein Internet hatte kennt das Problem der Informationsbeschaffung. Wichtige Informationsquellen wie z.B. Stackoverflow, die Google API, Vogella und die endlosen Blogs und Tutorials sind plötzlich nicht mehr erreichbar.
In einer Welt in der „Always Online“ realität geworden ist, ist das eigentlich ein fast undenkbarer Zustand. Aber nicht überall auf der Welt ist das so und auch in Deutschland gibt es noch Dunkle Punkte auf der Internet Landkarte.

Besonders als ein Mobiler Software Entwickler der oft in Bus und Bahn unterwegs ist und mit einer mobilen Entwicklungsumgebung wie z.B. AIDE arbeitet sind Funklöscher und aufgebrauchtes Datenvolumen ein echtes Problem. Irgendwie trifft es einen immer im falschen Moment.

Aus diesem Grund habe ich mir vor längerer Zeit einmal die App IT42 entwickelt.
Die App ist optimal an die Bedürfnisse mobiler Android Entwickler angepasst und enthält die 100.000 besten “Stackoverflow.com” Topics für Android Entwickler.

Nun hat Google das Problem auch erkannt und die eigenen Google Developer Ressourcen zum Download zur Verfügung gestellt.
Darin enthalten sind:

• The entire I/O Dev Bytes Series
• Full Google Udacity course videos (Android, App Engine, HTML5 games, UX, Mobile Web)
• The entire Android Website: http://developer.android.com
• Material Design docs from http://google.com/design
• Web Fundamentals documentation from http://developers.google.com/web
• The Google Cloud Platform docs from https://developers.google.com/cloud,
• Android, Cloud, and Design videos from the Google Developers YouTube channel

Alles in allem sind das ca. 30 GB Daten. Viel zu viel um alles auf einem Android Tablett oder Smartphone immer bei sich zu haben. Als Typische Zielgruppen und Anwendungsgebiete werden im Readme z.B. Code Labs, Hackathons, Viewing parties, Reference and self study, Udacity study und Hosted within local intranet angegeben.

Da die Inhalte alle unter der Creative Commons und der Apache Lizenz stehen, darf der Inhalt auch ausdrücklich unter Einhaltung der Lizenzbedingungen weitergegeben werden.

Leider ist mir der Download momentan verwehrt. Beim Versuch eine der Zip Dateien herunter zu laden bekomme ich immer den Fehler „Diese Datei kann momentan nicht angezeigt oder heruntergeladen werden.“. Also heißt es Geduld haben und noch ein wenig warten bevor ich eine Offline Kopie der Google Developer Unterlagen mein eigen nennen kann.

Google Drive – Quote überschritten

Ich bin jedenfalls schon sehr gespannt darauf, alle Daten offline zu haben. So kann man besser und effektiver suchen und damit auch programmieren.

Links:
Bandwidth challenged? Amazing Google Developer content is now available offline

Update (05.12.2014)

Nun hat Google doch noch eine Lösung gefunden und man kann die Dokumente nun über die Links auf der Seite https://sites.google.com/site/gdgdevkitpilotreadme/home/downloads downloaden.
Nachdem ich nun schon langsam an der Kompetenz von Google gezweifelt habe, Dateien zum Download zur Verfügung zu stellen, ist das Nikolaus Geschenk für mich doch noch pünktlich angekommen. :-)

Ein App Icon erstellen

Jedes mal, wenn ich wieder eine App programmiert habe und sie im Play Store veröffentlichen möchte, stellt sich mit die Frage nach dem richtigen App Icon. Das App Icon ist das erste was der der zukünftige Nutzer der App zu Gesicht bekommt und der erste Eindruck ist bekanntlich der wichtigste.

Das App Icon sagt bereits viel über die Qualität der App aus und muss das Gesamtbild der App harmonisch abrunden. Es sollte die Funktionalität beschreiben ohne sich in Details zu verlieren. Also ganz nach dem Motto. “Ein Bild sagt mehr als 1000 Worte.”

Entscheidet sich ein Nutzer dazu, die App zu installieren, wird das Icon von da an auf dem Smartphone oder Tablett sichtbar sein. Daher muss das Icon ansprechend gestaltet sein. Leider gibt es aber ganz unterschiedliche Persönlichkeitstypen, die ganz unterschiedlich angesprochen werden sollten. Einen schönen Beitrag zum Neuromarketing kann man unter http://www.sunlab.de/viele-wege-fuehren-nach-rom-zur-conversion-optimierung/ nachlesen.

Zitat:
“Es gibt 3 primäre Vektoren, die das Verhalten eines Menschen bestimmen: Stimulanz, Dominanz und Balance. Je nach Typ sind ein oder zwei dieser Vektoren besonders stark ausgeprägt, was dazu führt, dass ein Mensch einem bestimmten Persönlichkeitstyp zuzuordnen ist.”

Da ich mich aber eher als Programmierer sehe und ich nur sehr oberflächliches Know How über Neuromarketing oder Farbwahl habe gehe ich meistens eher pragmatisch vor.

Als erstes sehe ich mir mal die App Icons vergleichbarer Apps an, die schon bei Google Play gelistet sind. Meistens gibt es schon eine Reihe ähnlicher Apps (die dann aber nicht halb so gut wie meine eigenen Apps sind :-) ). Da ich meine Apps in erster Linie für mich selbst programmiere, bin ich auch die Zielgruppe und daher sollte ein App Icon das mich anspricht, auch andere potentielle Nutzer ansprechen …. hoffe ich.

Aktuell habe ich gerade eine Floating Stopuhr App erstellt, für die ich nun ein App Icon benötige. Also suche ich erst mal in Google Play nach “Stopwatch”.

stopwatch   Android Apps auf Google Play

Das Ergebnis zeigt eine Auswahl an möglichen Icons von existierenden Apps zum Thema “Stopuhr”. Mich persönlich spricht eher das “StopWatch & Timer” App Icon an. Das Icon ist klar, ohne viele Details und auf den ersten Blick ist klar, was die App für eine Funktion hat. Daher versuche ich mich bei der Auswahl/Erstellung meines eigenen App Icons daran zu orientieren.

Da ich leider nicht das Talent habe, ein App Icon zu erstellen, bediene ich mich vorhandener Cliparts, die ich bei verschiedenen Portalen finden kann. Bei der Auswahl ist immer darauf zu achten, dass die Lizenzbedingungen eingehalten werden. So sind mir Public Domain oder CC Cliparts natürlich am liebsten. Diese finde ich oft unter:

  • openclipart.org
  • iconfinder.com

    Daneben gibt es noch viele andere Protale, aber diese beiden sind mir die liebsten und ich finde in den meisten Fällen, was ich suche.

    Search results for  stopwatch  clipart   Openclipart
    Eine Suche in der Openclipart Bibliothek liefert doch schon ganz gute Ergebnisse und ich entscheide mich für eine recht schlichte Variante.

    dtjohnnymonkey_Stopwatch_(shaded_

    Da es sich bei den Bildern der Openclipart Bibliothek um Vektorgrafiken handelt, kann man diese mit einem Programm wie z.B. Inkscape nachträglich noch ganz einfach anpassen und nach den eigenen Bedürfnissen ergänzen. Nach ca. einer halben Stunde rumprobieren habe ich dann mein App Icon in einer Auflösung von 512×512 Pixeln. Das ist die Auflösung, die der Google Play Store für den Eintrag verlangt.

    Stopwatch

    Mit hilfe der vielen kostenlosen Cliparts ist es mir möglich, schnell und einfach ein App Icon zu erstellen, dass nicht aussieht, als hätte es ein 4-Jähriger mit Paint gemalt :-).

  • Mit diesen Programmierkenntnissen verdient man das meiste Geld

    In meinem Artikel Programmierung – Quo vadis? habe ich vor längerer Zeit mal die Top Themen für Software Entwickler zusammengestellt. Allerding ging es in der Auswertung nicht um Geld sondern um die Zukunft der Technologie.

    In diesem Artikel geht es mal nur um das Geld. Denn ein US Unternehmen hat eine Analyse gemacht und dabei die 12 wertvollsten Programmierkenntnisse identifiziert. Diese lassen sich vermutlich nicht 1 zu 1 auf den deutschen Markt übertragen. Trotzdem wird es in Deutschland einen ähnlichen Trend geben, der vergleichbare Gehälter ausspuckt.

    1. Ruby on Rails – $109,460
    2. Objective C – $108,225
    3. Python – $100,717
    4. JAVA – $94,908
    5. C++ – $93,502
    6. JavaScript – $91,461
    7. C – 90,134
    8. R- $90,055
    9. C# – $89,074
    10. Visual Basic – $85,962
    11. SQL – $85,511
    12. PERL – $82,513

    Meine persönliche Einschätzung zu den einzelnen Themen:

    Ruby on Rails

    Das Ruby on Rails auf Platz 1 steht verwundert mich wirklich. Es liegt vermutlich daran, dass es zu wenig Experten auf dem Gebiet gibt. Allerdings glaube ich nicht, dass sich jetzt noch ein Einstieg lohnt.

    Wie man in der Abbildung sieht, schwindet das Interesse kontinuierlich und langfristig wird Ruby nur ein Leben in der Nische fristen.

    Objective C

    Da ich selbst einige Erfahrung mit Objective C gemacht habe kann ich dazu nur sagen: “Wer Schmerzen mag kann sie hier bekommen und wird auch noch gut dafür bezahlt.”

    Python

    Den Hype um Python verstehe ich nicht. Die Programmiersprache hat schon einige Jahre auf dem Buckel, ist aber nicht tot zu kriegen. Erschienen ist sie schon 1991 und seit mindestens 10 Jahren it Python eine Programmiersprache, die auch im Enterprise Umfeld genutzt wird. Ich selbst habe in der Anfangszeit von Python mal ein Buch durchgearbeitet. Wir sind aber recht schnell wieder auseinander gegangen, da es einfach nicht gefunkt hat. Trotzdem begegnet mir Python im Alltag so oft, dass ich ständig in Versuchung komme, doch noch mal einen Annäherungsversuch zu wagen.

    Um mal Python im Vergleich zu Ruby und Objective C zu zeigen, habe ich hier noch mal den Google Trend der 3 Programmiersprachen im Vergleich erzeugt. Es ist klar zu erkennen, dass der Python Wert ca. 20 mal so groß ist wie der von Objective C und Ruby on Rails.

    Google Trends   Websuche Interesse  ruby on rails  objective c  python   Weltweit  2004   heute

    Java

    Java ist die Programmiersprache meiner Wahl. Ich bin ihr seit fast 20 Jahren treu und auch wenn ich immer wieder mal anderen Programmiersprachen hinterher schaue, bleibe ich doch bei Java … und das ist auch gut so :-).

    Hier noch mal Java und Python im Vergleich.
    Google Trends   Websuche Interesse  ruby on rails  java   Weltweit  2004   heute

    C, C++ und C#

    C und C++ haben auf jeden Fall eine Daseinsberechtigung und das wird auch noch lange so bleiben. C und C++ sind solide Programmiersprachen die es noch geben wird, wenn ich längs in Rente bin.

    JavaScript

    JavaScript hatte es in den Neunzigern nicht leicht. Irgendwie hat es nie richtig funktioniert, dann noch die Browserabhängigkeit (IE und Mozilla) und und und. Aber spätestens seit node.js, ECMAScript, Cloud und Co. ist JavaScript zu einem Überflieger mutiert der so gigantisch gewachsen ist, dass ich es fast noch immer nicht glauben kann und es geht noch weiter aufwärts.

    SQL

    Auch wenn es heute dank OR Mapping theoretisch auch ganz ohne SQL geht, so ist SQL doch in jedem Projekt von Nöten, dass irgendwie Daten in einer relationalen Datenbank speichert. Daher ist SQL auch ein Thema dass eine erfolgreiche Vergangenheit hat und dank Big Data eine noch erfolgreichere Zukunft haben wird.

    Sonstige

    Alle anderen Themen sind für mich nicht so relevant. So etwas wie R kenne ich ehrlich gesagt gar nicht und Visual Basic kann man für Excel oder Access benutzen. Pearl dagegen ist eher was für Masochisten, die kryptische Ausdrücke lieben, die sie selber nach 5 Minuten schon nicht mehr verstehen.

    Fazit

    Egal wofür man sich entscheidet. Arbeit gibt es auf jeden Fall genug und an den Gehältern kann man erkennen, dass Programmierer in der Regel nicht am Hungertuch nagen. Also ab die den nächsten Buchladen und erst man mit dem “Programmieren für Dummys” anfangen. Der Rest ergibt sich dann schon irgendwie.

    Quelle:
    http://qz.com/229570/here-are-most-valuable-skills-in-americas-tech-job-market/

    Top 8 Source Code Search Engines

    Als Programmierer ist mal ja angehalten, das Rad nicht ständig neu zu erfinden und irgendwann erkennt jeder Programmierer den Wert der Tastenkombination CTRL-C & CTRL-V. Mittlerweile gibt es so viele Quellen für die Suche in Open Source Quellcode, dass ich hier mal meine Top 10 Suchmaschinen für die Source-Code Suche zusammengestellt habe.

    Mein Top 7(+1) Source Code Suchmaschinen

    http://github.com/search

    Github.com ist mittlerweile eines der größten Code Repositories überhaupt und bietet eine sehr gute Suche, die nach Programmiersprache, Dateiname und vielem mehr filtern kann. Darüber hinaus gibt es sogar ein API mit dem man die Suche die vorhandene Systeme integrieren kann statt im Browser danach zu suchen.

    http://code.openhub.net/

    Aus koders.com ist code.openhub.net geworden. Auch hier gibt es eine einfache und schnelle Suche nach Open Source Quellcode in diversen Programmiersprachen, viele Filter (z.B. Nach Programmiersprache oder Dateiendung) und eine umfangreiche Abfragesprache mit der man die Suche verfeinern kann.

    http://searchcode.com/

    Sehr schnell und sehr sauberes Design. Diese Source Code Search Engine ist noch nicht so bekannt, hat aber einiges auf dem Kasten und kann mit den anderen gut mithalten.

    http://search.maven.org/

    Hier kann man nicht direkt die Sourcen von Java Klassen durchsuchen. Aber wenn man weiß, was man benötigt, kommt man schnell ans Ziel und kann sich viel Arbeit sparen. Da Maven aus der Java Welt kommt (Maven ist ein Build-Management-Tool der Apache Software Foundation und basiert auf Java. Mit ihm kann man insbesondere Java-Programme standardisiert erstellen und verwalten.), findet man hier allerdings nur Java Jar Files.

    http://www.dzone.com/snippets

    Snippets sind im Kommen. Auch das haben wir der Tastenkombination CTRL-C & CTRL-V zu verdanken und dzone hat unter http://www.dzone.com/snippets eine kleine aber feine Snippet Suche realisiert, die auch relativ häufig brauchbare Snippets liefert.

    http://snipplr.com/

    Eine weitere sehr gute Anlaufstelle für Snippets ist snippler. Hier findet man wirklich alles. Ich nutze es gerne für die Inspiration und finde jedes mal wieder etwas brauchbares. Mal hier ein Stückchen CSS, mal da eine Java Methode oder ein Filter für ein WordPress Plugin. Es ist für jeden was dabei und es gibt so viel. Einfach Toll.

    http://opensearch.krugle.org/

    Das Repository der Krugle Source Code Suche beherbergt momentan erst 164 Projekte mit 750.354 Dateien und 82.762.532 Quelltext Zeilen. Ich hoffe, dass hier in Zukunft noch mehr passiert, da die Suche auch gut und einfach zu nutzen ist und man nie genug Quellen für kostenlose Open Source Dateien haben kann.

    http://vanillaco.de/

    “Last but not least” Vanillacode. Eine Open Source Source Code Suchmaschine speziell für die Bedürfnisse der WordPress Plugin Entwickler zugeschnitten.
    Auch wenn Eigenlob bekanntlich stinkt, muss ich hier an der Stelle mal erwähnen, dass Vanillacode mein eigenes Werk ist und ich sehr zufrieden mit dem Ergebnis bin. Dank Vanillacode kann ich viel schneller mal ein WordPress Plugin entwickeln oder mir die Historie eines vorhandenen WordPress Plugins anzeigen lassen. Aktuell durchsucht Vanillacode gerade ca. 35.000 WordPress Plugins und bietet die Möglichkeit, nach Dateierweiterung, Plugin Name und Version zu filtern. Darüber hinaus kann Vanillacode auch verschiedene Such-Terme miteinander logisch miteinander verknüpfen (AND, OR, NOT, …). Wer gerne wissen möchte, wie ich auf den Namen Vanillacode gekommen bin, kann dies unter “http://en.wikipedia.org/wiki/Vanilla_software” nachlesen.

    Offener Brief an Mr. Wong


    Sehr geehrter Herr Wong,

    vielen Dank für das nette Angebot, aber ich habe momentan kein Interesse an dieser Geschäftsbeziehung. Auch wenn ich größere Geldbeträge sonst gerne entgegen nehme, muss ich es leider ablehnen. Mein Anlagenberater hat mir dazu geraten, da er hier irgendwo einen Haken vermutet.
    Ich persönlich habe in ihrer Email keinen Haken finden können, aber bisher bin ich mit den Empfehlungen meines Anlagenberaters immer gut gefahren und möchte auch dabei bleiben.
    Da ich sie unter ihrer persönlichen E-Mail Adresse nicht erreichen kann, möchte ich ihnen also auf diesem Weg noch einmal für das Angebot danken auch wenn ich es bedauerlicherweise ablehnen muss.

    PS: Falls Sie diesen Brief lesen, möchte ich sie bitten, mir noch einmal kurz mitzuteilen, wer mich ihnen empfohlen hat, um ihm mitteilen zu können, dass ich in derartigen Empfehlungen nicht genannt werden möchte.

    Mit freundlichen Grüßen
    Michael Jentsch

    … Ironie Aus :-)

    Formular Validierung in PHP mit der filter_var Funktion

    Die offizielle Beschreibung der Funktion filter_var unter http://php.net/manual/de/function.filter-var.php ist mit dem Satz „filter_var – Filtern einer Variablen durch einen spezifischen Filter“ doch eher ungenügend beschrieben, da die Funktion so viel mehr kann.

    Die Funktion wird wie folgt aufgerufen:

    mixed filter_var ( mixed $variable [, int $filter [, mixed $options ]] )

    Parameter:

    $variable Wert der gefiltert werden soll. Arrays werden rekursiv gefiltert.
    $filter ID des zu benutztenden Filters. Standard ist FILTER_SANITIZE_STRING.
    $options Assoziatives Array mit Optionen oder bitweise Disjunktion von Flags. Wenn der Filter Optionen akzeptiert, können Flags auch im “flags” Feld des Arrays angegeben werden. Für “callback” Filter sollte der callback-Typ angegeben werden.

    Return: Gibt die gefilterten Daten zurück oder FALSE wenn fehlgeschlagen.

    Als Filter können die folgenden Werte verwendet werden:

    Filter für die Validierung:

    Name Beschreibung

    FILTER_VALIDATE_BOOLEAN Return TRUE für “1”, “true”, “on” und “yes”, FALSE für “0”, “false”, “off”, “no”, und “”, für alles andere ist NULL der Rückgabewert
    FILTER_VALIDATE_EMAIL Email Validierung. Gibt die E-Mail Adresse zurück oder FALSE wenn fehlgeschlagen.
    FILTER_VALIDATE_FLOAT Float Validierung. Gibt einen float Wert zurück oder FALSE wenn fehlgeschlagen.
    FILTER_VALIDATE_INT Integer Validierung. Gibt einen int Wert zurück oder FALSE wenn fehlgeschlagen. Optional kann noch eine Range festgelegt werden.
    FILTER_VALIDATE_IP IP Adress Prüfung. Optional kann hier auf IPv4, IPv6 oder nur im Internet geroutete IP Adressen gefiltert werden.
    FILTER_VALIDATE_REGEXP Perl compatible Regular-Expression Validierung. Kann man auch machen, wenn man dem regulären Ausdruck vertraut :-)
    FILTER_VALIDATE_URL URL Validierung. Optional können hier die notwendigen URL Elemente wie z.B. FILTER_FLAG_SCHEME_REQUIRED angegeben werden.

    Neben den Filtern für die Validierung gibt es noch Sanitize Filter und die Möglichkeit eine eigene Callback Funktion zum Filtern der Daten anzugeben. Diese Filter möchte ich hier aber nicht weiter vertiefen und daher hier die Liste der Filter der Vollständigkeit halber.
    FILTER_SANITIZE_EMAIL, FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_MAGIC_QUOTES, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_SANITIZE_NUMBER_INT, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_STRIPPED, FILTER_SANITIZE_URL, FILTER_UNSAFE_RAW, FILTER_CALLBACK

    Hier noch ein paar Beispiele für die Nutzung

    Validierung eine E-Mail Adresse mit Hilfe der Funktion filter_var:

    if (filter_var(mail@host.com', FILTER_VALIDATE_EMAIL)) { 
        echo 'VALID'; 
    } else {
        echo 'NOT VALID';
    }

    Validierung eine URL Adresse mit Hilfe der Funktion filter_var:

    if(!filter_var($url, FILTER_VALIDATE_URL)) {
      echo "URL is not valid"; 
    } else {
      echo "URL is valid";
    }

    Prüfung, ob es sich um eine private IP Adresse handelt mit Hilfe der Funktion filter_var:

    function is_private_ip($ip) { 
        return !filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE); 
    }

    Prüfung einer Variable, mit Hilfe eine Callback Funktion auf die Länge eines Strings

    function min10($str){
       if (strlen ($str) < 10) return false;
       return $str;
    } 
    
    echo filter_var("hello world",FILTER_CALLBACK,array("options"=>" min10"));
    // returns hello world, because the string is 11 chars long

    Bisher habe ich immer wieder auf eigene Reguläre Ausdrücke oder andere Libs zur Validierung verwendet, die mir nie so 100% zugesagt haben. Aber seit dir Funktion filter_var in PHP 5 existiert, ist das Validieren von Eingabedaten doch deutlich einfacher geworden und kostet wesentlich weniger Zeit bei der Entwicklung. Damit ist für mich jedenfalls das Problem der Validierung von Eingabedaten (vor allem bei der Validierung von E-Mail Adessen und URLs) erst mal gelöst und ich kann mich wieder anderen Themen widmen.

    Ergänzung:
    Neben der filter_var Funktion, gibt es noch ein paar ähnliche Funktionen.

    filter_var_array() Nimmt mehrere Variablen entgegen und filtert sie optional
    filter_input() Nimmt Variable von Außen entgegen und filtert sie optional
    filter_input_array() Nimmt mehrere Variablen von Außen entgegen und filtert sie optional Informationen über den Callback-Typ