The world of mobile technology does not stop growing, according to the Google Consumer Barometer we have gone from 44% of mobile use in 2012 to 87% of 2017. India is one of the countries with the highest penetration of mobile technology.
The smartphone has gone from being a tool of communication to being a technological extension of ourselves. From the mobile or tablet, we can update the news, we connect to our bank, we share and we think in RRSS, we are in contact with our friends, we look for work or even monitor our health through various mobile apps.
Following the pace of society, mobile technology has also become an obligation for business: business mobility. From this point of view, the objectives and utilities of mobile apps are very varied:
- Loyalty to customers or employees
- Improve the user experience
- Facilitate effective communication
- Optimize processes
- Gain agility in the critical points of your back office
- Increase productivity
- Increase competitiveness
As a company specializing in a digital transformation in Profile today, we know that one of the strategic stakes more important in most organizations is to include in their business processes and operations the mobile application development.
Any company that wants to create a mobile application will find itself at the crossroads of knowing what technology to use for the development and maintenance of the app. This decision will mark the final quality of the application, the development cost, both in time and money, and maintenance costs.
Within the possibilities for the development of mobile applications, we distinguish between two systems: native applications and hybrid applications.
But what exactly are these systems?
Native applications are so called because they are developed in the native language of the device itself.
Depending on the platform in which we want to use our application (Android or iOS) we will have to use a programming language and a specific development environment and know in a certain way the native characteristics of the target operating system.
This makes the creation of multiplatform development teams a complex one, given that, due to the great differences between Android and iOS, we will need a specific profile for each of the platforms. It will also be necessary to coordinate the development simultaneously so that the application has the same appearance and functionality in each of the operating systems.
|iOS||Manzana||Objective C, Swift||XCode|
The main benefit of the native applications is that being developed directly on the native layer of the terminal, the performance will be optimal and we will have direct access to the characteristics of the mobile device such as the camera or the GPS.
As we have already mentioned, its disadvantages include the high cost of development and maintenance, since it requires a specialized team and more development time. In addition, as it is programmed in native language the code cannot be used for another platform.
Hybrid applications use an abstraction layer on the native platform that allows us to encapsulate an HTML5 application in a native application.
Thus, we can develop a single source code for multiple platforms, significantly reducing the resources needed for development and maintenance. The hybrid technology reduces the time-to-market and some estimates tell us about a cost savings of between 30% and 50% compared to a native app.
These hybrid systems are responsible, on the one hand, for encapsulating the application with the WebKit of the native platform. Thus they can be published without problems in the markets of each platform (Google Play Store of Android and App Store of iOS). It also facilitates the connection with the native APIs offered by each environment. In this way, we get to own features as native applications are the push notifications, camera, access to shopping the stores, GPS, sensors, etc.
This image is a good summary of the differences between technologies. As it is clearly shown that the hybrid system is way more advantageous as compared to native, combining the virtues of web development with access to all the native functionalities.
If we go into more detail in the different hybrid technologies that exist, currently highlights the open source framework of Apache Cordova. Large companies such as Adobe, Intel or Microsoft guarantee this technology by helping its development with products oriented to this framework such as PhoneGap, XDK or its integration in Visual Studio through the TACO tools.
In the following image, we can see how the architecture of this platform works and how Cordova bridges us between the WebKit part and the native part of the system.
Layers Architecture of Execution Cordova
Hybrid technology also has its weak points. Regarding native apps, performance is lower when running on a WebKit layer and its unnatural aspect, which can interfere with the user experience.
To counteract the disadvantages of hybrid applications, new techniques and strategies are being defined:
Improve UX of the application by applying visual frameworks aimed at mobile devices such as Ionic.
Architecture Mobile Ionic App
Performance optimization: using light protocols such as API Rest or JSON as well as the use of high availability systems within the backend that serves our app.
As a conclusion and always from my point of view, we could say that if we want an application with clear high performance requirements such as games, VR, or augmented reality applications, the chosen option should be native.
On the other hand, if what we need is a management app, data processing, online store, CRM or any other application to mobilize our back office, the ideal technology is hybrid development, due to costs, development times and ease of maintenance.