本文的结构主要分为以下部分:
1.app的分类
2.每类app的定义,明确各类app具体是什么
3.各类app的优缺点
4.具体开发过程中,到底该采用哪种类型的app

1.app的分类
大致可以分为这3种:

  • native app(原生app)
  • web app
  • hybrid app(混合app)
 
 

2.三类app的定义
**2.1 native app **
中文名称为“原生app”
来看一下百度百科的定义:基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序,一般开发的语言为Java、C++等。在使用上的具体表现就是,手机桌面上的图标点进去基本就是native app了。

2.2 web app
仍然看一下百度百科的定义:基于web的系统和应用,运行于网络和浏览器之上,目前多采用h5标准开发。在使用上的具体表现是,手机浏览器点击进入,会有一些应用的小图标,这些小图标在点击后,在浏览器里加载的页面 跟你直接下载一个app后打开的页面是相同的,这些小图标代表的就是web app。

2.3 hybrid app
中文名称是“混合app”
顾名思义,就是 native app 与 web app的混合。在native app里内置浏览器,合适的功能页面采用网页的形式呈现。比如京东的某些营销页面,今日头条的某些新闻页面、微信的腾讯新闻的内容页面等。

3.各类app的优缺点
3.1native app
优点:

  • 提供最佳用户体验,最优质的用户界面,流畅的交互
  • 可以访问本地资源
  • 可以调用移动硬件设备,比如摄像头、麦克风等

缺点:

  • 开发成本高。每种移动操作系统都需要独立的开发项目,针对不同平台提供不同体验;
  • 发布新版本慢。下载是用户控制的,很多用户不愿意下载更新(比如说,版本发布到了3.0,但还是有很多1.0的用户,你可能就得继续维护1.0版本的API)
  • 应用商店发布审核周期长。安卓平台大概要1~3天,而iOS平台需要的时间更长

3.2 web app
优点:

  • 不需要安装包,节约手机空间
  • 整体量级轻,开发成本低
  • 不需要用户进行手动更新,由应用开发者直接在后台更新,推送到用户面前的都是全新版本,更便于业务的开展
  • 基于浏览器,可以跨平台使用

缺点:

  • 页面跳转费力,不稳定感更强。在网速受到限制时,很多时候出现卡顿或者卡死现象,交互效果受到限制
  • 安全性相对较低,数据容易泄露或者被劫持

3.3 Hybrid app
这类app集合了上面两种app各自的优势:
(下面优势点 参考 点击此处

  • 在实现更多功能的前提下,使得app安装包不至于过大
  • 在应用内部打开web网页,省去了跳转浏览器的麻烦
  • 主要功能区相对稳定下,增加的功能区采用web 形式,使得迭代更加方便
  • web页面在用户设置不同的网络制式时会以不同的形式呈现(以微信朋友圈为例,在数据流量下,设置APNS为WAP时,微信订阅号内容将屏蔽图片和视频。这样就能为用户省去一部分流量,整个页面阅读就不那么友好了)

另外,为什么有些原生app还会做web app呢?
以下图为例,这是我的手机浏览器自带的几个web app的图标

 
web app示例

有这么几点原因:

  • 数据可以被搜索引擎的爬虫抓到,并进行索引。如果产品只有一个app,那么它的入口独立,但同时数据也是封闭的。如果用户从搜索引擎查找的话,是找不到相关信息的。所以做成web app,可以被搜索引擎找到
  • 用户碎片时间使用,例如一些黏性不高的应用,比如 移动搜索、网址导航等

4.具体开发过程中,到底该采用哪种类型的app
参考 pmcaff上的 大家公司的app是用原生做的还是h5呢?
本文将做一下整理:
不同的页面情况选择不同的开发方式

  • 4.1 如果app中出现了大段文字(如新闻、攻略等),并且格式比较丰富(如加粗、字体多样等),采用H5较好。原因:原生开发对解析json字符串格式不是很友好
  • 4.2 如果讲究app反应速度(含页面切换流畅性),采用原生开发。原因:H5本质上是网页,换网页的时候,基本要加载整个页面,就像一个浏览器打开一个新的网页一样,比较慢,而原生系统只需要加载变化的部分
  • 4.3 如果app对有无网络、网络优劣敏感(譬如有离线操作、在线操作),则采用原生开发。虽然H5可以做到,但是比较敏感
  • 4.4 如果app要频繁地调用硬件设备(比如摄像头、麦克风等),则采用原生开发,这样支持硬件更多,调用速度更快,H5望尘莫及
  • 4.5 如果app用户常见页面频换(如淘宝首页的各种营销活动),采用H5,维护起来更容易
  • 4.6 如果预算有限(H5开发一套可在安卓、iOS、黑莓等跨平台使用)、不在乎用户体验、不在乎加载速度,肯定是H5

另:
短期活动,专题营销类的页面居多的,可以选择原生app搭建框架,详细页面采用H5,便于活动的随时修改和管理
主要业务流程方面,选择原生app开发,有更好的用户体验,也可以更方便的拓展其他功能

参考阅读:

  1. 大家公司的app是用原生做的还是h5的呢?
  2. H5未来真的会取代APP吗?
  3. 为什么各大公司一直热衷于研究使用web app替换原生app?
  4. 科普:Native App、Web App与Hybrid App
  5. Web App 和 Native App,哪个是趋势?
  6. 关于H5的介绍

作者:产品新人学习路
链接:https://www.jianshu.com/p/24bf070a4dcb
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

App 区别的更多相关文章

  1. 微信小程序与手机APP区别

    微信小程序与手机APP区别 ------------------<><><><>------------------ 微信小程序自去年年初,张小龙放话要 ...

  2. wap webapp app区别

    “手机WAP版网站”.“手机触屏版网站”.“手机APP应用软件”: wap webapp app区别 电脑版:台式机或者笔记本访问,兼容各个浏览器: Wap版:用于传统智能手机,屏幕小,适合使用手机键 ...

  3. TP3.1 中URL和APP区别

    1.__URL__指当前模块地址,就是当前的action的地址.(每个__action都是一个模块)    eg:当前打开config.html,那么config.html里边的__URL__/sav ...

  4. web app、hybrid app和native app区别

  5. hybrid app

    hybrid app Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台 ...

  6. Hybrid App是如何实现网页语言与程序语言的混合?谁占主体?

    [编者按]本文作者@徐珂铭,一位看好Html5的移动互联网的从业人士.喜爱玩技术,会点JAVA.HTML及CSS,有自己的想法及姑且能表达想法的文字,因此有了自己的文章. 基于HTML5的Web Ap ...

  7. hybrid app 简介

    Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”. Hyb ...

  8. Jquery API Hybrid APP调研

    http://jquery.cuishifeng.cn/source.html   hybrid app Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间 ...

  9. 原生app,WEBAPP,混合app

    什么叫做原生App? 原生App是专门针对某一类移动设备而生的,它们都是被直接安装到设备里,而用户一般也是通过网络商店或者卖场来获取例如    The App Store  与  Android Ap ...

随机推荐

  1. 2018 icpc 青岛

    https://zoj.pintia.cn/contests/91827364639/problems C 要把这两个二进制串变为相同,需要先看哪些位置不同,设为数组c,某位为1则两位不同. 分1形成 ...

  2. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_3 Mybatis的CRUD-修改和删除操作

    增加更新操作 更新用户的配置 测试类 删除的操作 这里的parpameterType值可以是:Integer.INTEGER.int.java.lang.Integer 讲到typeAliases标签 ...

  3. 【命令汇总】nmap 使用教程

    日期:2019-07-03 21:23:39 更新: 作者:Bay0net 介绍:汇总一下笔记里面的 nmap 使用方式 0x01. 基本信息 Nmap: the Network Mapper - F ...

  4. 中国MOOC_零基础学Java语言_第2周 判断_2信号报告

    2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一 ...

  5. linux打包

    1.打成tar包 sudo tar -zcf boot.tar /boot/ 2.打成zip包 sudo zip -r boot.zip ./*

  6. Django 自带 user 字段扩展及头像上传

    django 及 rest_framework 笔记链接如下: django 入门笔记:环境及项目搭建 django 入门笔记:数据模型 django 入门笔记:视图及模版 django 入门笔记:A ...

  7. [Web 前端] 021 js 初识 Javascript

    1. Javascript 简介 1.1 定位 JS 是运行在浏览器端的脚本语言 1.1.1 关于浏览器 JS 由浏览器解释执行 JS 通常被直接嵌入 HTML 页面 1.1.2 关于脚本语言 JS ...

  8. 索引之----mysql联合索引

    重要概念: 1.对于mysql来说,一条sql中,一个表无论其蕴含的索引有多少,但是有且只用一条. 2.对于多列索引来说(a,b,c)其相当于3个索引(a),(a,b),(a,b,c)3个索引,又由于 ...

  9. layui动态渲染select等组件并初始化赋值失败

    描诉:有一个用户信息form表单,其中有部门单选框,数据库中有一张dept(部门)表,要动态渲染出所有部门,并默认选中用户所在部门 关键代码: html页面 <div class="l ...

  10. 腾讯云从零搭建PHP运行环境

    一.首先我们得注册腾讯云,租用一台服务器,我选择的是CentOS 7.2 64位,这时候会给你这台主机的公网IP和内网IP,以及这台主机的用户名及密码. 二.我们可以使用腾讯云网页上自带的登录按钮进行 ...