Difference between H5 and native APP?

Reprinted from: http://www.ui.cn/detail/247751.html
In recent projects, due to various objective factors, the mobile terminal is the default pure H5 APP. The deepest feeling is the various pits, so big Pit. After the product was launched, with various reasons for the pitfalls, I found that many people said that a pure H5 APP can support two different APPs of android and IOS in one writing, which greatly reduces the development cost. But in actual work, it is found that this is not the case, it is not easy, there are many bugs, and there are a lot of compatibility problems with various CSS, not to mention that animations can't solve these problems, it is really a pit than one The pit is deep. Even so, although there are still many problems that have not been solved well, why are there still many people who develop H5 Confluence APP. Here I want to mention a Zuckerberg who has just become a father--Xiao Zha's classmate.
As early as 2010, when HTML5 was just emerging, Steve Jobs said that HTML5 would become the next technology wave to replace Flash. Since then, many large companies and startups with ideas have been testing the water and trying to keep going. to promote the development of HTML5. Among them, the founder of Facebook is the most popular. He proposed that HTML5 and Web App must be used as much as possible to break the monopoly of iOS and Android. In the age of the information wave, Facebook spent two years concentrating on developing HTML5, investing a lot of energy and material resources. In the end, due to the technical problems of HTML5 itself, bugs often appeared, and the impact on Facebook was immeasurable, so it almost triggered the fate of being acquired by Yahoo. Fortunately, in 2012, because the company was not satisfied with all the JS MVC frameworks on the market, and taking advantage of the opportunity to refactor the Instagram website, it decided to write one by itself. At this time, it switched from HTML5 to native applications.
When it comes to the difference between H5 and native APP, what is a native APP and what is a web APP? I saw that a senior explained it very well, so I will share it with you here.
Web App is a framework-based APP development mode (HTML5 APP framework development mode), which has the advantages of cross-platform development. This mode is usually composed of two parts: "HTML5 cloud website + APP application client". The APP application client You only need to install the framework part of the application, and the data of the application is to go to the cloud to get the data and present it to the mobile phone user every time the APP is opened.
Native APP, also known as Native App, is developed in different languages ​​and frameworks for different mobile operating systems such as IOS, Android, Windows, etc. This model is usually composed of two parts: "cloud server data + APP application client" , All UI elements, data content, and logical frameworks of APP applications are installed on the mobile terminal.
In addition to the difference between the two components and the read data mentioned in the definition, what are the differences? I will briefly explain from the following aspects:
1. The difference in development (this place is too professional, I consulted the development partners of the team)
At present, the development of React Native is becoming more and more popular, and the WeChat applet is developed based on React Native. The experience is close to the native APP, and the development prospect is worthy of attention. Fortunately, non-native APPs can also call hardware such as Bluetooth and cameras, and can also be successfully released to the Apple APP store.
Mobile Web App
  1. Because it runs on the browser of the mobile device, only one development project is required.
  2. This application can be completed using HTML5, CSS3 and JavaScript and server-side languages ​​(PHP, Ruby on Rails, Python)
  3. There is no standard SDK here, so don’t forget to choose some cross-platform development tools, such as PhoneGap, Sencha Touch 2 and Appcelerator Titanium, etc.
Native App
  1. Each mobile operating system requires an independent development project
  2. Each platform requires a separate development language. Java(Android), Objective-C(iOS) and Visual C++(Windows phone), etc.
  3. You need to use their own software development kits, development tools and their own controls
2. Differences in capabilities
Mobile Web App
  can only use limited Mobile hardware device capabilities.
Native apps
  can interact with the underlying functions of mobile hardware devices, such as personal information, cameras, and gravity accelerators. I feel very deeply about this point. When I did the New Year's H5 marketing campaign in 2016, it was because I didn't take into account that the H5 could not use the mobile hardware side gravity accelerator, which led to a temporary replacement of the design plan.
3. Differences in acquisition methods
  Mobile Web App
  1. Access from a browser on a mobile device
  2. No need to install additional software
  3. Software updates only require a server
  4. Because there is no commodity or store that provides this App , but generally nested in the system, or used in the internal system
  5. Cross-platform development, users do not need to go to the store to download and install
the
app , because there is no official store review at all
  8. If you already have a Web App, you can use responsive web design to help improve it (this is also an advantage?)
9. All users use the same version
  Native App
  1. Download directly to the device
  2. Run as an independent application (no browser required)
  3. Users must manually download and install these native apps
  4. There are some stores and stores to help users find your app, and the app store has everything.
  5. The installation package of the native APP application is relatively large, including UI elements, data content, and logical framework;
  6. Mobile phone users can access the previously downloaded data in the APP application even if they cannot access the Internet.
  7. The native APP can call the hardware devices of the mobile terminal (voice, camera, SMS, GPS, Bluetooth, gravity sensor, etc.)
  8. The APP application updates new functions, which involves submitting each application store for review.
9. Users can freely choose whether to update the software version, so there will be situations where different users use different versions at the same time.
 Regarding the difference in the interaction between the two, I will reiterate it later...
even if there is a big difference between the two. The difference, even though H5 has a lot of pits and problems, it still does not prevent the ubiquity of mobile web. Mobile web is currently the only platform that supports access to various devices, and it is also the only platform for developers to publish mobile applications. This mobile interaction is effectively combined with PC system tasks. The native native app can make full use of the characteristics of the device, which is its unique advantage. Therefore, for a decision maker, if you want to make a product with a better experience, the Native App may be the best choice. Of course, if you want to make your product occupy a place as soon as possible, and strive for rapid development, low cost, multi-platform, etc., then H5, which has many technical problems that have not been solved well, is also a good choice. Formally because it has complex and changeable CSS styles that consume a lot of performance, it has a more competitive advantage - it brings a variety of typography, and can be detailed to the pixel level of each word width, line height and style Processing, can bring you a different typesetting of graphic and text convergence. I think these are the advantages of the H5.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326461676&siteId=291194637