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.