Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS、Android等不同的手机操作系统要采用不同的语言和框架进行开发,是专门针对某一类移动设备而生的,它们都是被直接安装到设备里, APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上,原生App而用户一般也是通过网络商店或者卖场来获取例如The App Store与Android Apps on Google Play。 Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发和低成本的优势”。
Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。目前已经有众多Hybrid App开发成功应用,比如百度、网易、街旁等知名移动应用,都是采用Hybrid App开发模式。 Web App开发即是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。
Native app优点 Hybrid app 优点 Web app 优点
(1) 可访问手机所有功能(GPS、摄像头);
(2) 速度更快、性能高、整体用户体验最好;
(3) 可线下使用(因为是在跟Web相对地平台上使用的);
(4) 支持大量图形和动画; 容易发现(在App Store里面)和重新发现(应用图标会一直在主页上);
(5) 应用下载能创造盈利(当然App Store抽取20-30% 的营收);
(6) app质量及安全性好。 (1) 原生应用和Web应用的结合体,应用比例很自由;
(2) 开发成本低;
(3) 能节省跨平台的时间和成本,只需编写一次核心代码就可部署到多个平台;
(4) 可任意调整风格,DIV版面布局;
(5) 兼容多平台;
(6) 顺利访问手机的多种功能;
(7) App Store中可下载(Web应用套用原生应用的外壳);
(8) 可线下使用。 (1) 运行到浏览器上,项目独立;
(2) 跨平台开发工具选择多;
(3) 不需要安装额外软件,控制版本非常容易;
Native app缺点 Hybrid app缺点 Web app缺点
(1) 开发及维护成本高;
(2) 支持设备非常有限(一般是哪个系统就在哪个平台专属设备上用);
(3) 上线时间不确定(App Store审核过程不一);
(4) 内容限制(App Store限制);
(5) 获得新版本时需重新下载应用更新。
(6) 举例:Yellow Pages Group就开发了是几个版本(iOS、黑莓、Android),他们在每一个原生应用市场都有上架。 (1) 不确定上线时间;
(2) 用户体验不如本地应用;
(3) 性能稍慢(需要连接网络);
(4) 技术还不是很成熟。 (1) 只能使用有限的移动硬件设备能力,无法使用更多移动硬件设备的独特功能;
(2) 搜索Web app比较困难;
(3) 质量及安全性无法得到保障;
(4) 必须联网;
(5) 移动应用用户体验不是很好;
(6) 性能需要进行检验。
Native app特点 Hybrid app特点 Web app特点
Native App可以充分利用设备的特性,而这一点往往是Web浏览器做不到的,所以对一个产品本身而言,Native App是最佳的选择。
(1)每次获取最新的APP功能,需要升级APP应用;
(2)原生型APP应用的安装包相对较大,包含UI元素、数据内容、逻辑框架;
(3)手机用户无法上网也可访问APP应用中以前下载的数据。
(4)原生型的APP可以调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)
(5)APP应用更新功能,涉及到每次要向各个应用商店进行提交审核。
适用企业:游戏、电子杂志、管理应用、物联网等无需经常更新程序框架的APP应用。 快速迭代,高效开发,低成本上线是每一个App开发团队追求的目标。同时,随着HTML 5的不断升温和智能手机硬件性能的提高,Hybrid App的概念应运而生。这种“Native搭台,HTML 5唱戏”的Hybrid App开发模式一时间受到各个开发团队追捧,快速进入了大量开发团队,成为主流开发模式。
Hybrid App优点众多,Web前端工程师0成本介入,不依赖版本的实时更新,快速实现跨平台需求,等等。而另一个方面,2012年Hybrid App的践行者Facebook决定大量弃用App中的HTML页面,转向更加Native化的方案。Facebook的这一举措也给Hybrid App方案的敲响了警钟,这似乎并不是一个完美的方案。
即使所有Web代码在本地运行,效率也要比Native差一些。这主要取决于应用类型,对交互体验和性能有很高要求的应用是不适合用Hybrid的。 移动Web无所不在,移动Web是目前唯一的支持各种设备访问的平台,与桌面Web一样,移动Web支持各种标准的协议。移动Web也是唯一一个可供开发者发布移动应用的平台,它将各种移动交互与桌面任务有效地连接了起来;
(1)每次打开APP,都要通过APP框架向云网站取UI及数据;
(2)手机用户无法上网则无法访问APP应用中的数据。
(3)框架型的APP无法调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)
(4)框架型APP的访问速度受手机终端上网的限制,每次使用均会消耗一定的手机上网流量;
(5)框架型APP应用的安装包小巧,只包含框架文件,而大量的UI元素、数据内容刚存放在云端;
(6)APP用户每次都可以访问到实时的最新的云端数据;
(7)APP用户无须频繁更新APP应用,与云端实现的是实时数据交互;