Back

Choosing the right technology for your Mobile App.

April 24th, 2018| Nicolás Galano

When it comes to creating an app, how do we know which technology to use?

What is a native app?

A native application (native app) is an application program that has been developed for use on a particular platform or device (iOS or Android). Because native apps are written for a specific platform, they can interact with and take advantage of operating system features and other software that is typically installed on that platform.

What is an hybrid app?

We define hybrid as a web app, primarily built using HTML5 and JavaScript (AngularJS most of the time), that is then wrapped inside a thin native container that provides access to native platform feature.

So, basically, an hybrid app is not a native app, but it can interact with the same platform features, the difference is just the language, because we use the same code that we use on web apps, which is good if we plan to have an app that will work on every device, web browser, or platform.

What technologies do we have at hand?

Native code

So for iOS we code in Swift or Objective-C, and for Android we code in Java, so basically we code in each platform’s native language.

A good coder will build a native app that can be fast and lightweight, and as native code is platform oriented all features provided by the platform can be used, and the final user can have a friendly interface to interact with.

IONIC

Ionic provides tools and services for developing hybrid mobile apps using Web technologies like JS, CSS and HTML5, In WeDoWeb.co we usually work with AngularJS, HTML/CSS, to build apps in IONIC. Apps can be built with these Web technologies and then distributed through native app stores, both “App Store” and “Play Store”, to be installed on devices by leveraging “Cordova”.

React Native

A React Native app is a real mobile app. With React Native, you don’t build a “mobile web app”, a “HTML5 app”, or a “hybrid app”. You build a real mobile app that’s indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps.

Which stack to use?

So me as a client, I want my app to…

Only work on iOS:

In this case an iOS development will do.

ADVANTAGES:

  • Creates Native Code.
  • Easy to imitate common iOS behaviours.
  • Quality and performance can be tested easily.
  • Hardware accessibility is maximum.

DISADVANTAGES:

  • Can’t re-use code for creating a new app for a different platform.

Only work on Android:

In this case an Android development will do.

ADVANTAGES:

  • Creates Native Code.
  • Easy to imitate common Android behaviours.
  • Quality and performance can be tested easily.
  • Hardware accessibility is maximum.

DISADVANTAGES:

  • Can’t re-use code for creating a new app for a different platform.

Work on all Mobile Devices:

In this case, React Native will be a good choice, because it allows you to do the work of coding one app and get two app at the same time, iOS and Android for the price of one.

ADVANTAGES:

  • Creates Native Code.
  • One Code for 2 Platforms(iOS and Android).

DISADVANTAGES:

  • Re-Use Code to build a Web App is hard.
  • Not Fully Native Code (takes a bit longer to imitate native functionalities).

COSTS:

  • Less Cost (less developers) to build apps for both Android and iOS Native Apps.

Work on Browser(Web App), and all Mobile Devices:

The best approach will be to use IONIC, because of the ability of coding less to create apps for more platforms.

ADVANTAGES:

  • One Code for all Platforms (iOS, Android and Desktop/Web Browser).
  • Can divide work in two parts (Layout & Logic).

DISADVANTAGES:

  • Quality and performance may not be perfect.
  • Not Native Code (takes a bit longer to imitate native functionalities).

COSTS:

  • Less Cost (less developers) to accomplish a full scalable app for all platforms.

Contact us

Tell us what you are looking for, we'll be happy to guide you!