Native Apps 指的是远程程序,一般依托于操作系统,有很强的交互,是一个完整的App,可拓展性强,需要用户下载安装使用

优点:

  • 打造完美的用户体验
  • 性能稳定
  • 操作速度快,上手流畅
  • 访问本地资源(通讯录,相册)
  • 设计出色的动效,转场
  • 拥有系统界别的贴心通知或提醒
  • 用户留存率高

缺点:

  • 分发成本高(不同平台有不同的开发语言和界面适配)
  • 维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2,V3,V4版本,需要更多的开发人员)
  • 更新缓慢,根据不同平台,提交-审核-上线等等不同的流程,需要经过的流程较复杂

Web Apps

指采用HTML5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用

优点:

  • 开发成本低
  • 更新快
  • 更新无需通知用户,不需要手动升级
  • 能跨多个平台和终端

缺点:

  • 临时性的入口
  • 无法获取系统级别的通知,提醒,动效等等
  • 用户留存率低
  • 设计受限制诸多
  • 体验较差

Hybrid Apps 混合开发(H5+原生):如:微信

Hybrid Apps 指的是半原生半Web的混合类App。需要下载安装,看上去类似Native Apps,但只有很少的UI Web View ,访问的内容是web。例如:store 里的新闻类APP ,视频类APP普遍采取的是Native的框架,Web的内容

优点:

  • 兼容了Native Apps 和 Web Apps 的优点
  • 可以通过jsBridge直接访问Native API
  • 能够轻松使用跨平台Web技术
  • 测试方便

缺点:

APP的Web部分可能是驻留在服务器上的网页,封装到App代码中,存储在设备本地。

  • Hybrid Apps 代码驻留在服务器上,摈弃了任何离线可用性,因为设备与网络没有连接时,无法访问设备。(已有解决方案:本地留存)
  • 把Web代码封装到APP里面可以提高性能和可访问性,但是不允许远程更新。

嵌入形态:

参数对比:

实现技术:js、css,html

React

React.js& React Native

联系

  • UI使用的都是JSX,逻辑都是使用了JavaScript
  • 都应用了虚拟DOM(Virtual DOM)

区别

  • 对于Web
    Apps,虚拟DOM仍然要转换成实际的DOM
  • 对于Android和iOS,虚拟DOM映射成本地控件

React Native

优势:

  • 基于React Native 的App在运行效率上接近Native App
  • 具备混合开发模式(Hybrid)的两个优点:热更新和跨平台

Native Apps、Web Apps的更多相关文章

  1. Native App、Web App 还是Hybrid App?

    一.什么是Native App? Native App即原生应用,即我们一般所称的客户端,是针对不同手机系统单独开发的本地应用,如需使用需要先下载到手机并安装,下载Native App的最常见方法是访 ...

  2. Native App、Web App 还是Hybrid App

    Native App.Web App 还是Hybrid App? 技术 标点符 1年前 (2014-05-09) 3036℃ 0评论 一.什么是Native App? Native App即原生应用, ...

  3. Native App、Web App 还是Hybrid App?(转)

    一.什么是Native App? Native App即原生应用,即我们一般所称的客户端,是针对不同手机系统单独开发的本地应用,如需使用需要先下载到手机并安装,下载Native App的最常见方法是访 ...

  4. native app、web app、hybrid app、react-native 区别

    Native App:指的是原生应用程序,一般依托于操作系统,有很强的交互. 技术:Objective-C Java Native App开发的优点 提供最佳的 户体验 拥有系统级别的通知或提醒 可以 ...

  5. [WebView其中一项研究]:Web Apps基本介绍

    今天,我们开始了解WebView,以及Web Apps发展,从主要内容Android实际的例子来解释正式文件和后续. (博客地址:http://blog.csdn.net/developer_jian ...

  6. 什么是 Native、Web App、Hybrid、React Native 和 Weex?(转载)

    什么是 Native.Web App.Hybrid.React Native 和 Weex?   来源:zwwill_木羽 segmentfault.com/a/1190000011154120 一句 ...

  7. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  8. Native、Web App、Hybrid、React Native(简称RN)、Weex 间的异同点。

    App常用开发模式简介 此处App为应用application,并非我们通常讲的手机App. 常用的几种APP开发模式-脑图 Native App 传统的原生App开发模式,有iOS和aOS两大系统, ...

  9. Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较

    说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...

随机推荐

  1. 【数学】【P5077】 Tweetuzki 爱等差数列

    Description Tweetuzki 特别喜欢等差数列.尤其是公差为 \(1\) 且全为正整数的等差数列. 显然,对于每一个数 \(s\),都能找到一个对应的公差为 \(1\) 且全为正整数的等 ...

  2. WPF系列之二:解耦View层控件事件与ViewModel层事件的响应

    以前的做法: 1.当项目的时间比较紧迫的时候,对UI层中控件的事件的处理,往往采取的是类似Winform中最简单的做法,直接做一个事件的Handler直接去调用VM层的方法. 2.控件只有一个Comm ...

  3. 装饰器--decorator3

    装饰器添加返回值 import time def timer(func): def wrapper(*args,**kwargs): #wrapper包装的意思 start_time = time.t ...

  4. 「Python」python与微信

    pip3 install itchat 主要用到的方法: itchat.login() 微信扫描二维码登录 itchat.get_friends() 返回完整的好友列表,每个好友为一个字典, 其中第一 ...

  5. [LeetCode] 27. Remove Element ☆

    Given an array and a value, remove all instances of that value in place and return the new length. D ...

  6. 逆推 Gym 101102J

    题目链接:http://codeforces.com/gym/101102/problem/J 题目大意可以看这个人的:http://www.cnblogs.com/chen9510/p/593362 ...

  7. HDU 1452 欧拉定理

    让你求$2004^x$所有因子之和,因子之和函数是积性函数$\sigma(n)=\sum_{d|n}d=\prod_{i=0}^{m}(\sum_{j=0}^{k_i}{P_i^{j}})$可用二项式 ...

  8. CF835 D DP

    所有所有阶回文串的个数.对于一个k阶回文串,定义为:它的左右两侧相同且是k-1阶回文串 显然高阶回文串由低阶构成,那么枚举长度,从左到右遍历,dp[l][r]代表从l到r串最大的阶数,cnt[i]记录 ...

  9. Python学习笔记(五十)爬虫的自我修养(三)爬取漂亮妹纸图

    import random import urllib from urllib import request import os ################################### ...

  10. Python学习笔记(三十二)常用内建模块(1)— datetime

    >>> from datetime import datetime >>> now = datetime.now() # 获取当前datetime >> ...