一:概念辨析
Web App:生存在浏览器里的应用,只能运行在浏览器里,宿主是浏览器,不是操作系统。资源一般都在网络上,就是一个触屏版的网站。如:微信公众号。不需要在设备上下载安装,只需通过浏览器即可访问、运行。
【但:也能通过第三工具打包成为可安装的app】
Hybrid App:一个半原生程序,内嵌了一个原生的浏览器组件,把地址写死,然后里面运行了一个webapp。它也需要下载安装,虽然看上去是一个Native App,但只有一个UI WebView。半原生主要体现在:根据运行的系统而不同,需要打包成不同的app安装包(apk\ipa)。“Hybrid App同时使用网页语言与程序语言开发,通过应用商店区分移动操作系统分发,用户需要安装相应系统的移动应用”。
Native App:一个原生程序,一般运行在机器操作系统上,一般静态资源都是在本地。浏览使用方便,体验度高。原生App是专门针对某一类移动设备而生的,它们都需要下载安装到设备里。
二:把页面放在后台
“能不放到前端,就尽量不要放到前端。做app(页面等在客户端)最终只会把自己赶上绝路。”
原生App、WebApp打包生成的app,都是把页面、资源放在了客户端,好处是:加快了速度,缺点是:后面难维护、难迭代更新。【每次变动都需要重新发布安装包,用户需要重新安装应用】
页面放在后端的好处:有变动,只需修改服务器上的页面文件即可,用户下一次打开时就是最新的页面。
三:技术选型
1:不涉及原生调用的、面向业务的应用:做成WebApp,从微信、qq等地方提供一个入口即可,运行在微信内置浏览器、手机浏览器中。
2:WebApp、H5程序打包成app:用HBuilder将WebApp、H5程序首页地址进行打包;得到的app默认打开到首页地址,之后app相当于一个浏览器内核,在其内就可以像操作原生app一样去操作页面了。【优点:资源全部放在后台,方便更新改动;用H5来开发,提高效率、自适应性好;整个App唯一受限于首页地址,首页地址变了需要重新打包,也可以直接在后台将原首页地址redirect到新首页地址即可。】
3:业务复杂、页面多、数据多的跨平台应用:用跨平台开发技术,一套逻辑代码,打包成两种安装包;
4:业务场景特定、需求特别明确、性能要求严格、受硬件限制 的应用:如基于Android系统的设备,在其上开发控制类、交互应用,肯定是选用Android原生;还有游戏类收到硬件限制严重的应用,也肯定是用原生开发。