Gerade heute las ich wieder von neuen Zahlen zur Android Fragmentierung. Also darüber wie viele verschiedene Android Versionen, Geräte und sogar wie viele Displaygrößen es aktuell gibt. Ich würde sogar noch weitergehen wenn ich diese Statistik gemacht hätte. Wie viele Geräte gibt es mit welchen Sensoren? In welchen Geräten außer Handys und Tablets wird Android sonst noch so verwendet und wie viele gibt es davon?

Media Player, Kameras, Autos, Kühlschränke?

Ich weiß diese weiteren Daten sind schwer vollständig zu erfassen, aber interessieren würde es mich trotzdem. Aber ist dieser Umstand, dass Android in so vielen verschiedenen Version und auf so vielen Geräten vorkommt ein Problem für Entwickler oder Nutzer?

Nein, nicht mehr!

Ich verwende und entwickle für Android seit Version 1.1 am ersten Android Smartphone überhaupt, dem G1. Damals fieberte ich Updates wie 1.6 ungeduldig entgegen um die neuen Features nutzen zu können und beschränkte meine Apps auf Nutzer mit den neuesten Updates oder baute Apps ohne diese damit die App jeder nutzen konnte. Das ging sehr lange so. Auch viele weitere Versionen konnte ich nicht erwarten und auch diese Versionen stellten mich vor das Problem wie ich meine  Apps kompatibel für möglichst viele Nutzer halte. Aber heute ist dieses Problem für mich kaum noch existent und das hat einen Grund.

Play Services

Hinter diesem unscheinbaren und verspielt klingenden Namen verbirg sich eines der mächtigsten Konzepte das Android bietet. Die Play Services hat Google vor geraumer Zeit auf alle Geräte mit Play Store und Android Version 2.2 oder höher, das sind aktuell über 99% aller aktiven Geräte, verteilt.

Dieses Paket ermöglicht es Geräten ganz unabhängig von der Android Version die neuesten Google APIs und Features zu nutzen und es wird ständig automatisch von Google, also ohne jegliche Hersteller- oder Providermodifikationen, ohne Zutuen der Nutzer auf den Geräten aktualisiert, genauso wie die Google Play App.

Sehr neue Features wie zum Beispiel Geofencing und Activity Recognition kann ich als Entwickler also ohne Probleme in Apps einbauen ohne mir darüber Gedanken machen zu müssen welche Android Version der Nutzer hat.

Ein weiteres Konzept sind die Compatibility Packages die es nun auch schon sehr lange gibt und welche ich nur mitliefern muss um Benutzern mit älteren Geräten zum Beispiel neuere Benutzersteuerelemente in meiner App zu präsentieren auch wenn er eine alte Android Version hat.

Android wurde genau für dieses Szenario gebaut

Anders als iOS wurde Android von Anfang an für genau dieses Einsatzgebiet gebaut. Es ist flexibel und das sowohl was die Kompatibilität verschiedenster Versionen  angeht als auch wenn es um verschiedenste Geräte mit unterschiedlicher Ausstattung geht.

Das Android SDK ist so entworfen, dass es sich anpasst. Alle UI Elemente sind dafür gebaut sich automatisch an Größe und Auflösung eines Geräts anzupassen. Das erfordert natürlich beim UI Design ganz andere Überlegungen wie unter iOS wo ich fast auf den Pixel-genau UIs zeichnen kann. Es erinnert mehr daran wie gute Webapplikation skalieren.

Es ist anders, aber deshalb nicht schlecht sondern sehr viel vielseitiger und das man damit unglaublich schöne und gut benutzbare Apps bauen kann zeigen mittlerweile tausende Apps von Firmen die genauso gute Userexperience auf Android bringen wie sie auch auf iOS möglich ist nur eben auf hunderten von verschiedenen Geräten.

Was ist jetzt aber mit den Kühlschränken?

Wer aufmerksam gelesen hat wird bemerkt haben, dass ich hier bisher nur über Android Geräte sprach die von Google mit einem PlayStore versorgt werden. Auch wenn das der größte Anteil an Geräten ist so ist das nicht alles. Es gibt haufenweise mehr oder weniger gute Geräte die Android verbauen aber keinen PlayStore haben und meistens nicht einmal ein Handy oder Tablet sind.

Es gibt bereits Autos in denen Android als Bordcomputer verwendet wird, Kühlschränke mit Tablet-ähnlicher Funktion, Kameras, Media Player und noch vieles mehr. Bei den Kühlschränken bezweifle ich zwar den Nutzen, aber nichts desto trotz beweist dies die Vielseitigkeit des Systems und diese wäre nicht gegeben wenn Android dafür gebaut wäre nur in einer Version auf genau spezifizierten Geräten zu laufen. Was bedeuten diese anderen Geräte aber für uns Entwickler?

Mehr potenzielle Kunden für unsere Apps

Ja so einfach ist das. Natürlich wird eine Kamera App auf Geräten ohne Kamera keine Kunden finden aber beispielsweise eure Notiz App kann genauso auf einer Kamera laufen und dem Fotografen Notizen zu seinen Fotos ermöglichen. Vielleicht müsst ihr sie ein wenig anpassen und könnt vielleicht sogar das eine oder andere Feature für genau diesen Anwendungsfall erweitern, aber der Punkt ist ihr könnt mit wenigen oder gar keinem Aufwand eure Apps in mehr Bereichen zum Einsatz bringen und das ist doch etwas Gutes, oder?