Undoubtedly the mobile application development market has been increasing in recent years and statistics indicate that the trend will continue.

Since the milestone of 2007 with the presentation of the iPhone by Apple and Android by Google, the mobile industry has changed forever, it went from being a casual device to an everyday one in which we can manage all our communications, organize our tasks and for entertainment, since by incorporating more powerful hardware and software; The video game industry has seen a very important market niche for casual and not so casual gamers. Like the development world in general, many companies have been forced to reinvent themselves and others have seen a golden opportunity. Examples of this are Nintendo and Niantic, the remembered Flappy Birds, the addictive Candy Crush and in terms of applications, who doesn’t know WhatsApp.

But with such a variety of mobile models, including tablets, development has gotten a bit out of control, despite the fact that in the case of Apple, it has tried to maintain a standard line with its models and its operating system (iOS). Instead, Android has been much more segmented, its strength is its great weakness, because each hardware house handles a modified version of Android, as is the case with Samsung and HTC. And Google has realized this, that’s why it bought Motorola a few years ago and although it failed to completely standardize the Android market, this year it launched Pixel, we’ll see how it goes.

When developing a mobile app, it is discussed for whom it is directed and what would be the most suitable platform, an example, if you want to launch for North America, without a doubt the option would be iOS, on the other hand if you want the Latin market, without a doubt should be released for Android. Of course, if you have the resources and the time, it could be done for both platforms, but that is the main inconvenience that developers face, because it implies significantly raising costs and additionally in the case of iOS you must have a Mac.

For this reason, in recent years, approximately since 2012, a multitude of alternatives and tools have begun to emerge to speed up mobile development, which have their advantages and disadvantages.

Application with web framework

Already practically extinct, it consists of a simple frame or view that renders the browser, we say that it is extinct, because with the guidelines and demands of the current search engine market, sites at this point must be responsive or adaptable to mobiles. Currently, the market for lunchers (to websites) has also decreased, since the Stores have been prohibiting their use, since they are not considered an application, only a redirection to some site.

Advantages

  • Low cost
  • Time
  • Visualization on all platforms
  • Learning curve

Disadvantages

  • Appearance
  • Performance
  • Functionality
  • No offline support
  • No user experience
  • No publishing to Stores allowed

Hybrid Application

This kind of application is the one that has had the highest growth rate in recent years, as it merges the best of both worlds between web and native. It is built using HTML, CSS and JavaScript but unlike the web app, it compiles and uses the native controls of each platform, using for example Phonegap or Cordova, which in turn are used by other frameworks, as is the case with Ionic or React Native. Similarly for the world of video games, in the case of Unreal Engine, Godot or Unity, they use Apache Cordova for their compilation to mobiles.

Advantages

  • Its cost
  • Time of development
  • Can be deployed on all platforms
  • Learning curve
  • Source code reusability

Disadvantages

  • Visual aspect
  • Performance (It has good performance but never compared to a native app)

Native app

As its name indicates, they are the applications developed specifically for each operating system and therefore, they are fully optimized for said environment, providing the maximum user experience.

In the case of Android, Java is used and for iOS Objective-C or Swift, each one provides a fairly efficient work environment, such as Android Studio and Xcode respectively.

Advantages

  • Guaranteed compatibility and optimization
  • Performance
  • Native look and feel
  • Full use of device resources and functionalities

Disadvantages

  • Its cost
  • Time of development
  • Learning curve
  • Source code reusability

Aplicación nativas multi plataforma

In this section, we refer to those applications that are completely native but can be deployed on different platforms, for example Xamarin or Genexus, the specific advantage is that we can reuse resources, such as the programming language and UIs. All using a single IDE.

Code generated for example in Xamarin with C# will be transcompiled to Objective-C or Java depending on the platform.

Advantages

  • Its cost (Lower than the native ones but higher than the hybrid ones)
  • Can be deployed on different platforms
  • Compatibility and optimization
  • Performance
  • Native look and feel
  • Full use of device resources and functionalities
  • Reusability of the source code (From 30 to 70%)
  • Time of development
  • Learning curve (Less than native but higher than hybrid)

Disadvantages

  • Packing size is usually a bit larger than native
  • You have to wait to get the latest versions of each platform

To sum it up, from our point of view, it is necessary to know the structures of each of the platforms, it is the only way to appreciate the differences between each one and what strategies can be taken at the moment of facing a project.

Of course, the current market demands productivity and efficiency, which is why each project has its own identity and measures should be taken to apply for a better response, for example, a client arrives with the usual behavior of high expectations and low budget, obviously his project applies to hybrid applications, there is no doubt that this is the choice.

But, if he require an application with much more optimization and with a suitable budget and time you can opt for the native multi-platform.

Perhaps there are some very specific cases in which the customer requires a particular platform and also the source code or simply make adjustments to an already started app, in this case we have no choice but to use the native ecosystem.

Finally, if we had to choose we would definitely choose optimization and productivity, and the one that applies best is the native multi-platform.