Skip to content

Projekt Carotine: Beta App Distribution

Carotine on AndroidWenn man Beta Versionen für Android Apps verteilen will, muss man sich überlegen, wie man das am besten tut. Ich habe bei Plume den Alpha Test mitgemacht und dort war das richtig angenehm: Einmal im Forum eine Alpha Version herunter geladen und installiert, danach meldet die Plume App immer selbstständig, wenn eine neue Version vorhanden ist und installiert diese auf Anfrage. Das ist natürlich der komfortabelste Weg und ich habe mir mal angesehen, wie die das machen.

Sie benutzen den Service Hockey App. Dieser deutsche Service ist in der Tat sehr genial mit unglaublich vielen Optionen (z.B. eingeschränkten Testgruppen oder öffentliche Tests, einfach zu bedienende Management Konsole usw). Wir setzen den selben Service schon seit einiger Zeit bei dailyme ein, um unsere Betatester zu versorgen, und haben auch da gute Erfahrungen mit dem Service gemacht. Da dieser Service aber mindestens 10 USD pro Monat kostet, kommt er für kostenlose Apps wie z.B. mein Superious einfach nicht in Frage. Ich halte den Service in der Tat, so gut er auch ist, für etwas überteuert. Deshalb habe ich mich nach Alternativen umgesehen.

Offenbar haben sich andere darüber auch schon Gedanken gemacht, so versucht der alternative Market AndroidPIT gerade mit "Beta Apps" zu punkten. Die Idee ist prima: Ein Market hat bereits alles, was es dafür benötigt (Distribution und Update, Commnity usw). Es bietet Vorteile für alle: Entwickler werden in den Market gezogen, weil sie diesen Distributionskanal interessant finden (= mehr Apps), Anwender ebenfalls, weil sie in Beta Versionen stöbern können und den Market Betreiber kostet das nicht viel mehr, er bekommt aber mehr Entwickler, Anwender und Apps. Perfekt also.

Leider ist der Beta Apps Bereich bei AndroidPIT selbst noch sehr Beta und hat außerdem noch den selben Namensraum, wie der normale Market. Das bedeutet, dass man keine Beta Versionen von Apps hochladen kann, die bereits im Market publiziert sind, man kann dementsprechend nur Beta Tests von neuen Apps fahren. Das ist leider nicht mein Usecase. Somit habe ich mir jetzt einfach etwas eigenes gebaut. In nur einem Tag ist so zu sagen eine "Poor Mans HockeyApp" dabei entstanden. :-)

"Projekt Carotine: Beta App Distribution" vollständig lesen

Einen eigenen OpenID Server einrichten

Nachdem in letzter Zeit das Login über myOpenId.com recht zäh von statten ging und ich das sowieso noch ausprobieren wollte, habe ich mich mal ran gesetzt und meinen eigenen OpenID Server/Provider aufgesetzt. Was OpenID ist, wozu man es einsetzt und was die Vorzüge sind, habe ich gerade erst beschrieben. Hier geht es also nur noch um das Aufsetzen eines eigenen Servers.

Vorteile eines eigenen Servers

Ein eigener Server ist vor allem eines: Unabhängig von externen Services, auf die man sich (gerade wenn sie kostenlos sind) nicht unbedingt immer verlassen kann. Den eigenen Server kann man selbst verwalten, man kann ihn auf andere WebProvider umziehen lassen und so weiter.

Ein weiterer Vorteil: Es liegt in der Natur des OpenID Services, dass der Service Anbieter genau mitbekommt, auf welche Seite man sich wann einloggt. Es ist hier also eine perfekte Möglichkeit gegeben, Nutzerprofile zu sammeln. Deshalb benutzte ich z.B. nie Services als OpenID Provider, die für ihre Datensammlung bekannt sind (z.B. Google und Yahoo, obwohl man mit ihnen die einfachste OpenID hat). myOpenID war bisher mein Kompromiss: Der Service ist erst einmal nur auf OpenID spezialisiert. Aber natürlich gehört auch er einer Firma..

Im schlimmsten Fall könnte ein externer OpenID Anbieter den Server so manipulieren, dass sich der Besitzer mit der ID eines Nutzers bei Services einloggt. Das wird sicher bei keinem der bekannten Anbieter passieren, aber 100%ig sicher ist man auch hier nur, wenn man seinen eigenen Server hat.

"Einen eigenen OpenID Server einrichten" vollständig lesen

S9Y OpenID Plugin, Nachschlag

Nach einer interessanten Idee, die mir @bauigel in einem Kommentar postete, habe ich mich noch mal an das OpenID Plugin ran gesetzt. Es gibt einige OpenID Provider, bei denen die OpenID URL unabhängig vom Benutzers immer die selbe ist. Für diese sollte es "Shortcuts" geben, also einfach einen Knopf, auf den man drücken kann und das Plugin erledigt dann den Rest. Ich habe das mal für Google, Yahoo und Aol implementiert, wie man in dem Bild nebenan sehen kann.

Entsprechende Knöpfe gibt es dann auch bei den "Eigenen Einstellungen", die die korrekten URLs für die entsprechenden Service Benutzer bezogen auflösen und eintragen. Das funktioniert prima.

Auf dem Screenshot sieht man aber nun auch ein Problem: Es gibt ein bisschen zu viele Möglichkeiten sich einzuloggen und es sieht sogar so aus, als ob man sich mit seinem Google Account oder einer OpenID URL einloggen könnte. Das ist aber nicht der Fall: Alles sind OpenID Logins und man kann pro Benutzer nur eine OpenID URL hinterlegen, die ihn identifizieren kann.

Login mit nur einem Klick

Ich habe das nun noch ein wenig erweitert: Wenn bisher noch kein Benutzer eine OpenID konfiguriert hat, macht der Login über diesen Mechanismus keinen Sinn, da kein Benutzer mit irgendeiner ID identifiziert werden kann. In dem Fall zeigt das Login nur einen Infotext an, der über die Situation informiert.

Gibt es aber bereits Benutzer mit einer erfolgreich konfigurierten OpenID URL, so wird nun einfach eine Auswahlbox angezeigt, in der man einen Benutzer mit OpenID auswählen kann und dann einfach auf den Login Knopf daneben drücken kann. Das Plugin loggt dann genau mit der OpenID URL ein, die für den ausgewählten Benutzer konfiguriert wurde. (Siehe Screen nebenan).

Das ist eine sehr komfortable Art, sich einzuloggen, sogar komfortaber als die BrowserID. Gerade wenn es nur einen konfigurierten Benutzer gibt, kann man sich durch einen einfachen Klick auf einen Button einloggen (wenn man sich bereits beim OpenID Provider authentifiziert hat). Sehr schick, wie ich finde!

Die Version ist bereits in Spartacus. Das soll's dann aber auch erst einmal gewesen sein mit der OpenID und BrowserID. ;-)

tweetbackcheck