Imagine you go to a party and you look around to find that there is only one dish being served to everyone. You will face no problems if you like that dish but think about those people who either don't like that dish or are allergic to it. So, there is no unity amongst people in regard to liking a same dish. A similar thing is happening in the Android market these days. They have to serve the same Android app to different phones which are using the Android operating system.
How does one expect a single Android application to run on 4,000 different phone models and have no glitches or faults? It is a tremendous task for these application developers as they have to cook a dish that works for everyone. This is known as hardware fragmentation when the software and hardware seem to be incompatible.
What problems do app developers face while developing an app for Android?
Android Hardware Fragmentation - Avoiding fragmentation while developing an app is a really big challenge for application developers. They have to cater to different hardware and software technologies across more than 4,000 phone models that are on the Android platform. For instance, Samsung and Sony are two very large companies that support the Android platform. If an application developer wants to support both of these devices they would first have to examine both the phones according to the hardware and technology used and then create the functions for the application in such a way that it caters to the hardware of both the phones without glitches.
Now imagine the same task being done for 4,000 different phone and tablet models. Apple does not face this problem because it produces both the hardware and software. Furthermore, Apple through its Xcode development suite provides app developers with a varied controlled evnironment for creating apps. All apps that are eventually made available to the public on the App Store must be distributed using Xcode to iTunes where they are vetted and approved by Apple personnel. This way it can ensure that its hardware is in sync with its software at all times. It is easier to create applications for iOS because the limited types of hardware platforms is far more manageable.
One Company, Multiple Devices - In order to stay current and provide functionality consumers want, mobile device companies must make changes to the hardware of their devices. Often times these "upgrades" are not backwards compatible with older devices. This cause real headaches for application developers. Not only do they have to make an application that is suitable to the 4,000 mobile devices available in the market but they must now also test their application on different hardware versions from a single phone company. This not only hinders the introduction of a quality application into the market but it increases the amount of time required to develop these applications. Back to our cooking analogy, it means that the chef will not only have to cater to 4,000 different appetites but also to adjust the dishes according to the moods and desires of the patrons.
Multiple Versions and Software Incompatibility - Android has evolved over the years and this includes new releases of the software that like upgraded hardware devices is not compatible with older versions. The latest version of Android is Jelly Bean. Only the latest Android phones are compatible with Jelly Bean and older Android phones are not able to run this version. Mobile companies do not permit users to install newer versions of Android. This creates more fragmentation. Android application developers need to ensure that their app works on all versions of Android from Gingerbread to Jelly Bean. So creates further fragmentation as applications will never work similarly across all versions of Android due to the introduction of new features.
Android developers as modern day coding heroes
Android developers must create applications that are responsive and are compatible across different mobile device models and versions. Even if a developer is asked to copy an application from iOS to Android they can't simply copy and paste the code. Not only do they use different programming languages, they also must ensure the iOS application works across all of the different Android devices mentioned in this article. Regardless of these challenges, the Android market has an ever increasing number of creative and useful applications despite the challenges developers face. Most of the applications that are developed by Android application developers are functional across different device companies and versions.
Consumers and business users alike tend to think that it just a different phone or tablet from a different company and "software is software". But the actual truth is this is hard work. Tools are being developed daily to ease the burden and we will be discussing these in more detail in future posts. But next time you meet an Android developer buy him or her a cup of coffee or a beer. These impossible looking tasks are made possible by these application developers and they definitely deserve a lot of appreciation for their effort and hard work.