By: Muhammad Faza Mu'tashim, Analyst Programmer at Mitrais
Nowadays, hybrid applications are popular amongst mobile developers. Although many people are still debating which one is better; hybrid or native app?
Before we get into the topic, let's look at the difference between a native and a hybrid application.
Native apps: built for specific platforms, using different programming languages such as Java for Android, Objective-C or currently Swift for iOS and C # for Windows. This requires a lot of time and expense to be developed.
Many developers are concerned with the time and the cost to build an application. This is the main reason why people choose a hybrid application. But sometimes, deciding to build a hybrid application can be a big mistake. Here are some points you should consider before starting build a hybrid application:
What Features Do You Need?
The most important thing is quickly identify features that can be done in hybrid and those that can only be done in a native application. A simple test is to ask “Can this be seen in a website?” If not, then you will need to create the application using native code.
Hybrid applications need a wrapper that makes the app capable of running on a specific platform. Cordova and Phonegap, for example, often utilize libraries that allow us to use native functionality in a hybrid application.
Please note that these native libraries have a major disadvantage. It takes more time because they have to be written for every single targeted framework. For example, if you have a plan to make your app compatible right after each operating system release (such as Android Nougat 7.0 that will release soon), trust me it’s Mission Impossible. In addition, using these libraries means that you are trusting that the open source community will maintain and document them.
Is Performance Your Top Priority?
In fact, hybrid applications are slower than native apps. Back to the question, if you put performance in your top priority list, build your app natively!
As we know, Facebook has invested in mobile web app. In 2012, Mark Zuckerberg said that Facebook’s mobile strategy relied too much on HTML5, rather than native applications and it was Facebook’s biggest mistake. One of the big reasons is that many people complained about speed, performance, instability and other issues.
Hybrid applications have some limitations if we compare them to native applications. One of them is memory usage. We have to pay more attention to memory usage since we know mobile applications run on a small physical device. Hybrid applications, with their webview consume more memory. It is not an opinion, but a fact.
Do You Need an Interactive user interface?
I guarantee that you will never see any popular mobile game application developed using a hybrid platform. Why is this? Well, because hybrid applications are not a good choice for handling the high quality graphics and animation which are needed by most interactive mobile game applications.
Android and iOS apps provide the user experience in a different way. Each of them has their own language to design the interface. Developers should make the application user friendly. But there is a limitation with hybrid apps. As I already mentioned before, it simply can be identified by looking at your requirement and answering this question. Have you ever seen a similar interface for your application on a website? If the answer is yes, you can also create the interface in hybrid app. But if the answer is no, I suggest you develop your application in native.
What framework will you use?
Native apps have a very well-established and (mostly) well-documented technology stack. Most Android apps are written in Java Language and they are built in the same way. iOS apps can be written in either Objective-C or Swift, but there is a large community of developers and a large knowledge base supporting both.
We can build hybrid apps with many app frameworks. These are usually similar, but it would be non-trivial to take a hybrid app built with one framework and rebuild it with another. For that reason, you want to be sure you make an informed decision when choosing your project’s framework.
Making this decision increasingly more difficult is the large number of hybrid app frameworks in existence. It is highly unlikely that all of these frameworks will continue to be maintained in the coming years. Many will likely lose market-share and thus become increasingly costly to maintain. So, by choosing the framework you will use for your hybrid app, you are betting on its future success.
Deciding to choose native or hybrid for your application is not that hard. However, there is no right or wrong way on deciding this. It all depends on the individual needs of your application. Going hybrid can be a good choice to reduce development effort for your mobile application but comes with the risk that it may not operate correctly on all target platforms. Having a good understanding about the limitations and the risks of hybrid apps and knowing your priorities and requirements are a good start when making your choice.