做为新一代移动端应用分发入口,小程序的趋势明朗化,竞争也在急剧激烈化。战线从手机 QQ、QQ 浏览器、支付宝、手机淘宝,华为,小米等九家手机厂商推出“快应用”,再拉到了谷歌的 Instant App 和 PWA、Facebook 的 React Native。一场围绕webapp关键战役已经全面打响。那是否是webapp就要替代原生app,webapp要爆发了,我相信不少人都有这样的疑问,特别是从事web开发工做。html
如今主流的开发模式,Native App(原生模式)、Web App(html5 app)和Hybrid App(混合开发)。前端
Native App开发html5
Native App开发即咱们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS、Android等不一样的手机操做系统要采用不一样的语言和框架进行开发,该模式一般是由“云服务器数据+APP应用客户端”两部份构成,APP应用全部的UI元素、数据内容、逻辑框架均安装在手机终端上。 Native App能够类比Client/Server结构(C/S结构),也就是是你们熟知的客户机和服务器结构。经过C/S结构也能够充分利用两端硬件环境的优点,将任务合理分配到Client端和Server端来实现,下降了系统的通信开销。web
Web App开发小程序
Web App开发便是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具备跨平台的优点,该模式一般由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。 Web App能够类比你们熟知的B/S结构,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。浏览器
Hybrid App缓存
Hybrid App(混合模式移动应用)是指介于web-app、native-app这二者之间的app,兼具“Native App良好用户交互体验的优点”和“Web App跨平台开发的优点”。 这就像C/S与B/S结合产生的CB/S模式,将B/S与C/S的优点完美地结合起来,应用系统既能以B/S的方式发布运行,同时又具备C/S方式的极强的可操做性。服务器
Web APP(嵌入型APP),Web App 指采用Html5语言写出的App,不须要下载安装。相似于如今所说的轻应用。生存在浏览器中的应用,基本上能够说是触屏版的网页应用。微信
优势网络
(1)开发成本低,
(2)更新快,
(3)更新无需通知用户,不须要手动升级
(4)可以跨多个平台和终端。
缺点
(1)临时性的入口
(2)没法获取系统级别的通知,提醒,动效等等
(3)用户留存率低
(4)设计受限制诸多
(5)体验较差
Native App(原生型APP),Native APP 指的是原生程序,通常依托于操做系统,有很强的交互,是一个完整的App,可拓展性强。须要用户下载安装使用。
优势
(1)打造完美的用户体验
(2)性能稳定
(3)操做速度快,上手流畅
(4)访问本地资源(通信录,相册)
(5)设计出色的动效,转场,
(6)拥有系统级别的贴心通知或提醒
(7)用户留存率高
缺点
(1)分发成本高(不一样平台有不一样的开发语言和界面适配)
(2)维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2, V3, V4版本,须要更多的开发人员维护以前的版本)
(3)更新缓慢,根据不一样平台,提交–审核–上线 等等不一样的流程,须要通过的流程较复杂
在PC时代,桌面上你们和外界互通的入口,其实基本是浏览器。PC时代的Web,已经知足了你们一切非移动特性上的互联网需求,但随着移动互联网的技术发展,IOS和Android手机迅速占领你们的平常生活,而移动互联网同时带来了另外一个新的东西,叫作Native App(原生应用,简称NA),众多NA知足了你们在手机上的需求,并快速覆盖了各类互联网垂直行业。在此过程当中也有极少数超级NA占据了移动互联网的半壁江山。
移动互联网操做系统的技术生态同时也改变了Web,在手机上,Web再也不是惟一的互联网入口,你们经过在桌面上放置五花八门的APP来知足平常的需求。移动互联网也让PC时代的Web再也不那么风光,潜移默化的,你们也都使用开发NA而不是开发Web页面的方式来服务用户了。
那为何众多开发者会以为如今移动互联网的Web页面很差呢?缘由总结以下: 1.手机桌面入口不够便捷; 2.没网络就没响应,不具有离线能力; 3.不像APP同样能进行消息推送。 除此以外,做为前端码农的我也发现众多Web开发者都是PC时代转行的,移动互联网手机的特性,要求了你们须要写更好的代码,才能作好一个Web页面,也就是咱们所说的Web App。
Web App会好吗? 我想回答:Web App会好。 让咱们再回顾一下以前所讲述,咱们先论述了为何有人以为小程序好,这里获得的结论是抛除微信自己的能力,小程序好的缘由实际上是由于它具有了几个Web页面的关键特性(无需安装下载、用完即走),其次咱们也讲述了为何现阶段的Web App不够好,一方面是由于Web缺乏了一部分NA的能力(离线,桌面入口,消息推送),另外一方面是由于Web的开发者(特别是国内的)综合能力欠缺,缺少具有开发一个好的Web App的能力。
那基于以上的回顾,咱们发现Web App能够变得更好。个人感受就像开头所说同样:随着各大互联网平台发力基于Html5 Web的应用,咱们发现对Web App的支持愈来愈接近原生,包括: 1. 离线缓存 2. 添加到主屏 3. 消息推送 基于以上能力,一个Web App基本上能够媲美一个Native App,同时,它还具有了咱们渴望的特性: 1. 无需安装 2. 用完即走 很激动有木有!! 赘述了这么多,咱们回顾本文的标题,也是一开始留下的问题: 问:前端工程师的新选择? 答:确定的!咱们可使用开发的、标准的Web解决方案, Web App的将来,它是开放的、不封闭的,它能够作的更好,也许比原生的还要出色!
-----end-----