Nowadays, a variety of different platforms exist in web, mobile, and desktop forms and have a fast increasing user base. As a result, it has become common practice to design portable systems that can be reused in other platforms with a minimum number of modifications. While recently discussing with a developer of a well known Windows Phone app, I was told that he also uses this practice so that he is able to port his app to other platforms, as it costs a lot to build it from the ground up for each platform. However, when software that is native to a platform is ported to other platforms, of different capabilities and requirements, users end up with an inferior product (eg. Flash for OS X). To my point of view this policy is greedy and ultimately a bad practice. I will give evidence of how device-centric, native applications are of higher quality and attract more users as a result.
For the purposes of this article, when referring to platforms my focus is on mobile operating systems, for two reasons. The first is that mobile applications have recently become extremely popular, thus profitable, and have attracted the interest of many major software companies. The second reason, is that each of the major mobile platforms is fundamentally different to the rest and comes with their own set of native tools, programming languages and UI style.
These two factors can result in a recipe for disaster, a fact that has been proven multiple times even by large software companies. Consider, for example, an app natively developed for iOS and after becoming successful a decision is made to port is to Android, Windows Phone, a Web version etc. Most of us have seen this happen many times as users and it rarely has any success. The ported version of such an application will often have worse performance than its native counterpart, more limited functionality and a UI that feels out of place, all of which frustrate end users. Users, in turn, will not give a second chance to an app that does not satisfy them as long as there is an alternative, and in a world of mobile platforms with millions of applications there will most likely be a better alternative.
What makes a native application superior?
While it is expensive to have an application built from the ground up for each new platform, there are certain advantages  to native applications that the users appreciate. Firstly, native applications can be designed to leverage platform-specific hardware and software . They are able to use all the specific APIs of each platform and work well with the integrated apps of an operating system, such as camera, adress book etc. Additionally, being written in the platform’s native language they can exploit the capabilities offered by it, offer increased security  and work around its limitations resulting in better performance. Secondly, each of the modern mobile platforms has certain guidelines  for the UI design and other aspects of development, to make sure that usability, appearance and feel of each app is on the same standard as all other native apps. Users have come to expect applications -free or not- to be of such high quality, hence it is imperative to their success that native applications follow these guidelines.
In addition to the above, I trust that the best possible practice is for an application to not just be designed in a platform-centric way, but even more specifically in a device-centric way . Meaning that there should be different versions of the app, for the same platform, depending on the specific device it is going to be used on. This is because even though two devices may technically share the same platform, physical characteristics of a device may set it completely apart. Users for example have more expectations of what a tablet app should be like, both in UI and usability, rather than a mobile app. Mobile apps that have just a scaled UI to fit the bigger screen as their only difference from their mobile version are being badly received by users. Despite this fact, even well known companies, with millions of users, tend to overlook this fact and in return receive poor ratings or lose users .
It is attractive and easy to port a mobile application across different platforms but just because it is so does not mean it is beneficial. On the contrary, we showed it may be damaging for a reputable company to do so. A ported app of lower standards will cost less in the short term but the damaged reputation from disappointed users will cost a lot in the long term. As such it is better to not offer an app on every platform & device rather than offer a bad one. Apps that are tailored to the platforms and devices on which they are intended to be used will result in happier users. Having happy users is translated into good ratings, thus better reputation. Good reputation attracts more users and the larger the user-base the bigger the profit. To conclude, design native apps → profit.