Hybrid app (i) App development selection

Source: Internet
Author: User
Tags new set

1. Overview of several app development models

Native App

that is, traditional native App development mode, Android based on the Java language, the underlying call to Google's Api;ios based on the OC or Swift language, the underlying call app API provided by the official. Experience the best.

Web App

that is, the mobile web site , the page is deployed on the server, and then the user access to the major browsers. General refers to the website developed by the SPA (single Page application) mode. Experience the worst.

Hybrid App

that is, the hybrid development , by native through Jsbridge and other methods to provide a unified API, and then use Html5+js to write the actual logic, invoke the API, this mode, because the Android,ios API is generally consistent, And the final page is also displayed in WebView, all with cross-platform effects

React Native App

Facebook launched an open source, new app development program that uses js+ partial native syntax to implement functionality. The initial learning cost is higher, but after getting started, a good package can achieve most of the cross-platform. And the experience is very good.

2. advantages and disadvantages of app development model

Native App

That is, the native development model , developed by the native program, on different platforms, Android and iOS development methods are different, developed a separate app, can publish the App Store, has the following advantages and disadvantages

Advantages

directly rely on the operating system , the most interactive, the best performance

The native app experience is optimal compared to other modes of interaction

The most powerful , especially in interacting with the system, almost all functions can be realized

thanks to the native is directly based on system , so you can directly invoke the official API, the most comprehensive functions (such as local resource operations, notifications, animations, etc.)

Disadvantages

High development costs , no cross-platform, independent development on Android and iOS on different platforms

Based on Java development on Android, iOS based on OC or Swift development, independent of each other, must have their own developers

higher threshold , the original staff have a certain threshold for entry, compared to the majority of front-end personnel, less

a big feature of native is independence , so it's not easy to get started, not as wide as the Web front end, and Android,ios need to learn independently

slow updates , especially after you publish the store, you need to wait until the audit cycle

Native app update is a big problem , Android can also download the entire package apk for updates, but iOS, if it is released AppStore, must be updated through the AppStore address, and each update needs to be audited, so it is not up to date

High Maintenance costs

As with development , after the project is on line, maintenance is also very troublesome.

Web App

that is, the mobile web site , the page is deployed on the server, and then the user to use the major browser access, not a standalone app, unable to install and publish

Web sites are generally divided into two types, MPA (multi-page application) and Spa (Single-page application). The web app generally refers to the following spa forms developed by the website (because can imitate some of the features of the app), there are some advantages and disadvantages

Advantages

Low development cost , cross-platform, easy to debug

Web apps typically require a single front-end person to develop a set of code that can then be applied to major mainstream browsers (which can be code-compatible), without new learning costs, and be debugged directly in the browser

Low maintenance costs

ditto , if the code is reasonable, you need only one front-end to maintain multiple web apps

The most rapid update

because the Web App resources are deployed directly on the server side, only the server-side files need to be replaced, and the user access is updated (some caching issues, of course)

No installation required Apps that don't occupy your phone's memory

accessible through a browser , without installation, users will be more willing to use

Disadvantages

low performance and poor user experience

because it is accessed directly through the browser , it is not possible to use the native API and the operation experience is not good

relies on the network , the page access speed is slow, consumes the traffic

Web app every access needs to go to the server load resource access, so must rely on the network, and slow speed of access is not ideal, especially on the mobile side, if the site optimization is not good will consume a lot of traffic

Limited functionality , large number of functions cannot be achieved

can only use HTML5 some of the special APIs, cannot invoke the native API, so many functions are unable to achieve the situation

temporary access , low user retention rate

This is both its advantages and disadvantages, the advantage is that there is no need to install, determined that it is sometimes difficult to find after use, or it is difficult to specifically for a web app to retain a portal, which makes it difficult for users to use again

Hybrid App

that is, hybrid development , that is, semi-native semi-web development model, has a cross-platform effect, of course, the actual final release is still a separate native app (various platforms have a variety of SDKs), has the following advantages and disadvantages

Advantages

Low development cost , cross-platform, easy to debug

Hybrid mode, from the native to provide a unified API to JS call, the actual main logic has HTML and JS to complete, and because the final is placed in the WebView display, so only need to write a set of code, to achieve cross-platform effect, in addition can also be directly in the browser debugging, very convenient

The most important thing is just a front-end person to learn a little JS API calls, no two independent native personnel

General Cross-platform in hybrid can have a minimum of three platforms: Android App,ios App, normal WebKit browser

Low maintenance costs and reusable functionality

ditto , if the code is reasonable, only need a front-end to maintain multiple apps, and very versatile can also be reused

More Free Updates

Although there is no web App update so fast, but the hybrid can also be provided through the native API, active resources download, to update only the resource files, not update apk (IPA) effect

Low learning costs for novice-friendly

In This development mode , only the front-end staff to focus on some of the native API, the implementation of the need not care, no new learning content, only the front-end personnel can develop

Improved functionality , performance and experience are much better than web apps

because the native API can be called , so many features can be implemented as long as the native provides, but also the performance is relatively close to the original

Some of the performance requirements of the page can be natively implemented

This is supposed to be Hybrid mode is one of the most advantageous, because this mode is a native hybrid web, so we can fully interactive, high performance requirements of the page with native write, and then some other pages with JS write, embedded in WebView, to achieve the best experience

Disadvantages

compared to native , the performance still has a large loss

This mode is limited by the performance of the WebView, a lot of loss compared to the native, experience can not compare with the original

not suitable for apps with strong interactivity

The main applications of this model are : Some news reading class, information display class app, but not for some interactive or high performance requirements of the app (such as more animation is not suitable)

React Native App

Facebook launched a new set of open-source app development programs, Facebook in the initial research hybrid development, feel that the model has congenital defects, so decisively abandoned, instead of self-study, and then launched their own "React Native" solution, unlike H5, is also different from the original, more like the use of JS to write native applications, has the following advantages and disadvantages

In fact, many big companies have turned React native developed, already very mature.

Advantages

Although the development cost is greater than Hybrid mode, but less than native mode, most code can be reused

compared to the native mode , this mode is unified with JS write code, so often only one member to learn, you can complete the development of cross-platform app, and subsequent code encapsulation good, many functions can be reused

performance experience is higher than Hybrid, not inferior to the native

this model and Hybrid is not the same, the view layer in hybrid is actually DOM, but the view layer of this mode is virtual DOM, so performance is higher than hybrid, the distance from the primary gap is small

This pattern can be thought of as JS write the original, that is, the page with JS write, and then native through the bridge technology Analysis JS, JS content separately rendered into the native Android and iOS, so that is why performance is not inferior to the native

Developer Single technology stack , one-time learning, cross-platform development

This pattern is unified by JS writing, has a unique syntax, so only need to learn once, you can simultaneously develop Android and iOS

Community Prosperity , difficult to solve problems

This is supposed to be React native is a big advantage, unlike the hybrid model and the native model as each battalion, this model is launched by Facebook Unified, so there is a unified community, there are a lot of resources and active personnel, friendly to the developer

Disadvantages

Although it can be partially cross-platform , but not hybrid in one write, two times run that kind of, but different platform code differences

this pattern is actually still JS to write native, so the native code in Android and iOS will be different, if you need cross-platform, for developers have a certain requirements

of course , if the development of a certain time, the component library is rich enough, then in fact, the impact is not much, even faster than the hybrid

Developer Learning at a certain cost

Although the community is already relatively mature , but a new ordinary front end learning still have a certain learning cost, not as smooth as the hybrid model

3. app development model for

Native App

Web App

Hybrid App

React Native App

Native feature Experience

Excellent

Poor

Good

Close to good

Rendering performance

Very fast

Slow

Close to fast

Fast

Support for device bottom-level access

Support

Not supported

Support

Support

Network requirements

Support offline

Dependent Network

Offline support (Resource storage local condition)

Support offline

Update complexity

High (almost always updated via the store)

Low (server-side direct update)

Low (can be updated with resource bundles)

Low (can be updated with resource bundles)

Programming languages

Android (Java), IOS (Oc/swift)

Js+html+css3

Js+html+css3

Mainly use JS to write, grammar rules JSX

Community Resources

Rich (Android,ios alone learning)

Rich (lots of front-end resources)

have limitations (different hybrid are independent of each other)

Rich (Unified and active community)

Difficulty in Getting Started

Difficult (different platforms need to learn separately)

Simple (write once, support different platform access)

Simple (write once, run any platform)

Medium (Learn once, write any platform)

Development cycle

Long

Short

relatively short

Medium

Development cost

Expensive

Cheap

More inexpensive

Medium

Cross-platform

Non-cross platform

All H5 Browsers

Android,ios,h5 Browser

Android,ios

App Release

APP Store

Web server

APP Store

APP Store

4. Selection of app development mode Choose the pure Native app mode case

High performance requirements , very good experience, not the pursuit of development efficiency

generally belong to the level of fastidious , because normally if the requirements are not particularly high, there will be hybrid

Choose the Web app mode scenario

no pursuit of user experience and performance , no requirement for offline access

normally , if you're looking for performance and experience, you won't be using web apps

no extra features , only some information to show

because of the limitations of the web, many features cannot be implemented, so there are only a few additional features that can be deprecated.

Select the Hybrid app mode

Most of the cases This mode is recommended by the app

This model can be used to achieve high-demand interface , for some of the more general-purpose, display-type pages can be implemented with the web, to achieve cross-platform effect, improve efficiency

Of course , generally a better hybrid solution, will put resources in the local, can reduce network traffic consumption

Select React Native app mode

The pursuit of performance , experience, while the pursuit of development efficiency, but also have a certain technical capital, willing to invest in the early

React Native This mode learning cost is higher, so need to invest a lot of time to achieve a better level, but with a certain level, developed its advantages embodied, performance is not inferior to the original, and the development speed is very fast

Hybrid app (i) App development selection

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.