Today the explosion of smartphones and tablets – 20 million smartphones for 2 million tablets – represents enormous potential for the mobile app development both for individuals in their daily life and for professionals. More than a million applications are already available, all platforms combined.
In 2011, sales of Smartphones in France exceeded those of conventional mobile phones: 11.9 million. At the same time, the fragmentation of mobile platforms continues, each player wants to be successful. In Europe (France, Germany, Italy, Spain, United Kingdom) and according to MobiLens (Comscore firm), Apple continues to occupy 20.3% of the market, behind Android which experienced strong growth in 2011 to reach 22.3% in July 2011, while Symbian fell from 53% to 37.8%. BlackBerry remains fourth with 9.4% market share.
Others like Microsoft with Windows Phone 7 are trying to catch up with the leading pack, despite a decline from 11.5% to 6.7% in July 2011.
An important issue for companies wishing to create a mobile application, is to ” be present on the various leading platforms of the market.
- But what strategy to adopt?
- Do you have to develop a native app or a specific application for each platform?
- Should we be satisfied with a mobile web application?
What are the alternatives?
- Is it possible to develop an application and deploy it on multiple platforms?
- In this case is it possible and what are the solutions?
Native vs Cross-platform mobile app development
To develop a “cross-platform” application, new Frameworks and tools based on a single language to then deploy it on different platforms began to emerge. However, not all have the same approach to the problem, and therefore do not have the same capabilities. Neither approach is fundamentally right or wrong. They each have their advantages and disadvantages.
This is why, before embarking on the use of a particular tool, it is recommended to determine the type of solution most appropriate with respect to the type of content or the service to be implemented.
The different approaches are:
- Native Development
This involves the creation of a mobile application that adapts to a single platform. Hire iOS app developer for native development which is a program capable of translating source code into object code having a runtime environment (hardware architecture, operating system) different from the one in which the compilation is performed.
In this case, engineers take advantage of a programming language native to the operating system. In the context of mobile development, it works as follows: The Framework provides an Application Programming Interface (API) independent of the target platforms.
Cost being the main distinction between the development of native and hybrid applications. The code then passes through the cross-compiler which transforms it into a language dedicated to a platform (Android, iOS etc.). The program thus obtained can be deployed and executed natively on the mobile.
- Mobile web application
- Cross-platform app development
The principle is to provide a means of delivering applications that run on any OS rendered via the web rendering engine, and taking advantage of local hardware capabilities, such as GPS, camera, etc.
In this hybrid model, the app operates inside a thin native package that provides a gateway to the operating system. The cross-platform application is cached locally on the device, removing the need for a connection.
Advantages and constraints of the different approaches
On the one hand, the cross-compilation approach has the advantage of generating an application in native code, therefore efficient and a user experience similar to a native application. On the other hand, this solution may prove to be difficult to implement.
This requires knowing how to translate a general public language into several specific languages each having their own particularities. On the other hand, with the emergence of new platforms (WP7 for example) or new functionalities on one or more platforms, maintenance and scalability can prove to be relatively complex to set up. Finally, each evolution of the native platform requires updating the “cross-compilation” tool in order to take into account the evolutions of the platform.
For native development, engineers have access to all the functionalities of the device. This allows them to take advantage of advanced features (memory management, complex networking, etc.). But, the biggest challenge is running the app on two platforms. To do this, you must create separate code bases. However, some native extensions allow code sharing. For example, you can share C ++ libraries between iOS and Android apps using Java Native Interface. Even so, product owners see development costs double.
In the context of developing a mobile application for several platforms and/or different form factors, it is important to analyze the needs and objectives of the application to be developed. You have to weigh the various important criteria (eg performance, user experience, etc.) in order to choose the right solution.
A very powerful application, providing an advanced user experience and using the different hardware components of the phone (GPS, camera, gyroscope) will not be able to use a cross-platform development approach. It should be developed specifically for each targeted platform. On the other hand, an application presenting information to a user, and providing him with geolocation data, and scanning barcodes, could use the native approach.