As a computer can be PC or mac, a smartphone can be an iPhone, an Android, a Windows Phone, a Blackberry,… The differences are aesthetic as well as technical. This means that a software (or application) built specifically for an iPhone cannot be executed on an Android, and vice versa. The choice of which platforms you want your application on is therefore crucial. From there, there are two possibilities.
- Native applications
The most logic way to develop an application for a given platform is to write it in native code, what we could call the default language of the smartphone. For example, the native language of iPhone is Objective-C, for Android, it is Java.
Development in native codes gives numerous advantages: best performances, best handling of advanced functions of the phone, hence guarantee a better user experience.
Of course, there are also drawbacks, the biggest being that an application developed specifically (i.e. in native code) for iPhone cannot work with Android. For your application to be available on the two platforms the costs for the development part will double (as well as the assigned time for the project)
- Hybrid Applications
An alternative to native applications are hybrid applications. These applications are based on a set of languages common to all platforms (mostly languages from the Web: HTML, CSS; JavaScript).
A hybrid application, for iPhone or for Android, will be built on these standards technologies, known and executable by all the smartphones of the market. Say goodbye to all dependence to a platform, with a code executable everywhere! It implies a reduction of time (and cost) for both development and maintenance. Some portions of the application are written in native code to access advanced functions of the phone ("Push" notifications for example), accessible thanks to "bridges" built between the native and the hybrid parts. Hybrid development is therefore taking advantage from the best of both worlds.
Of course, hybrid development also has drawbacks, the main one being the performance of the application on "old" smartphones (iPhones 3GS and previous versions, Android < 4, etc).
Nevertheless, a user with a recent smartphone will probably not notice any difference (compared to a native application), if the application does not need a lot of resources. A hybrid application will be available on the different markets (App Store, Google Play), will be displayed as an icon on the "desktop" (called "springboard" on iPhone) and will be able to receive notifications.
If your budget cannot cover the development of a native application or if you wish to be available more quickly on all the markets, a hybrid application is the right choice!
Many companies have chosen the hybrid applications (LinkedIn, Financial Times amongst others), which validate the relevance of this choice. Finally, Gartner group recently declared that "by 2016, More Than 50 Percent of Mobile Apps Deployed Will be Hybrid".