The mobile app ecosystem is often referred to as a “fragmented ecosystem”. But what does this term really mean? To answer this, let’s look at what the word fragmented means. A fragment is generally considered a broken piece of a whole or at least a larger fragment. Consider now, that the “whole” we just mentioned is the mobile app ecosystem. This ecosystem includes Android, iOS and other mobile platforms that are used for mobile app development. Since these are separate platforms and cannot be cross-compatible or interconnected, they can be viewed as separate fragments in the vast ecosystem of mobile app development. Hence the term, fragmented ecosystem.
You may be wondering why the mobile app ecosystem is fragmented?
The answer may be simpler than you think. You know that mobile apps are basically software that can be downloaded on mobile phones and smart phones. Much like games and programs on a PC. They can be installed or uninstalled at the users whim. But, much like all software they carry the weight of one major drawback.
Mobile apps are designed around a specific platform just like software. To put this all into perspective, compare this to an anti-virus software. The same type of software that works on a Windows OS will not work on a MAC and vice versa. In order to download an identical antivirus program that’s on a Windows PC, you need to find a version of the file with a .dmg extension that labels the software as MAC compatible. The same file has a .exe extension meaning it is for use with Windows. Likewise when developing an identical app for use on an iPhone and an Android you need different programming from their respective application stores.
If we look at the ever changing mobile technology market today, we will run across at least a half dozen mobile platforms all complete with their own app stores. These mobile platforms are the operating systems that power each individual platform. The major platforms are Android, iOS, Windows, Blackberry OS, and Tizen. Most smartphones around the world run on one of these platforms or some form of a modified version of these. However, as long as the core of the platform is the same, those minor modifications don’t really matter a whole lot. For example, if an Android device has been modified and customized for use on the HTC Sense with a new user interface or a new skin slapped onto it, this has no affect on the app store and therefore Android powered apps will still work as per usual. It’s no different than with other devices. The trouble starts just after that.
Suppose you want to install an app created specifically for a Windows powered device on an iPhone, how would you do that? Unfortunately it’s not yet possible. If you attempt to visit the Windows phone store from an iPhone all that you will run across is an error message telling you that the app you attempted to download is not compatible with your device.
What this means is, that if you want to develop the same app across multiple platforms, you will have to develop them separately. You cannot simply develop an app and expect it to work across all platforms. The coding languages and software for each OS is unique to the OS. For Android app development you have to use the Android SDK (software development kit) and to develop an iPhone app you would likewise need to use XCode. The app stores for Android and iPhone devices, referred to as Google Play Store and Apple App Store, respectfully also have different guidelines and rules for publishing apps. So there really is no relation between Android and iOS except for the fact that they both have mobile application stores.
This brings about another valid question: Is there any solution to the problems that occur as a result of fragmentation?
There is no clear cut or perfect solution to this issue since publishing a separate app for the Google Play Store and the Apple App Store is required while still making sure they follow the guidelines for each market. However, there is some good news. A workaround exists for developing the same app separately for all of the major platforms listed earlier.
There are a few different software available on the market that will allow you to design and develop apps that can be reused on different platforms. Essentially you can develop an app for any platform, then reuse the same code when developing the app for a different platform. These software will reduce the effort and time spent creating different codes for each platform. The major software that offer these features are: PhoneGap, Appcelerator, Unity, Corona, Xamarin, and Maramalade. However, each one of them have some sort of limitations either in the way of support or plug ins or some similar issues. And, using these paid softwares will increase the cost of developing an app substantially.