Before to start discussing cross-platform solutions, you need to make sure that we clearly understand the difference between cross-platform frameworks and native development. For ease of perception, we will check the process of cross-platform applications developing and compare it with the development of native applications for iOS. So, what is the meaning hidden behind these terms.

NATIVE APPLICATIONS

If we talk about the development of mobile applications for the Apple iOS platform, then the native application will be the solution developed in the programming language Objective-c or Swift (Apple programming language for developing applications for iOS and OS X, presented at WWDC 2014), within the integrated development environment Xcode. From the point of view of the user, the native application is no different from a well-made cross-platform application, but we have to mention that native applications for a specific mobile operating system usually have a user-friendly (native) interface. The convenience lies in the fact that when developing native applications, the bundle of a UI / UX specialist and a programmer is most effective: the designer knows exactly which UI approaches are familiar to users of a particular operating system, for example, the “Back” button and the lower Tab Bar in iOS, and the iOS developer knows exactly how to implement certain UI features specifically for Apple mobile devices. As a result, the user opens the native application and intuitively interacts with the new interface.

CROSS-PLATFORM MOBILE APPLICATIONS

It is important to understand why the application is called cross-platform. The fact is that the executable file itself, compiled for one of the mobile platforms, cannot be launched in another OS. Those, if a cross-platform solution was developed and compiled for Android, this does not mean that you can take a file with the extension * .apk and run it on iPad. The idea of ​​cross-platform solutions is not in the convenience for the user, but in optimizing the processes of developing a mobile application. Therefore, a cross-platform application is a solution designed in such a way as to be able, with minimal effort, to compile the source code for execution on several mobile platforms, but the result of each separate compilation will be separate executable files. For example, for iOS the executable file has the extension “* .ipa”, for Android it has “* .apk”, etc.

HYBRID APPLICATIONS

Most often these are applications whose development uses web technologies, rather than development in a native environment (e.g., a bundle of Xcode and Objective-c in case of development for iOS). The result is a web application that runs in a “wrapper” and is served not as a web page, but as a separate application that requires installation and has a separate icon. Hybrid solutions are quite popular among developers of cross-platform engines, this is due to the fact that almost any mobile OS can equally manage the web browser function, which means that if the application is already running on any mobile OS, then running it on another will not be difficult. Of course, there are some nuances that we will discuss in a separate review of the actively promoted hybrid framework, whose name is Phone Gap.

PRECONDITIONS TO THE APPEARANCE OF CROSS-PLATFORM SOLUTIONS

What tasks are intended to be solved by cross-platform engines, why did someone decide that this makes sense? If you ask a Java developer for Android or Objective-c a developer for iOS what they think about cross-platform frameworks for mobile platforms, then in most cases you will get an unambiguous negative response.

The main reason for this reaction is that good developers, like any other professional, are very sensitive to the very concept of development, efficiency, productivity, each of them has their own vision of “what is good and what is bad?”, But usually everything revolves around the technology that they own. It is important to understand that not every developer can give an objective assessment of what is actually beneficial for the business at a particular moment. In general, it happened that everything, as usual, is decided by the budget, so the main prerequisite for the emergence of cross-platform solutions is precisely the benefit for the business, which can be detailed like this:

  • when developing a mobile application for 2-3 mobile OS on a cross-platform framework, most of the code can be written by one specialist. Those, there is no need for a full-time developer for each individual OS;
  • lack of narrow specialists in the labor market for a sufficiently large number of mobile platforms;
  • relative simplicity in the context of monitoring the correspondence between versions of the application under different mobile OS.

CROSS-PLATFORM MOBILE APPLICATIONS

It is important to understand that there are many reasons why one developer will choose one platform and another other one. For example, the Ruby specialist will not look in the direction of Xamarin, because he most likely does not have experience in C # development. But if Xamarin is in the hands of an experienced C # developer, as a result, the client will receive applications for Android and iOS, which are in no way inferior to the native ones.

From the other side, despite the fact that the team has 2-3 excellent C # developers, Xamarin can be expensive to implement, comparing to the cheap PhoneGap, if the project does not require any special work with the graphics and hardware of the devices, but is planned only as an MVP prototype to verify the business model and should be implemented within an extremely limited budget.

Another quite significant parameter is the price for access to the development environment on a specific framework. If PhoneGap is a completely free tool, then Vеrivo wants $ 60,000 / year, which is very expensive for startups.