© Excellent backgrounds/Shutterstock.com
Java Magazin
Versionsübergreifend erfolgreiche Apps entwickeln

Multi-Versioning Application

Plant man als Android-Entwickler eine neue App, stellt sich schnell die Frage nach der angestrebten Zielgruppe bzw. den entsprechenden Zieldevices. Wegen der nach wie vor stark fragmentierten Landschaft von Android-Versionen kann das Ignorieren der einen oder anderen Version durchaus über den Erfolg der eigenen App entscheiden. Wie geht man also am besten vor, wenn möglichst viele Nutzer erreicht und gleichzeitig keine Kompromisse in User Interface und Usability eingegangen werden sollen?

Arne Limburg, Lars Röwekamp


Die Entwicklung von Android-Apps wird seit jeher von der Herausforderung begleitet, dass sich eine Vielzahl verschiedener Android-Varianten mit zum Teil extrem unterschiedlicher Funktionalität auf dem Markt befindet. Nicht ohne Grund veröffentlicht Google regelmäßig die aktuelle Verteilung der Plattformversionen [1] als eine Art Gradmesser für Entwickler, bis zu welcher Version die eigene App abwärtskompatibel gehalten werden sollte.

Neben der nicht zu empfehlenden „Hauruck“-Methode, bei der für jede Android-Version ein eigenes APK erstellt wird, existieren noch etliche weitere Strategien, (s)eine App mit überschaubarem Wartungsaufwand abwärtskompatibel zu halten. Eine wichtige Rolle spielen dabei u. a. die von Google angebotenen Support Libraries [2], mit deren Hilfe die – aus Googles Sicht – wichtigsten Features eines neuen Releases auch älteren Android-Versionen zur Verfügung gestellt werden. Dazu aber später mehr.

Bad Practice

Eine erste, sehr einfache Strategie zur Gewährleistung der gewünschten Abwärtskompatibilität ist das Aussitzen von Neuerungen. Diese auch als „Avoid Evolution“ bekannte Strategie hat den riesigen Vorteil, dass durch den Verzicht auf neue Features und UI-Elemente die eigene App per Definition abwärtskompatibel ist und zusätzlich noch auf allen Devices gleich aussieht. Leider bringt diese Strategie aber auch den Nachteil mit sich, dass die App sich auf ein Minimal-Set an Features beschränkt und insbesondere auf neueren Devices extrem altbacken daherkommt. Das Look and Feel des UI ist zwar auf allen Devices gleich – aber eben leider gleich schlecht.

Eine zweite, ebenfalls sehr einfache Strategie geht genau den umgekehrten Weg und nutzt für jede Android-Version das Maximum an zur Verfügung stehenden Features. Erreicht wird dies, indem letztendlich für jede Android-Version ein eigener Sourcecode-Zweig existiert und ein eigenes APK erzeugt wird. Man muss kein Prophet sein, um vorhersagen zu können, dass diese Strategie mit an Sicherheit grenzender Wahrscheinlichkeit ins Chaos und somit zu einer nicht mehr wartbaren App führt. Gleiches gilt übrigens, wenn man das Problem lediglich verlagert und für nahezu jede Android-Version eigene Ressourcen (z. B. Layouts) zur Verfügung stellt. Auch hier ist das Chaos vorprogrammiert.

Nachdem die beiden eben gezeigten Strategien scheinbar nicht zum Ziel führen, stellt sich die Frage nach dem richtigen Weg. Um es gleich vorweg zu nehmen: Es gibt nicht die eine Lösung. Je nach gewünschtem Feature und z...

Java Magazin
Versionsübergreifend erfolgreiche Apps entwickeln

Multi-Versioning Application

Plant man als Android-Entwickler eine neue App, stellt sich schnell die Frage nach der angestrebten Zielgruppe bzw. den entsprechenden Zieldevices. Wegen der nach wie vor stark fragmentierten Landschaft von Android-Versionen kann das Ignorieren der einen oder anderen Version durchaus über den Erfolg der eigenen App entscheiden. Wie geht man also am besten vor, wenn möglichst viele Nutzer erreicht und gleichzeitig keine Kompromisse in User Interface und Usability eingegangen werden sollen?

Arne Limburg, Lars Röwekamp


Die Entwicklung von Android-Apps wird seit jeher von der Herausforderung begleitet, dass sich eine Vielzahl verschiedener Android-Varianten mit zum Teil extrem unterschiedlicher Funktionalität auf dem Markt befindet. Nicht ohne Grund veröffentlicht Google regelmäßig die aktuelle Verteilung der Plattformversionen [1] als eine Art Gradmesser für Entwickler, bis zu welcher Version die eigene App abwärtskompatibel gehalten werden sollte.

Neben der nicht zu empfehlenden „Hauruck“-Methode, bei der für jede Android-Version ein eigenes APK erstellt wird, existieren noch etliche weitere Strategien, (s)eine App mit überschaubarem Wartungsaufwand abwärtskompatibel zu halten. Eine wichtige Rolle spielen dabei u. a. die von Google angebotenen Support Libraries [2], mit deren Hilfe die – aus Googles Sicht – wichtigsten Features eines neuen Releases auch älteren Android-Versionen zur Verfügung gestellt werden. Dazu aber später mehr.

Bad Practice

Eine erste, sehr einfache Strategie zur Gewährleistung der gewünschten Abwärtskompatibilität ist das Aussitzen von Neuerungen. Diese auch als „Avoid Evolution“ bekannte Strategie hat den riesigen Vorteil, dass durch den Verzicht auf neue Features und UI-Elemente die eigene App per Definition abwärtskompatibel ist und zusätzlich noch auf allen Devices gleich aussieht. Leider bringt diese Strategie aber auch den Nachteil mit sich, dass die App sich auf ein Minimal-Set an Features beschränkt und insbesondere auf neueren Devices extrem altbacken daherkommt. Das Look and Feel des UI ist zwar auf allen Devices gleich – aber eben leider gleich schlecht.

Eine zweite, ebenfalls sehr einfache Strategie geht genau den umgekehrten Weg und nutzt für jede Android-Version das Maximum an zur Verfügung stehenden Features. Erreicht wird dies, indem letztendlich für jede Android-Version ein eigener Sourcecode-Zweig existiert und ein eigenes APK erzeugt wird. Man muss kein Prophet sein, um vorhersagen zu können, dass diese Strategie mit an Sicherheit grenzender Wahrscheinlichkeit ins Chaos und somit zu einer nicht mehr wartbaren App führt. Gleiches gilt übrigens, wenn man das Problem lediglich verlagert und für nahezu jede Android-Version eigene Ressourcen (z. B. Layouts) zur Verfügung stellt. Auch hier ist das Chaos vorprogrammiert.

Nachdem die beiden eben gezeigten Strategien scheinbar nicht zum Ziel führen, stellt sich die Frage nach dem richtigen Weg. Um es gleich vorweg zu nehmen: Es gibt nicht die eine Lösung. Je nach gewünschtem Feature und z...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang