APP的三种开发模式,及PWA的到来
三种开发模式指的是:原生APP,WEBAPP,和混合APP
先简单的对他们做个简绍,知道他们分别代表的是什么?
1. 原生APP:
基于本地(操作系统)运行的APP —-Native App;他是专门为特定的手机平台开发程序,他使用与手机系统相同的语言和技术模型,所以在性能和用户体验方面能够更好、更贴切。
拿实际开发来说,就是IOS和Android,对于同一APP他需要两个开发团队,分别针对两种手机系统进行开发,这就是原生APP。
原生APP开发的主要优点:
1)较好的性能和更好的交互体验
2)能够更好的调用手机底层,使用手机系统的所有硬件和软件 API,比如 摄像头、麦克风、通知推送等等,能充分发挥系统的潜力。
原生APP开发的主要缺点:
1)针对不同的手机平台需要不同的技术开发团队,这就造成了开发成本较高
2)原生APP开发使用底层操作系统语言,开发周期教长
3)版本更新,没次需要下载APP进行版本更新
2.Web App
基于浏览器运行的App —-WebApp;使用网页做的应用程序,必选在浏览器中使用。
Web App 主要使用网页技术,即 HTML、JavaScript 和 CSS。
Web App的主要优点:
1)不需要下载安装app,不需要更新app,每次打开都是最新的版本
2)开发较容易,主要使用网页技术
3)比较原生App不需要应用商店的审批
Web App的主要缺点:
1)浏览器提供的api有限,很多系统硬件api不能使用
2)浏览器渲染,性能比不上原生的APP,不适合要求较高的项目开发
3.混合 APP
基于上两种app发展出来的产物 —-Hybrid App;核心就是原生的壳,里面放了一层网页。
可以理解成,混合 App 里面隐藏了一个浏览器,用户看到的实际上是这个隐藏浏览器渲染出来的网页。
混合 App 的原生外壳称为”容器”,内部隐藏的浏览器,通常使用系统提供的网页渲染控件(即 WebView 控件),也可以自己内置一个浏览器内核。结构上,混合 App 从上到下分成三层:HTML5 网页层、网页引擎层(本质上是一个隔离的浏览器实例)、容器层。
混合 App 里面的网页不同于普通网页,可以调用底层系统所有的 API。奥秘就在于外层容器提供了 API Bridge,充当底层 API 的中介,允许内部的网页调用底层。
所谓 API Bridge 就是容器在底层接口和网页之间,建立一座桥梁,让双方通信。容器一旦接到网页的请求,就根据请求去调用底层系统的 API,然后再返回结果给网页。API Bridge 往往以 JavaScript 语言提供,方便网页调用,这时又称为 JSbridge。
不同容器的 API Bridge 是不一样的。为某个容器写的网页,不能放在另一个容器使用,也无法在浏览器使用,除非网页脚本做了兼容处理。
混合 App开发的主要优点:
1)一套代码可跨平台使用,跨平台开发
2)可以集成网页和手机系统功能,灵活性高
混合开发的主要缺点:
1)由于存在网页引擎的中间层,所以性能比较欠缺,不仅不如原生 App,而且由于 WebView 不是全功能浏览器,可能比 Web App 都要慢一些
2)由于页面跨平台,就无法使用只有特定平台提供的功能,导致体验不如纯的原生 App
以上就是三种app开发模式的大致简绍
说道这里也简单的简绍一下最近在印度等地比较流行的PWA
PWA
“渐进式 Web App”(Progressive Web App,缩写 PWA)
PWA技术是谷歌团队为大力推广Web App而做出努力的结果。
Web App 需要打开浏览器才能使用,这意味着,用户必须记住如何导航到它,要么直接输入网址,要么翻找书签。这使得进入 Web App,远不如原生 App 方便,在谷歌看来一下的三点缺陷是制约Web App发展的重要原因:
1)手机首屏无法直接打开WebApp,需要打开浏览器才行
2)脱网状态,Web App不支持断网链接
3)缺乏手机状态栏和锁屏时的通知推送能力
从上面需要面对的问题,不难看出PWA的特点:
1)它可以把网站缓存在手机里面,供离线时使用
2)能在手机首屏生成图标,直接点击进入
3)有通知推送能力,也不带有浏览器的地址栏和状态栏
但任存在缺点:
1)PWA 需要浏览器访问一次网站,才能在首屏生成图标
2)目前 iOS 系统的支持还不够理想
所以还只是一项探索性质的技术,迄今为止缺乏足够的成功案例