What is the hybrid app?
Here, let's look at the definition of the entry.
Hybrid App:hybrid App is a mobile application, that's coded in both browser-supported language and computer language. They is available through application distribution platforms such as the Apple App Store, Google Play etc. Usually, they is downloaded from the platform to a target device, such as IPhone, Android phone or Windows phone. The subscribers need to install to run them.
The meaning of translation comes from
1, clear the subject is a mobile app (ie mobile app)
2. Using browser support and computer language coding
3, can be published in the various mobile phone platform App Store
4. Can be installed and run
Here my personal understanding is that first it is an app, as an app should have a function that can be released and installed to run, that is, the above?? The 3 and 4, and its composition is the computer code.
Second, to understand the literal meaning, hybrid meaning is mixed, and the corresponding is the native app and Web app,native meaning is the original, the Web means the Web page, and hybrid the meaning of nature is to take into account the two long, a chestnut like a hybrid electric car. The advantage of web app is that the compatibility is better, the benefit of native app is better performance and user experience, and the hybrid app is compatible with both, but now for hybrid app development This is a contradiction and unification proposition.
Implementation mode
Native app builds a full-screen web browser and opens the homepage by default in the app
User interface rendering is built using Web App mode, that is, browser support language HTML + CSS + JS Coding build Interface
The release build is in native app mode, but unlike native mode, it introduces resource files encapsulated by automated build tools (typically under the WWW folder)
The native app communicates with the Web App through Jsapi mode callbacks, such as Cordova, Jsbridge, and other frameworks, but the process is similar, and the Cordova Communication pattern diagram is listed here.
From the experience, hybrid certainly compared to native, native with the inherent performance advantage, but the development cost is large, for a need to quickly iterative molding and occupy the market for the product native development seems inappropriate, and Hybrid has the advantage of cost control, Although comparable to native, but has a relatively close to the native experience, this is a more eclectic choice of options, but for the long-term survival of products, constantly improve the user experience is the best choice.
Cooperation
As mentioned in the implementation pattern above, native provides a host environment for web development in principle, which is essentially a native browser based on the H5 WebKit kernel, and this browser provides an interface for invoking native mode. Equivalent to native development to provide a system-level API for front-end development, so from the front-end perspective of the past is familiar with the interface call, but the difference is that these system-level APIs are not traditional HTTP requests, but in the public variables of the browser, such as the Window object.
At present, the communication method used in the work is Cordova,cordova the following resources:
Official website: https://cordova.apache.org/docs/en/8.x/guide/overview/index.html
GitHub resource: https://ionicframework.com/docs/native/(this resource depends on the document description on the GitHub address)
(i) Hybrid app hybrid development model