Native or mixed? About the application of the never-ending controversy

Source: Internet
Author: User

Absrtact: The debate on native applications and hybrid applications is intensifying. In the world of mobile technology, we need to understand the pros and cons of local and hybrid applications.

"Editor's note" author Jose Maria Arranz is the founder of the Web site of ItsNat AJAX Java web, ItsNat Droid Android Framework, and in this article, Jose compares the pros and cons of native applications and hybrid applications to make more People understand the difference between them and choose a more suitable type of application according to their needs.

Mixed or local? This is a problem. In response to this question I would also say two sentences (the following are purely personal views).

Language

Native apps: Use "serious language," such as Swift (IOS) or Java (Android). "Serious" means: static type, good object-oriented technology and fast.

Hybrid applications: Based on the dreaded JavaScript language (weak type, not good OOP, not native language so fast), unfortunately, if your application interface is quite complex, you need to be prepared to accumulate a lot of clumsy JavaScript language. Under Pure Web you have GWT, Dart ... To generate JavaScript, it is difficult to avoid using JavaScript in a mobile network.

A unified user interface to the platform

Native application: Accessible and easy to use. Just use the default local components to get a perfect look and feel for the local interface.

Hybrid applications: You must use the mobile tool to emulate the local user interface, and you need to generate two visual versions (Ios/android).

Accessing the local API

Native app: Direct and unrestricted access (applies only to Application security restrictions).

Hybrid applications: You must use the Mobile tool because local access from JavaScript is not unrestricted, such as in Android, the native (Java) method that is called by the JavaScript code must be defined in the interface, which is the work of the Mobile Toolkit API. If you want more powerful consolidation, you need to do the programming in the native Java language. In fact, the so-called "hybrid" is because many hybrid applications are truly hybrid native networks, that is, some of the underlying elements are native (menues, etc.), and the rest are Web-rendered. There are some things that are really troublesome, such as the necessary asynchronous calls between JavaScript and native code (for example, JavaScript code on Android, threads on different main thread are exclusive).

Performance development

This is perhaps the most subjective part of this article.

In my opinion, the development of native application is far more than the mixed type, such as language, tool, natural native integration and so on. Yes, you have to do two (ios/android) applications, typically requiring two teams. The performance of the two teams in terms of quality and development is far superior to "one hybrid team". Some parts can be reused, such as a Google-java-objective C-generated tool used by data management. In my opinion, if you need to support Windows mobility, it's not a big advantage.

Commissioning/testing

Native app: Native tools are already very handy.

Hybrid applications: Debugging tools are much better, but not as good as local tools.

Version Management

In this section, we must distinguish between the two types of hybrid applications:

    1. The Behavior/user interface (HTML, JS) is usually local. Hybrid applications are inherently self-contained, which differs from native applications.
    2. The behavior/user interface is primarily transmitted remotely. In essence, hybrid applications are like packaging a mobile site into a native application.

If your application is type 2, it's easy to say that version management is much easier than native apps. In native applications, any minor UI change and behavior requires a new version, and you have to keep it compatible with the old version, after all, the update ultimately relies on the user to complete. So this is really a light point for mixed application development.

I suspect that the mobile version of the Amazon store is type 2:

Http://www.theserverside.com/news/2240174316/How-Amazon-discovered-hybrid-HTML5-Java-Android-app-development

"The most important reason to use HTML5 in mobile apps is that you don't have to rely on users to upgrade them while you're updating your app. This capability makes managing applications easier and more secure-allowing developers to update as needed. This will be a huge advantage in the continuous development and field testing of the mobile technology world. "

Original address: Native Mobile vs. Hybrid mobile:the Eternal Question

This article is compiled and collated by OneAPM engineers. OneAPM is an emerging leader in application performance management, enabling enterprise users and developers to easily implement slow program code and real-time crawling of SQL statements. To read more technical articles, please visit the OneAPM official blog.

Native or mixed? About the application of the never-ending controversy

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.