<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Cross platform development vs native development</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nikita A. Shevtsiv</string-name>
          <email>nikita0503ua@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrii M. Striuk</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Kryvyi Rih National University</institution>
          ,
          <addr-line>11 Vitalii Matusevych Str., Kryvyi Rih, 50027</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>75</fpage>
      <lpage>83</lpage>
      <abstract>
        <p>The paper analyzes the advantages and disadvantages of cross-platform and native mobile application development. The conditions are highlighted in which native and cross-platform development reveal their advantages. These conditions include the project size, work comfort, popularity, relevance. It was concluded that a beginner developer should start learning from native development, and then try cross-platform.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;native development</kwd>
        <kwd>cross-platform development</kwd>
        <kwd>React Native</kwd>
        <kwd>Java</kwd>
        <kwd>Kotlin</kwd>
        <kwd>Flutter</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>2. Comparative analysis of cross-platform and native development</title>
      <sec id="sec-2-1">
        <title>2.1. Project sizes</title>
        <p>Quite often, IT companies with up to 10 employees choose cross-platform. Typically,
development teams take on small and medium-sized projects, where development time can take on
average from 3 months to a year. As a rule, such projects do not require high technological
needs from programmers. Therefore, in these cases cross-platform technologies can be used.</p>
        <p>It will be beneficial for both the customer and the company.</p>
        <p>The number of application developers can be reduced; most often it will be only one person.
On the part of the customer, it will be more comfortable to communicate with one person,
rather than explaining to two developers at once how this or that screen should work. In fact,
not all people think the same way. And they can understand both the design part and the
technical part in diferent ways, for example, the rules for loading and displaying elements
on the screen. Accordingly, the appearance will be not similar on diferent platforms, and the
speed of work will also difer. It will take more time to come to a similar result.</p>
        <p>For a small company, being cross-platform has some advantages. Since fewer developers
were required, it means that the costs for the application will be less.</p>
        <p>It makes no sense to consider the option when one developer first makes an application for
one platform, and then for a second one. Since it is obvious that this will take a lot of time and
money, so it is not very profitable for both parties.</p>
        <p>Will this afect the quality? Applications that do not require a lot of resources from
smartphones, for example, simple social network or an online shop, is unlikely to require
intervention in low-level processes (Although, in React Native, it is possible to write native modules).
So the answer is no. This will not afect the quality and performance of simple applications in
any way.</p>
        <p>For clients who start their own business and already have a working website, as a project
development, cross-platform application development will be cheaper and faster than native.</p>
        <p>But this applies to small projects that will not need support, and even more so in further
development. If we talk about projects with long development times, constant improvement
and expansion of functionality, cross-platform is seriously inferior to native development.</p>
        <p>In large projects, a lot of attention is paid to design, and quite often to animation of objects.
Despite the fact that, according to the development ideology, this item is noted as a plus,
practice shows that the implementation of a non-trivial design for two operating systems gives
many bugs. This increases the time to eliminate errors. The UI is displayed diferently and the
time to adapt is also increased. The most noticeable problems occur with animations, clicks
and scrolling – the application may freeze. The user interface is developed in HTML, but you
will have to spend months to achieve native platform performance. The native development
languages for Android and iOS would be better tools in this case than the cross-platform
technology APIs.</p>
        <p>You need to develop an interface that is intuitive for both iOS and Android users. Otherwise,
an application built according to the IOS Human Interface OS Guidelines will be inconvenient
for Android users. Ultimately, you will spend more time improving the user experience.</p>
        <p>Long-term projects are not designed to save resources. In this case, customers are looking
for performance, quality and reliability. Native development in large-scale projects will be the
best solution. For a high-quality application, the project will need developers with serious
experience and deep knowledge in the areas of development for Android (Java or Kotlin) and
iOS (Objective-C and Swift). Compared to cross-platform technologies, there are 2 times more
developers, plus the work of good specialists is more expensive, in other words, the project
costs increase. But, it is worth recalling again, large projects involve serious costs, as a result
of which, as a rule, this is justified.</p>
        <p>Application speed – the compiled project code is optimal for the native platform. The
application gets full hardware support for the device and uses multithreading for complex tasks.</p>
        <p>With the release of updates to the programming language or hardware functionality, new
features will be available immediately. That is, there will be no need to wait for the
implementation and adaptation of these updates in cross-platform development technology.</p>
        <p>And the most important advantage of native development is the absence of restrictions, and
this, in turn, is the main condition for the development of huge projects. An indisputable
advantage is that it uses all the functions of the system software as flexibly as possible, such
as a camera, microphone, geolocator, accelerometer, calendar, media, at the same time, the
application sparingly consumes memory and device battery.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Work comfort</title>
        <p>In addition to the fact that the technology must meet the requirements of the project, it is worth
considering a number of factors that are associated with the developer.</p>
        <p>The first thing to look out for is the ease of learning. The more popular the technology,
the more courses, lessons and articles related to this tool can be found on the Internet. Native
development has an advantage in this regard. For example, it is worth considering the Kotlin
programming language, it is the oficial language for developing applications for the Android
platform.</p>
        <p>Why Google loved Kotlin? On the oficial website, Android developers write that they have
watched the rise of Kotlin in recent years. Google is not shy about describing the language as
impressive and concise, more powerful and enjoyable to work with. It has increased
performance: the program code on it is, on average, 40% shorter than in other languages, and Kotlin
also allows you to avoid some errors in the code. One of the determining factors in Kotlin’s
popularity with Google is that it is compatible with Java, which is already used in developing
applications for Android.</p>
        <p>In the future, more libraries and tools will be developed for the language, more teaching
materials, it will be easier to find solutions to possible problems.</p>
        <p>In other words, the company actively promotes and popularizes the language. Considering
that Google is the giant of the IT industry, many companies follow the trend and release a
number of courses and other training materials on Kotlin on their own. More and more
articles related to the language appear on Habr, on Stack Overflow they solve a huge number of
problems using this technology. Thus, the popularity of Kotlin is growing rapidly. It can be
concluded that for beginners the entry threshold is greatly reduced and it becomes easier to
learn, since there are a lot of materials.</p>
        <p>On the other hand, there is the brainchild of the same corporation – Flutter. An incredibly
promising technology that Google is promoting in the world of cross-platform development.
Flutter, takes a diferent approach than React Native and Xamarin. It does not turn the source
code into native code, which is executed by the platform, but in fact draws a window on the
smartphone screen and renders all the elements itself. The language used is Dart, which Google
created as an improved version of JavaScript. But as of 2020, the technology is still a bit dry.
Due to the fact that Flutter is quite young, the amount of training materials is not as much as
we would like, in addition, there are still few additional libraries.</p>
        <p>The second point is the threshold of knowledge of entering technology. In other words: the
required amount of efort and time that needs to be spent on learning technology so that the
knowledge gained is enough to implement a simple project.</p>
        <p>From this side, cross-platform comes out a little ahead. Take a Facebook product as an
example.</p>
        <p>React Native is a JavaScript framework for building natively rendered Android and iOS apps.
It is based on Facebook’s React JS library for creating user interfaces. If a programmer has
experience in web development, especially in ReactJS, then he can become a developer of
applications for mobile devices in no time. Since ReactJS and React Native have 80% similarity in
the code base, you can write a business card application for phones almost immediately.</p>
        <p>In addition, there is a platform that makes it much easier for beginners to work with React
Native.</p>
        <p>
          Expo is a set of tools with which you can write a React Native app in minutes. It includes
outof-the-box tools like Android Studio and XCode configurations, Apple and Google certificate
management, push notifications. The Expo development team has developed a wonderful tool
called Snack that allows you to write and test code right in the browser, without any
preinstallation or setup of development environments. Accordingly, the “threshold of entry” into
React Native becomes very low. And thanks to good documentation from Facebook, going from
web development to mobile development becomes a breeze. Especially, it is worth noting that
this documentation provides materials for those who have experience with native development
and recommends working with the React Native CLI. And for those who are new to mobile
development, it suggests using the aforementioned Expo CLI [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
        </p>
        <p>It is worth considering the issue of the popularity and relevance of both sides in more detail.</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Popularity</title>
        <p>
          Google Trends [
          <xref ref-type="bibr" rid="ref3">2</xref>
          ] service will be used to research popularity.
        </p>
        <p>Consider the popularity of cross-platform development technologies – React Native and
Flutter – with the programming language for the Androd platform – Kotlin.</p>
        <p>React Native is blue, Flutter is red, Kotlin is yellow (figure 1).</p>
        <p>Judging by the graph, React Native has been leading in popularity in Ukraine over the past
two years, but Flutter is gaining popularity and even bypasses RN in search statistics at some
intervals.</p>
        <p>Figure 2 clearly shows how Flutter is gaining popularity every month, more and more. React
Native and Kotlin have consistently maintained their popularity in 2019 and 2020.</p>
        <p>Figure 3 shows the popularity of Google searches for the current list of technologies over the
past 5 years in Ukraine. React Native and Kotlin were significantly more popular than Flutter
until 2019. But starting in June 2020, Flutter came out on top in the search volume ranking.</p>
        <p>The fourth figure shows that over the course of 5 years, React Native has been more popular
than the rest of the technologies on the list (despite 2020).</p>
        <p>But making a choice, judging only by the number of searches for a programming language
on Google, would be the wrong decision. First, the list does not include the Swift
programming language for iOS. The fact is that Google Trends under the string “Swift” means not only
technology for development, but also as an international interbank system for transferring
information and making payments. Secondly, the very popular Java language was not included
in the comparison, because it is used not only for developing Android applications, but also
for other platforms (web, desktop, etc.). Accordingly, in this comparison, he would have left
no chance for his opponents. In other words, relying on Google Trends is not a good idea.</p>
        <p>
          But after analyzing many reviews and articles [
          <xref ref-type="bibr" rid="ref4 ref5">3, 4</xref>
          ] among developers, native development
is very popular. Basically, cross-platform development is treated as a tool that only experienced
developers use on small projects.
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>2.4. Relevance</title>
        <p>The second factor, which is one of the most important in choosing a technology, is its relevance.</p>
        <p>
          Consider the number of vacancies on the following sites: work.ua [
          <xref ref-type="bibr" rid="ref6">5</xref>
          ], rabota.ua [
          <xref ref-type="bibr" rid="ref7">6</xref>
          ], DOU
[
          <xref ref-type="bibr" rid="ref8">7</xref>
          ], grc.ua [
          <xref ref-type="bibr" rid="ref2 ref9">8</xref>
          ].
        </p>
        <p>On the graphs, the number of vacancies that are provided for working in the ofice is marked
in blue, and on a remote basis, in red.</p>
        <p>Statistics from these sites show that native development in ofices is in demand more than
cross-platform. But on a remote basis, all technologies have roughly the same number of
va</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Conclusion</title>
      <p>In conclusion, it is worth concluding: there is an application of any technology in the labor
market, since there are a huge number of ideas from startups to huge and complex projects.
It is impossible to give a clear answer which is better: native or cross-platform development.
Each project has its own technology requirements and is unique. Also, each developer has their
own skills and preferences. But, if you are a beginner developer, then you should start learning
from native development, then try cross-platform.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] Introduction to Expo,
          <year>2020</year>
          . URL: https://docs.expo.io.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>Figure 8: Job statistics on grc</article-title>
          .ua
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Google</given-names>
            <surname>Trends</surname>
          </string-name>
          ,
          <year>2020</year>
          . URL: https://trends.google.com/trends/?geo=US.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Polomodov</surname>
          </string-name>
          ,
          <article-title>Mobile development: native, cross-platform, hybrid, web</article-title>
          ...,
          <year>2020</year>
          . URL: https://apolomodov.medium.com/%D0%
          <article-title>BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C% D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE% D1%82%D0%BA%D0%B0-native-cross-platform-hybrid-web-178c355c174.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>N.</given-names>
            <surname>Priyatselyuk</surname>
          </string-name>
          ,
          <article-title>Native or cross-platform - what should a novice mobile developer choose? experts answer</article-title>
          ,
          <year>2019</year>
          . URL: https://tproger.ru/experts/native-or-crossplatform/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[5] Work.ua, Work.ua is Ukraine's #1 job search site</article-title>
          ,
          <year>2021</year>
          . URL: https://www.work.ua/en/ ?setlp=en.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>[6] robota.ua, Work in Ukraine. Employment and job search on robota</article-title>
          .ua,
          <year>2020</year>
          . URL: https: //rabota.ua.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [7] DOU.ua, Community of programmers,
          <year>2021</year>
          . URL: https://dou.ua.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [8] HeadHunter Group of Companies,
          <article-title>Work in Ukraine, personnel search and job posting - grc</article-title>
          .ua,
          <year>2021</year>
          . URL: https://grc.ua.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>