04.08.11

Gastartikel von Daniel Grewing – In diesem Artikel geht es um die Einführung in SocialMedia Anwendungen. Es werden die Schnittstellen aufgezeigt und auf die Basics der App-Entwicklung eingegangen.

Gefestigt und Gehypt

Was wird das nächste große Ding? Diese Frage wird Jahr für Jahr in der Blogosphäre versucht zu beantworten. Der Hype um Twitter ist schon vorbei, der Kurznachrichten-Dienst ist fünf Jahre geworden und scheint etabliert. Facebook ist Status Quo, leicht gesättigt, bekommt nun Konkurrenz von Google+. Dropbox ist im Kommen. Ein Dienst für die Ablage von Daten in der Cloud, der sich perfekt integriert und dem ein großes Wachstum vorausgesagt wird. Eine andere Kategorie ist Foursquare, ob der sich der Location Based Service durchsetzen und einen Mehrwert gegenüber Google Latidude und Facebook Places schaffen kann, wird sich zeigen.

Diese Anwendungen haben Unternehmen entwickelt und verdienen (teilweise) viel Geld damit. Aber sie machen es möglich, an ihrem Erfolg zu partizipieren. Sie öffnen ihre Plattformen und bieten die Möglichkeit an, ihre Daten in externen Anwendungen zu nutzen. Die Arbeit rechnet sich vielleicht in einer Übernahme durch den „Mutterkonzern“, der Kauf von Tweetdeck durch Twitter ist ein gutes Beispiel dafür.

Schnittstellen öffnen das Web

Facebook ermöglicht es Entwicklern komplette Anwendungen in die Facebook Plattform zu integrieren. Sie werden in einem iFrame dargestellt und je nach Berechtigungseinstellungen hat man verschiedene Profildaten der zugreifenden Besucher. Die Schnittstelle zu nutzen ist nicht schwer. Der Marktführer unter den sozialen Netzwerken bietet SDK’s und Tools für die gängigen Programmiersprachen. Für Java leider nicht, aber da die Web-Schnittstelle einem Standard entspricht, existieren viele brauchbare OpenSource Frameworks.

Ein Erfolgsbeispiel für eine Facebook Anwendung ist die Spieleschmiede Zynga. Gestartet mit einem Browserspiel der die Benutzer integriert und ein soziales Erlebnis schafft, wird das Unternehmen mittlerweile mit Milliarden bewertet . Weitere Anwendungsszenarien lassen sich leicht finden. Spaßapplikationen wie Horoskope oder Glücksnüsse, die die Pinnwände vollspammen, gibt es wie Sand am mehr. Sinnvoller sind Onlineshops, die Unternehmen direkt auf ihre Fanseite integrieren und die Login- und andere Userdaten für die Registrierung nutzen; unabhängig von möglichen Datenschutzbedenken bietet sich für den Facebookfreund ein großes „Nutzererlebnis“.

Andere Anwendungen nutzen die Daten der Mitglieder. Die Anwendung Geburtstage listet die Geburtstage der Freunde für die nächsten drei Monate und zeigt, wer als nächstes Geburtstag hat. Diese Informationen bietet auch Facebook über den Menüpunkt „Veranstaltungen“. Dennoch listet die App bereits über 700 „Gefällt mir“ und mehr als 1500 Zugriffe im Monat. Unter uns, ich habe die Anwendung entwickelt, um mich mit der Facebook-API zu beschäftigen und bin etwas überrascht über die hohen Zugriffszahlen. Dennoch zeigt das die Möglichkeiten der Facebook-App Entwicklung. Ich könnte die Anwendung leicht um Werbung ergänzen. Die Daten meiner Nutzer könnte ich für personalisierte Geschenktipps nutzen oder Reminder für Erinnerungen hinzufügen. Für diese kleine Anwendung ergibt sich also schon ein Konzept für die Monetarisierung.

Dropbox bietet für viele Programmiersprache eine Lösung in Form einer SDK oder OpenSource Bibliothek an. Die Dokumentation erlaubt einen schnellen Einstieg in die Entwicklung eigener Apps. Einsatzszenarien für einen Cloud-Speicherdienst gibt es Dutzende. Man könnte z.B. an eine Anwendung denken, die ein Backup von anderen Clouddiensten vornimmt, also eigene Google Docs Dateien oder Evernote Notizen sichert. Eine andere Idee die mir vorschwebt ist, Dateien von einem Desktopprogramm zugreifbar zu machen. Ich nutze häufig den Zettelkasten, eine Software zur Verwaltung von Textzitaten und Literatur nach dem Prinzip von Niklas Luhmann. Der Zettelkasten ist eine Desktopanwendung und speichert die Daten in einer zentralen Datei. Für einen Onlinezugriff könnte man die Daten in eine HTML oder PDF-Datei exportieren, was nicht sehr komfortable wäre, da man nicht nach Zetteln suchen oder diese bearbeiten kann. Daniel Lüdecke hat seine Software unter der GNU Lizenz veröffentlicht, man erhält über den Quellcode also Zugriff darauf, in welchem Format die Daten gespeichert werden. Die Idee ist nun, den Zettelkasten lokal zu nutzen und die Zettelkastendatei in der eigenen Dropbox zu speichern. Eine Web-Anwendung könnte dann die Dropbox Schnittstelle nutzen, die Zettelkastendatei auslesen und für das Web aufbereiten. Wenn man dann noch ein paar Funktionen wie das „Freigeben von Zetteln“ oder „Zusammenarbeit unter Freunden“ hinzufügt, hat man schnell den „Social Media Zettelkasten“.

Mit der rasanten Verbreitung von Smartphones werden auch Dienste wie Foursquare interessanter. Foursquare ermuntert uns schon auf ihrer Homepage mit „Baut eure eigenen Anwendungen“. Die Developer Seite zeigt eine hervorragende Dokumentation mit Libraries aller bekannten Programmiersprachen, die teilwiese auch von der OpenSource Community entwickelt worden sind. Was man mit der API alles anstellen kann, zeigt die App Gallery.

App-Entwicklung: Die Basics

Der Einstieg in die App-Entwicklung ist für Webentwickler, die bereits erste (dynamische oder datenbankbasierte) Webseiten entwickelt haben, nicht sehr schwer. Häufigste Form für den Datenaustausch sind RESTful Web Services. Über eine URI wird ein Request gestartet und eine Anwendung antwortet entsprechend der API mit einem Response. Ein Request-URI vom Bilderdienst Flickr schaut so aus:

http://api.flickr.com/services/rest/?method=flickr.test.echo&name=value

Der Dienst antwortet im XML-Format:

Code1

Ein einfaches und mittlerweile sehr beliebtes Antwortformat ist JSON (JavaScript Object Notation).

Die obige XML-Antwort wird in JSON folgend dargestellt:

code2

Für REST, JSON und andere Web-Services gibt es für viele Programmiersprachen Bibliotheken und Dokumentationen im Web. Neben dem Wissen über die Technologien sollte man sich noch mit dem Konzept der Authentifizierung auseinandersetzen. Hier hat sich bei vielen Diensten OAuth durchgesetzt. OAuth ist ein Protokoll, welches Webseiten den Zugriff auf geschützte Ressourcen eines Web Services ermöglicht. Der Authentifizierungsprozess läuft in drei Schritten ab:

  1. Anfrage-Token abrufen
  2. Autorisierung des Benutzers abrufen
  3. Anforderungs-Token gegen Zugriffs-Token austauschen

Schließlich ist die Anwendung authentifiziert und hat Zugriff auf die Ressourcen. Flickr erklärt das an einem einfachen Schaubild, der umfassende Einstieg kann dann über die OAuth Webseite erfolgen.

Einfach mitmachen

Dieser Artikel, der bewusst etwas oberflächlicher gehalten sein sollte, gibt einen kleinen und schneller Überblick, wie sich Anwendungen im Web miteinander vernetzen lassen und wie ein Einstieg gelingen kann. Für Interessierte sei die Webseite von programmableweb zu empfehlen. Sie listet und kategorisiert eine Vielzahl von APIs und zeigt die schier unbegrenzten Möglichkeiten von der Entwicklung von Social Media Diensten.


Über den Autor

Daniel Grewing ist Software-Entwickler und bloggt unter anderem auch auf social-media-development.de

Alle wichtigen Links:

Daniel Grewing: FacebookXING
Social-Media-Development: BlogRSS

Über den Autor Ralf Bohnert

Servus. Hat dir der Artikel gefallen? Freue mich über Kommentare oder wenn ihr die Artikel mit anderen teilt! Und denkt an den Feed ;-)

Trackbacks/Pingbacks

  1.  Zurück aus dem Urlaub und Auswertung des Gastartikel-Wettbewerbs » bohncore

Schreibe einen Kommentar

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