Android App Entwicklung - Der Fluch und Segen der System-Anpassbarkeit
Ich mag Android und seine Offenheit sehr, doch bekanntlich gibt es durch Fragmentierung und andere Dinge auch Probleme im Ökosystem. So kommen Updates nicht immer beim Endnutzer an und versiertere Nutzer freuen sich deswegen über das Vorhandensein der einen oder anderen Custom Rom. Dies finde ich gut und nutze es für ältere Geräte auch selber, nur leider gibt es auch Probleme in diesem Bereich. So hat man hier manchmal nicht die Qualität eines puren Androids, wobei dies natürlich hochgradig von den Entwicklern abhängig ist und sehr viele Custom Rom extrem gut sind. Das Hauptproblem bei Custom Roms sehe ich in getroffen Entscheidungen bezüglich der Abweichung bei der Unterstützung von System-Funktionen, der selbständigen Entfernung von veralteten Methoden die im Stock Android noch vorhanden sind und generell in Abweichung vom eigentlichen Stock Android, die Entwickler zu spezifischen Anpassungen zwingen.
Denn selbst wenn man z.B. eine veraltete Methode entfernt, was der Entwickler natürlich eigentlich abfangen sollte, denn wie der Name schon sagt können diese Methoden quasi jederzeit entfernt werden, so sollte man sich vielleicht eher an das große Vorbild halten. Denn womit testen Entwickler hauptsächlich? Mit einem Stock Android diverser Versionen und etwas anderes ist auch nicht möglich. Woher soll man die Zeit bekommen 2563 verschiedene Custom Roms + Geräte zu testen, wenn man schon diverse verschiedene Geräte mit Stock bzw. angepasstem Stock Android (z.B. Hersteller Änderungen) testen muss? Natürlich kann man versuchen die großen Custom Roms abzudecken, aber dort ist man dann oft mit Alpha oder Beta Versionen konfrontiert, die wie der Name schon sagt keinen verlässlichen Test ermöglichen. Lange Rede kurzer Sinn, aus eigener Erfahrung weiß ich, dass man Bug-Reports von Nutzern erhält und diese explizit nur auf einem oder wenigen Geräten, mit speziellen Custom Roms, mit speziellen Versionen und mein Favorit, auch noch mit speziell angepassten Kernels auftreten. Als Entwickler versucht man nun die Probleme zu beheben, aber da es sich um Edge-Cases handelt, hat natürlich die größere User-Base Vorrang und Änderungen bei denen man sich für eine Version entscheiden muss, fallen immer zu Gunsten der Stock Rom aus. Verlieren können also viele durch Abweichungen vom de facto Standard, gewinnen eher wenige. Ich habe zum Glück noch nicht viele vergleichbare Erfahrungen machen müssen, aber aufgrund von aktuellen Entwicklungen musste ich mich einfach mal etwas dazu auslassen. Abschließend noch die Bitte mich nicht falsch zu verstehen. Ich will nicht sagen Custom Roms sollen nichts ändern, keine Zusatzfeatures einbauen oder dergleichen. Mir geht es um Interna auf Code-Ebene, die z.B. im Stock und Custom Rom gleichermaßen vorhanden sind, aber anderes behandelt werden und deswegen App Entwickler zwingen Dinge zu tun, die man mit reinen Stock Roms nicht tun müsste. Diese Art der Anpassungen sollte nicht nötig sein, denn genau für diese Dinge ist eine API / Schnittstelle gedacht. Man kann den Unterbau der Komponente ändern und austauschen, aber der Entwickler der die API nutzt kann alles wie gewohnt verwenden.