SkyDroid: Dezentraler Android App-Store

  Niklas   Lesezeit: 6 Minuten

SkyDroid gibt den Entwicklern die Kontrolle über die Verteilung ihrer Apps zurück. Der App-Store ist dezentralisiert und nutzt das DNS der Projektwebseite.

skydroid: dezentraler android app-store

SkyDroid ist ein neuer App-Store für Android, der ohne zentralisierte Server auskommt. Angesichts der aktuellen Geschehnisse rund um die Entfernung des Matrix-Clients Element aus dem Play Store, was ja inzwischen rückgängig gemacht wurde, kann man sich schon mal die Frage stellen, ob es nicht sinnvoll wäre, wenn jeder Entwickler selbst für die Verteilung seiner Apps verantwortlich wäre. Keine zentrale Firma sollte die Kontrolle darüber haben, welche Apps allen Nutzern eines Betriebssystems zur Verfügung stehen und welche nicht.

Früher, vor der Zeit der Smartphones, war es ganz normal, dass man Computerprogramme direkt vom Entwickler bezieht. Der Entwickler konnte seine .exe Datei auf seine Webseite stellen und gleich eine Beschreibung, Screenshots, Changelogs und Supportangebote wie ein Forum individuell dazu auf der Webseite anbieten. An den Anbieter des Betriebssystems musste er dafür keine unverschämt hohe Gebühr bezahlen. Die Vorteile für den Entwickler liegen auf der Hand.

Der Nutzer hatte dabei den Vorteil, frei wählen zu können, von wo er Programme installiert und sich nicht darauf verlassen zu müssen, dass eine zentrale Instanz die richtigen Entscheidungen trifft. Gleichzeitig brachte diese Art der Programmverteilung auch ihre Gefahren mit sich: Webseiten mit riesigen Sammlungen an Downloads erschienen höher in den Suchergebnissen und verteilten damit ihre eigenen Installationsprogramme, die oft unerwünschte Programme mitinstallierten oder Systemeinstellungen ungefragt veränderten. Auch um Updates mussten sich die Nutzer oft selbst kümmern, denn ein Updateprogramm hatte nicht jedes Programm eingebaut.

SkyDroid bringt die traditionelle Art der App Verteilung in optimierter Form aufs Handy. Um eine App über SkyDroid zu installieren, gibt man im SkyDroid Client die Domain der Projektseite ein. Der Entwickler kann auch einen Downloadlink auf der Webseite platzieren, die den Nutzer direkt an die richtige Stelle im SkyDroid Client schickt. Später soll es ausserdem möglich sein, Apps durch das Scannen eines QR Codes zu finden.

In der SkyDroid App sieht alles aus, wie in herkömmlichen App-Stores. Man sieht Name der App, Beschreibung, Entwickler, ein Changelog, Screenshots falls vorhanden und weiterführende Links. Von hier aus kann man die App mit einem Klick installieren. Sie wird dann dort heruntergeladen, wo der Entwickler in der Metadata Datei angegeben hat - Das kann sein eigener Server, ein Release im Github Repository oder eine Datei im dezentralen SkyNet Speicher sein.

Mit dem SkyDroid Client behält man die Übersicht über die Apps, die man auf dem Gerät hat. Die Startseite der App zeigt alle Apps, die der lokalen SkyDroid Installation bekannt sind, also alle, die man hinzugefügt hat, wobei die installierten Apps ganz oben angeordnet sind. Beim Start von SkyDroid wird bei allen Apps im DNS der Projektseiten nach Updates gesucht. So hat man Updates immer an einem zentralen Platz, von wo aus sie mit einem Klick installiert werden können.

Eine weitere Funktion von SkyDroid sind Collections. Das sind Sammlungen von beliebig vielen Apps. Jeder, der eine Domain besitzt, kann selbst eine Collection erstellen und unter dieser zugänglich machen. Fügt ein Nutzer eine Collection hinzu, erscheinen mehrere Apps gleichzeitig in der App Liste. Der SkyDroid Entwickler bietet selbst zwei Collections an: Eine mit allen ihm bekannten Apps, die SkyDroid unterstützen und eine mit allen Apps aus dem offiziellen F-Droid Repository, die über eine Bridge in SkyDroid gespiegelt werden. Es ist empfehlenswert, beide Collections hinzuzufügen, um SkyDroid gleich sinnvoll verwenden zu können.

Leider ist SkyDroid noch nicht besonders bekannt. Es scheint aktuell nur SkyDroid selbst sowie eine weitere App dieses Entwicklers nativ über SkyDroid verfügbar zu sein. Das Projekt ist aber auch erst ein paar Monate alt und ich sehe hier grosses Potenzial. Als Starthilfe ist die F-Droid Bridge sicherlich sinnvoll. Neben dem offiziellen F-Droid Repository ist geplant, auch weitere F-Droid Repositorys über die Bridge verfügbar zu machen. Wer mithelfen will, seine Lieblingsapps ins SkyDroid Netzwerk zu bringen, sollte ein Github Issue bei diesen Apps erstellen und die Entwickler auf SkyDroid hinweisen.

App-Entwickler können teilnehmen, indem sie einen TXT Record zum DNS ihrer Projektseite hinzufügen, der auf eine App Metadata Datei im dezentralen SkyNet verweist. Die Metadata Datei enthält Informationen zur App wie Name, Beschreibung, Link zum Icon, Link zu Screenshots, ein Changelog und die Links zu den APK Dateien sowie die dazugehörigen Checksums. Die Links können auf dem Server des Entwicklers, in einem GitHub Repository, im dezentralen SkyNet Speicher oder jedem anderen öffentlich zugänglichen Speicher liegen. Um die Metadata Datei nicht immer von Hand erstellen zu müssen, gibt es dafür auch ein CLI Tool.

Wie am Anfang bereits angesprochen, ist hier der Entwickler selbst für die Verbreitung seiner App verantwortlich. SkyDroid entscheidet nicht, welche App in den Store aufgenommen wird und welche nicht, sondern verarbeitet nur die Daten aus dem TXT Record der Projektwebseite. Durch die zentrale Sammlung der Apps vereinfacht SkyDroid aber Updates und sorgt auch für zusätzliche Sicherheit, denn bei jeder APK Datei wird zuerst die Checksum abgeglichen, bevor diese installiert wird. Hostet ein Entwickler seine APK Dateien bei einem Drittanbieter, wie es früher etwa mit Sourceforge üblich war, dann kann so sichergestellt werden, dass dieser Drittanbieter die Datei nicht verändert haben kann.

Quellen:

SkyDroid herunterladen: https://get.skydroid.app

GitHub Repository: https://github.com/redsolver/skydroid

Upload CLI Tool: https://github.com/redsolver/skydroid-cli

Tags

Android, AppStore, SkyDroid, App, Apps, Entwickler, Datei, Metadata

Es wurden noch keine Kommentare verfasst, sei der erste!