Projektmanagement: App Verteilung während der App Entwicklung

Sowohl während der App Entwicklungsphase als auch nach dem Launch der App stellt das Thema App Verteilung eine wichtige Rolle dar. Wie bei vielen Entwicklungsthemen spielen dabei einerseits technische Rahmenbedingungen und andererseits Marketingüberlegungen eine Rolle. Da die Aufgabenstellung bei Web Apps vergleichbar trivial zu lösen ist, sollen nachfolgend nur native App Entwicklungsprojekte betrachtet werden.

Wie funktioniert die App Verteilung während der App Entwicklung? Während der Entwicklungsphase sollen Zwischenstände auf Testgeräte verteilt werden, damit sowohl das Entwicklungsteam als auch der Auftraggeber und ggf. weitere Stakeholder einen Eindruck vom Projektfortschritt erhalten. Auch können je nach Projektfortschritt immer wieder Testrunden eingebaut werden, um den QA-Prozess parallel zur App Programmierung laufen zu lassen.

Je nachdem, ob sich das Team an einem Ort befindet, oder über mehrere Standorte verteilt ist und für welches Betriebssystem entwickelt wird, gibt es signifikante Unterschiede.

iOS
Hier gibt es zunächst die Möglichkeit, das bzw. die Zielgerät(e) direkt an den Entwicklungsrechner anzuschließen und die App direkt aus der Entwicklungsumgebung XCode heraus auf das Gerät zu übertragen. Diese Vorgehensweise ist für den Entwickler praktikabel, aber kaum für weitere Teammitglieder, schon gar nicht, wenn diese räumlich verteilt arbeiten. Dafür bieten sich sogenannte Beta-Verteilservices an. Einen davon stellt Apple mit Testflight selbst bereit.

Hier werden Beta-Versionen als Testversionen in iTunes Connect hochgeladen. Apple unterzieht die App einem Kurztest und gibt diese dann ggf. an die definierten Testnutzer zum Download frei. Dieser neue Service zum Beta-Testing heißt Testflight. Für die Identifikation der Testnutzer ist jetzt nicht mehr die UDID notwendig, sondern kann über die jeweilige Mailadresse erfolgen. Die Testnutzer erhalten eine E-Mail von Apple mit dem Download-Link zur App, mit der die Testversion aus Testflight heruntergeladen werden kann. Sobald neue Builds bzw. Versionen bereitgestellt werden, erfolgt jeweils eine Benachrichtigung an die jeweiligen Testnutzer. Sind die Tests dann abgeschlossen und die App vom Auftraggeber abgenommen, kann die Programmdatei bequem bei Apple zur finalen Freigabe im AppStore eingereicht werden.

Derzeit gibt es (noch) einige Einschränkungen. Eine davon ist, dass nur solche Apps qualifizieren, die später auch über den Apple Appstore distribuiert werden sollen. Dies stellt ein wesentliches Problem dar, wenn die App später nur an interne Mitarbeiter distribuiert werden soll. Eine weitere ist die Beschränkung der Anzahl der Beta-Tester auf 1.000, was jedoch nur in den wenigsten Fällen relevant sein dürfte.

Eine Alternative dazu stellt z.B. der deutsche Service HockeyApp dar, die kürzlich von Microsoft übernommen wurden. Ein Vorteil dieses OS unabhängigen Services liegt darin, dass nicht nur iOS Apps, sondern auch Android und Windows Phone 8 Apps verteilt werden können.

Hier müssen sich allerdings alle Testnutzer mit ihren jeweiligen Testgeräten registrieren und einloggen. Im nächsten Schritt integriert der App Entwickler alle UDIDs der Testnutzer und schaltet somit die jeweiligen Geräte für den Download frei. Dieser Prozess muss jeweils für neue Nutzer wieder von vorne beginnen und es muss für jeden Nutzer der im Ablauf des Tests nachträglich hinzukommt, jeweils eine neue Version ausgespielt werden, welches zeitaufwendig ist. Für Alpha-Versionen, in denen noch viele Änderungen anstehen, ist dies praktikabel, aber sobald die Version in den Beta-Status kommt, empfiehlt es sich, auf Apples Testflight umzustellen.

Android
Auch hier besteht die Möglichkeit, die App in der Entwicklungsphase direkt aus der Entwicklungsumgebung (z.B. Android Studio) vom Entwicklungsrechner auf das Testgerät zu übertragen, mit den oben beschriebenen Einschränkungen.

Darüber hinaus bietet auch Google im Play Store eine Möglichkeit, Alpha- und Betaversionen von Apps an eine definierte Gruppe von Testern zu verteilen. Dies geschieht über den Google Play Store, indem eine Gruppe von Alpha- und eine von Beta-Testern angelegt werden kann. Dies geschieht mittels einer Google Gruppe oder einer Google+ Community. Die App ist dann nur für die definierten Testnutzer der jeweiligen Alpha- oder Beta Testing Gruppe sichtbar.

Ähnlich wie bei Testflight kann eine App im Beta-Stadium nach erfolgreichem Abschluss der Tests in den Produktionsstatus hochgestuft werden, so dass sichergestellt ist, dass tatsächlich die final getestete Programmdatei veröffentlicht wird. Dies ist ein aus QA-Gesichtspunkten nicht zu unterschätzender Vorteil.

Als Alternative gibt es auch Store-unabhängige Beta-Verteilservices, wie z.B. den oben bereits beschriebenen HockeyApp Service.

Fazit
Je nach Projekt hat sich die eine oder andere Vorgehensweise bewährt. Wir bei mobivention setzen oft auf eine mehrstufige Vorgehensweise, um die Vorteile der verschiedenen Alternativen zu kombinieren. Solange der App Entwickler während der App Entwicklung noch alleine die Ergebnisse seiner Arbeit auf Testgeräten überprüft, deployen wir Testversionen direkt aus der Entwicklungsumgebung auf das Testgerät.

Sobald weitere Stakeholder, intern aber vor allem auch extern, dazukommen, nutzen wir einen Beta-Verteilservice. Bei Projekten, bei denen wir eine App für mehr als ein Betriebssystem entwickeln, wird wegen der größeren Flexibilität oft Hockeyapp benutzt.

Geht das App Entwicklungsprojekt in die Endphase, wechseln wir zu den Systemen der OS-Hersteller, da damit ein größerer Testerkreis mit geringerem Aufwand mit Testverisonen versorgt werden kann. Außerdem schätzen wir den Vorteil, dass nur damit die final getestete Version im jeweiligen Store veröffentlicht werden kann, ohne dass noch kleine Änderungen wie z.B. Zertifikataustausch, erfolgen muss.

    • 20. Februar 2015