App Verteilung während der App Entwicklung

Home - Blog - App Verteilung während der App Entwicklung
App Verteilung Waehrend der Entwicklung
  • Verfasst von Hubert Weid
  • Datum: 20 Nov 2018

Generelles

Die App Verteilung während der App Entwicklung sowie auch nach dem Launch der App stellt eine nicht zu unterschätzende Herausforderung 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, werden nachfolgend nur native App Entwicklungsprojekte betrachtet.

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 App Store Connect hochgeladen. Apple unterzieht die App einem Kurztest und gibt diese dann ggf. an die definierten Testnutzer zum Download frei. Die Identifikation der Testnutzer kann über die jeweilige Mailadresse erfolgen. Die Testnutzer erhalten eine E-Mail von Apple mit dem Download-Link zur App, mit der sie die Testversion aus Testflight heruntergeladen können. 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 App Store 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. 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. App Center von Microsoft fka HockeyApp dar. Ein Vorteil dieses OS-unabhängigen Services liegt darin, dass nicht nur iOS Apps, sondern auch Android 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.

Wie können Sie die UDID Ihrer Geräte auslesen? Die UDID ist eine eindeutige ID des iOS Gerätes. Diese kann über z.B. über iTunes ausgelesen werden. Gehen Sie dabei wie folgt vor: Starten Sie iTunes auf Ihrem PC, schließen Sie das iOS Gerät über ein Kabel an. Wählen Sie nun in iTunes oben in der Menüzeile Ihr Gerät aus. Nun werden Ihnen einige Daten zu Ihrem Gerät angezeigt, u.a. die Seriennummer. Mit einem Klick darauf ändert sich das Feld und die UDID wird angezeigt.

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. 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 ist sichergestellt, 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 App Center 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 App Center benutzt.

Geht das App Entwicklungsprojekt in die Endphase, wechseln wir zu den Systemen der OS-Hersteller. Damit kann ein größerer Testerkreis mit geringerem Aufwand mit Testverisonen versorgt werden. 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. Bei der Bereitstellung von iOS Apps für geschlossene Benutzergruppen sind einige Besonderheiten zu beachten.