Am letzten Freitag im Februar war es soweit, wir haben unseren ersten Hack-Day als ganzes Team durchgeführt. Das Ziel war, innerhalb eines Tages ein «auslieferbares» Produkt zu realisieren. Im Vorfeld haben wir uns auf eine Problemstellung, die wir lösen möchten, geeinigt. Absichtlich verzichteten wir auf andere Vorbereitungen, wie beispielsweise Infrastruktur oder eine Pipeline aufzusetzen. Wir wollten herausfinden, kriegen wir es hin ein gesamtes Produkt vom Einrichten über das Deployment bis zum Styling an einem Tag umzusetzen.
Problem
Bei re:thinc glauben wir an die Vorteile von Continuous Delivery. Jede Codeänderung geht direkt in Produktion – vorausgesetzt sie besteht alle automatisierten Quality Gates. Bei mobilen Applikationen heisst das, jede Codeänderung landet direkt im entsprechenden App Store. Damit Nutzende nicht mit hunderten Updates bombardiert werden, nutzen wir die vorgesehenen «Tracks» der Plattformen.
Bei iOS liefern wir über Testflight und bei Android über den Play Store aus. Von dort aus ist es dann nur noch ein Knopfdruck um einen spezifische Version den Nutzenden zur Verfügung zu stellen.
Damit wir genau diese Version (die wir in Produktion ausliefern) testen können, müssen wir diese irgendwie auf unseren Geräten installieren können. Bei iOS (Testflight) lässt sich die entsprechende Version auswählen und installieren. Im Google Play Store jedoch lässt sich jeweils nur die letzte Version einfach auf dem Mobilgerät installieren.
Ausgangslage
Um über den Google Play Store eine spezifische Version zu installieren, nutzen wir «internal App Sharing». Dieses erlaubt uns entsprechende Versionen über einen Link auf einem Gerät zu installieren. Dieser Link entspricht immer einem klaren Muster (Android test URL ➔ Package name ➔ Version code). Für viaVelo haben wir eine kleine App gebaut, die die URL fest hinterlegt hat. Statt nun für jedes Projekt eine solche zusätzliche App zu bauen, soll das Ganze konfigurierbar angeboten werden. Nutzende können damit selbstständig Apps hinzufügen und entsprechende Versionen im Play Store, zu deren installation sie berechtigt sind, aufrufen.
re:install
Das Produkt ist ein kleiner Helfer, damit sich spezifische App-Versionen vor einem Release installieren und testen lassen, ohne die Entwicklung und kontinuierliche Auslieferung unterbrechen zu müssen.
Als Play Store Admin richte ich für die App, die ich zum Testen ausliefern will, das «internal App Sharing» ein. In re:install füge ich danach den «Package name», der eine App im Playstore eindeutig identifiziert, hinzu. Optional befülle ich weitere Apps, beispielsweise für unterschiedliche Environments. Dabei werden alle Informationen (hinzugefügte «Package names») in der URL gespeichert, wodurch sich die Liste der Apps einfach über einen Link an die Personen, die die App(s) testen sollen, teilen lässt.
Um entsprechende Versionen mit re:install zu testen, muss ich also nur den erhalten Link öffnen, gelange auf die Seite mit den bereits vorkonfigurierten Apps, gebe den gewünschten Versionscode an und kann die App aus dem Play Store installieren. Die Zugriffsberechtigung für die App und Versionen regelt dabei der Play Store anhand der freigeschalteten Google Accounts.
Herausforderung
Sicherlich eine der grossen Herausforderungen an einem Tag war die Koordination und die Erstellung der Grundeinrichtung für die Entwicklung und Auslieferung. Gemeinsam mussten wir stets sicherstellen, dass niemand blockiert ist und die jeweils nächsten kleinsten Schritt zum Weiterentwickeln und Stylen definieren.
Für das Produkt selber ist eine der grossen Herausforderungen den unterliegenden Release-Prozess zu verstehen und anzuwenden. Die Schritte um das «Interne App Sharing» einzurichten sind nicht gerade unkompliziert und wir mussten einen Kompromiss finden, wie viel Hilfestellung wir in re:install bieten wollen, respektive welchen Ausgangspunkt wir voraussetzen.
Fazit
Der Hack-Day war ein Erfolg. Am Ende des Tages hatten wir ein lauffähiges Produkt und wir hatten Spass daran zu arbeiten. Der realisierte MVP deckt grundsätzlich unsere Anforderungen ab und wir konnten bereits (am nächsten Arbeitstag) eine Story bezüglich «Version-Check» von viaVelo dank re:install mühelos testen 😄
Dank der Zeitbeschränkung haben wir uns auf eine sehr schlanke Version fokussiert, die jetzt bereits verwendet werden kann. Diverse Ideen und Erweiterungen die wir angedacht haben können wir nun mit Erkenntnissen aus der Anwendung überprüfen und bei Bedarf nachliefern.
re:install (v1)
Testest du deine Android Apps über das «internal App Sharing» des Google Play Stores? Dann richte dir deine Apps auf re:install ein und installiere mühelos spezifische Versionen deiner App auf deinem Mobilgerät.
reinstall.rethinc.ch
Projekt Details
- Personen: 4 Entwickler & 1 Designer
- Zeitbeschränkung: 1 Tag
- Commits: 142
- Sprachen: HTML/CSS, Typescript
- Plattform: Web
- Github: https://github.com/rethinc/reinstall
Erfahre wie wir Apps ausliefern
Willst du wissen, wie genau wir Apps Releasen? Dann melde dich doch bei uns. Falls das Interesse besteht teilen wir gerne unsere Erfahrungen an einem Meetup, in einer Schulung oder bei einem Feierabendbier mit dir. Wir sind immer daran interessiert uns über Vor- und Nachteile von Auslieferungsprozessen zu unterhalten.