Technologies

Creating a mobile application, what technology should you choose?

technology,native,fullnative,hybrid,IT,apps
technology,native,fullnative,hybrid,IT,apps

JavaScript return

Until a few years ago, nothing indicated that the JavaScript scripting language would be one of the most popular programming languages. For many years I personally treated it as just an addition to improving the visual part of the application. The change took place in 2009, when Ryan Dahl, working on the introduction of push technology to websites, decided on JavaScript as the one in which he will implement his project. This decision influenced the creation of Node.js, which had the main influence on the fact that JavaScript revolutionized the development of web and mobile applications. 

We can say that this is the only programming language that allows you to create full-stack web applications with client-side and server-side support. Node.js has allowed developers to go a step further and create frameworks such as AngularJs, ReactJs or Vue.Js

For example, AngularJs created the first applications operating on one page (single app) based on the model MVW (Model-View-Whatever). At the moment, the largest in the IT industry, ie Google (AngularJs) and Facebook (Reactjs), have entered the game. At the moment, in the TIOBE Index, the top nine of the most popular programming languages ​​are JavaScript with an upward trend.



Ranking of the most popular programming languages ​​according to the TIOBE Index, March 2018.


Mobile applications coded in JavaScript? 

For many years, talking to programmers I have heard about the possibilities of writing mobile applications only using JavaScript, HTML and CSS.

But I did not see any chance to translate these solutions into application performance or the ability to write more complex solutions. At that time, my fears were in line with reality. But is it still like this? 

Before starting the review of all possible solutions for writing mobile applications by programmers, you need to enter the solution classifications. Three groups of solutions for creating mobile applications can be distinguished. 

  • native
  • full native  
  • hybrid  


Full native

Java (Android) and Object-C / Swift (iOS) belong to the first group in the creation of mobile applications, where the source code is compiled to the machine. The main positive is that the solution gives high performance, so when writing games this technology is even indicated. The biggest negative, however, is that the cost of creation and exploitation itself is very high.


 

Android is an operating system for mobile devices, including smartphones, notebooks and tablets.


Hybrid

Probably all of you have already heard about the hybrid development of mobile applications. Writing an application for mobile devices using JavaScript, HTML and CSS, just like web-based ones, is the main assumption of this solution. The browser (WebView) built into the device is responsible for the view similar to the web pages. And Cordova is used to communicate with the device. The easiest way to do this is simply an API written in JavaScript, which mediates between the native application code, including the consistency of communication with all mobile device systems (iOS, Android, Windows Mobile). For example, frameworks such as Xamarin, PhoneGap and Iconic are used to implement hybrid mobile applications. The biggest disadvantage of this kind of technology is the stability and efficiency of the created applications.

The advantages, however, are the lower cost of creation and operation and simplicity compared to the Full native approach.


The creator of solutions allowing to create mobile applications for Android / iOS and Windows Mobile using .Net.



Native

It is not accidental that the applications, which are referred to as native, are usually written at the very end. Considering the fact that this solution combines the above described and at the same time reduces their main drawbacks. The main frameworks for creating native applications are React Native (Facebook) and NativeScript (telerik).

Their story is quite young - it goes back only a few years back and arouses quite a lot of emotions among developers. Almost the same as in the hybrid approach, applications are written using HTML / XML, JavaScript and CSS. It's just that the browser for rendering view and event handling is not used here. The application works fully natively, which results in better quality than in hybrid applications, and often exceeds those created in full native. Similar to hybrid applications, creation and maintenance is cheaper than with the full native approach.

One of the two most popular frameworks for writing applications in a native approach is React Native. It was in it that applications such as Facebook, Instagram and Skype were created. The second most popular, and for me even rising, star is the NativeScript framework.


NativeScript is an open-source framework for creating mobile applications for Apple iOS and Android systems.

The most interesting solution in it is that you can write in pure JavaScripit, TypeScript or Angular (now Vue.Js is also being learned). Plus, we also do not need to program additional components like this can happen with React Native, and thanks to that we have 100% access to the device's API. Of course, it also has a downside (or maybe it is a plus?): Behind ReactNative stands a huge company and huge money, but which also gives more opportunities.


What to choose?

The approaches described above allow briefly to learn about the current technologies of creating mobile applications. Personally, being a Web Developer, I would tend to choose application development in the native approach. In this technology I see the future of mobile application development.

Marek Tenus
CTO, Full-stack Engineer | Laravel & AWS fan | Nativescript & ML enthusiast | In his free time, he shares knowledge about programming languages and technology trends. Unofficially, he is our main taster of cakes and other sweet pastries.

What do you need?

Website

IT system

Mobile app

Graphic design

Technical support

Chatbot

The preferred form of contact

Please provide contact details

The personal data administrator is HighSolutions sp. z o.o. (hereinafter the "Company") with headquarters in Tarnowo Podgórne, ul. Szkolna 21/1, 62-080 Tarnowo Podgórne, e-mail adress kontakt@highsolutions.pl. Detailed information on the processing of personal data can be found in the privacy policy.

Thank you!

We will get back to you soon