Following up on my previous article on Google and the European Commission, which briefly some thoughts on the investigation by the EC of Google’s approach with Android, I would like to go over some more of the implications from a developers perspective.
Lets first look at the agreements that take place between Google and their partners. Such agreements require manufacturers to pre-install a handful of Google applications (such as Google Play, Gmail, Google Search, etc.), make these applications available from the home screen or in prominent application folders, and favour Google Search over an alternative search provider.
This practice is not uncommon on Android, or for any platform of mobile device, since manufacturers will often include a range of additional applications that they think are helpful (though not always) to the user. In addition, in some countries, some telephony providers will also bundle more applications should you receive your device with a contract.
This is also part of the problem. When a user first opens a device, they are presented with an assortment of different applications performing the same task, and it can be overwhelming and unpleasant. This leads to a lot of confusion and frustration, which ultimately can result in the user being dissuaded from choosing to use the platform in the first place.
The agreements here are in order to assist the user and to provide a consistent experience across many devices, with an effort to reduce the amount of fatigue presented with a platform that can sometimes be fragmented.
It should also be noted that these agreements are entirely optional, and it is possible for a manufacturer to download the Android Open Source Project source code, and compile their own version with whichever applications or modifications they see fit, without ever including any of the Google branded applications.
This has already been done quite successfully, in the case of the Amazon FireOS, which is in use with the Amazon Kindle, Fire TV and Fire phone and is still being maintained to this day. In addition to various custom versions of Android, such as Cyanogen, which is shipped without the Google branded applications, allowing the user to use the phone and later decide if they would like to use those apps.
Platform fragmentation has always been seen as a troubling issue for Android, but is also necessary for what gives Android its strength as such a powerful platform. If you give manufacturers the freedom to be creative with hardware and features, you must also accept that each device can and will be different. This is why Android has always had (and continues to improve upon) a very powerful UI layout system to cater for the wide array of screen sizes available.
So why is it beneficial as an Android developer to have these applications available on Android devices?
The most important benefit here is that it allows us to make assumptions of the users device — what API’s are available, what hardware features are available for my application to make use of, and what distribution channels my application must be optimized for.
When developing an Android application, you would often want to make use of the user’s location, or provide the user with relevant advertisements. These are both very often used real world scenarios that are made possible through use of Google Play Services. If these services were no longer available, I would have to look into alternative channels, further fragmenting the platform and increasing development cost. Otherwise I’d have to abandon the feature altogether, limiting the effectiveness of my application.
Secondly, and probably more importantly, if I could not be certain that a user’s device would have access to Google Play, how else could I distribute my application? I would have to create several artifacts, each optimised for different stores provided by different manufacturers, and I’d have to maintain each distribution, further increasing maintenance costs and time spent for every version I would like to distribute. Bearing in mind many applications will have a new version distributed as often as every week or even every few days.
It’s because of this reason that in the early days of mobile computing, it was hard for the application markets to take a real grip, since most developers would have to create their applications not only for one market place, but for three or four. As a result of this, some platforms started to dwindle in favour of the others with a larger market share. Application developers simply didn’t have the resource to target every user, and had to be content with getting their applications to only a majority.
By being able to make an assumption about my target audience, I can optimise my time and resources and spend more time on quality development. The result is a performant application that is genuinely valuable to the user.
In closing, the Google applications bundled with Android devices have not been imposed on all manufacturers and there does still exist many cases of successful devices that still give the user the choice to install them. However, by having them included, application developers can provide a much cleaner, consistent UI experience to their end users whilst reducing development costs and increasing creativity of features, keeping product managers happy!