One of the first issues that we face when developing mobile applications, Apps, is what model, technology and programming language to use for development.
Of course there is no single and unanimous answer in this regard, it will depend on the economic resources available, the teams prior knowledge, the general architecture of the solution, as well as exogenous elements such as interests, passions, agreements, etc.
The first thing we should know is that the universe of Apps is divided into three large groups according to the technique with which they were developed:
1. Native Apps:
It means that for its development the native programming language of the device was used, Objective C or Swift for iOS, Java for Android and .Net for Windows Phone. It is a hundred percent model dependent on the platform and the Apps are not portable, you have to develop one per platform. The main paradigms associated with the native Apps are: You can achieve the best possible performance. You can achieve an optimal look & feel according to the operating system. All device capabilities can be accessed.
2. Native Hybrid Apps:
3. Generated Apps:
These are applications developed using tools such as Xamarin or Genexus (among many others), where the development is done using specific techniques and languages of the tool and then the App is generated in the target platform language to be compiled with the native tools. They are what are called false natives, because although their manufacturers claim to generate native Apps, they do not even meet closely with any of the three paradigms of the native Apps. For this reason we call them Generated. After having seen the three large groups, we will focus on the second, "Native Hybrid Apps" which is where we find Phonegap / Cordova.
Differences between Phonegap and Cordova:
Currently there is no difference between PhoneGap and Apache Cordova, except for the name and where they are downloaded from. Both are free, Open Source and are used in the same way. PhoneGap is nothing more than a distribution of Apache Cordova. The difference between both is that Adobe has the power to extend if you want the product and provide it with tools or features, which can decide to charge. Today, and for many years, PhoneGap the only thing that has greater is the integration with Adobes compilation services, if you want to use them and if you do not want no. On the other hand Apache Cordova updates are usually more frequent, since it is the base product. It is because of all this that, in practice, one speaks indistinctly about one or the other, as if it were the same product, when it is not (but almost). Once we have seen the differences between the two, lets see what exactly Cordova is and why we recommend it for those who are interested in getting started in the world of mobile development:
What is Cordova?
If we compare Cordova with Native apps we would have the following: