iPhone apps don’t work on Android phones, and Android apps don’t work on iPhones because of the fragmented nature of the app ecosystem.
So, what does fragmented ecosystem mean?
The mobile app ecosystem is often referred as a ‘fragmented ecosystem’. So, what does this term ‘fragmented ecosystem’ mean?
Well, you know what fragments mean; they are ‘broken parts of something’, and that something is bigger than fragments. Consider the mobile app ecosystem as a whole, then that makes Android, iOS and other mobile platforms parts of that ecosystem. However, since all these different platforms are not cross-compatible, they are no more than separate fragments in the vast mobile app ecosystem. Hence, the term segmented ecosystem.
Why is the mobile app ecosystem fragmented?
Mobile apps are basically software, which are found on mobile phones and smartphones. They also function like software and can be installed or uninstalled. But, since they are based on software they also carry one major drawback that all software do.
Mobile apps are platform specific just like software. To put it into perspective, recall that your antivirus software for Windows did not work on your Mac computer. To install the same anti-virus software for your Mac you had to install the software you had to download the same software with a .dmg extension instead of an .exe extension that is only compatible with Windows. Likewise, even if you have the same app, you have to install the same app for your iPhone or Android with different programming from their respective application stores.
Today, if you we look at the mobile technology market, we will find at least half a dozen mobile platforms and their corresponding app store. These mobile platforms are the operating system that the mobile phones and smart phones run on. The major mobile platforms are Android, iOS, Windows Phone, Blackberry OS and Tizen. Most smartphones across the world run on these platforms or a modification of these. As long as the mobile platform is the same, the minor modifications don’t really count. So, if an Android smartphone has a customized HTC Sense user interface or skin slapped or tacked onto it, you can still install Android apps on it and run them. It is no different with the other platforms. The trouble starts just after that.
Suppose you want to install an application only available on Windows Phone store on an Apple iPhone, then how would you do it? Well, unfortunately it is not possible to do that. Yes, it is not possible to install an app — made only for Windows Phone smartphones – on an Apple iPhone. If you still visit the Windows Phone store from your iPhone and go the download link of the app, and then try to download it by clicking on the download button, you will be shown an error message saying that the app you tried to install is not compatible with your device.
That means, if you want to develop the same app for different platforms, you will have to develop them separately. You can’t just develop an app and expect it to work on different mobile platforms. For instance, if you want a Facebook app for Android as well iOS, you can’t just develop one app. You have to develop two separate Facebook apps, one for Android and other for iOS. The coding languages and software for Android and iOS are different. To develop an Android app you have to use the Android SDK (Software Development Kit) and to develop an iPhone app you have to use XCode. The app stores for Android and iOS, which are Google Play Store and Apple App Store respectively, also have separate rules and guidelines for publishing apps. So, there is absolutely no relation between Android and iOS except that they are both mobile application stores.
Is there any solution to this problem of fragmentation?
There is no perfect solution to this fragmentation since you need to publish an app separately for Google Play Store and Apple App Store while making sure that they follow the guidelines. However, there is a workaround to developing the same app separately for Android or iOS, or for that matter Android, iOS and Windows Phone.
There are some software in the market that let you develop apps with codes that can be reused on different platforms. So, you can develop an app for any particular platform, then reuse the same code to develop the same app for a different platform. This reduces the efforts spend in writing platform-specific code for the same app. The major software which offer these cross-platform app development feature are: PhoneGap, Appcelerator, Unity, Corona, Xamarin and Maramalade. But, all of them have limitations either in the way of support for additional plugins or something other.