此文是我们团队内部选型时候我的一点笔记,主要是给同事看的,也许对大家有点帮助,没什么新东西,主要是整理人家的文章和内容为主。
即 Native View 和 Web View 独立展示,交替出现。例如我们第一版本的安卓 App。
即在同一个 View 内,同时包括 Native View 和 Web View。互相之间是覆盖(层叠)的关系。
这种 Hybrid App 的开发成本较高,开发难度较大,但是体验较好。
例如百度搜索为代表的单 View 混合型移动应用,既可以实现充分的灵活性,又能实现较好的用户体验。
即移动应用的主体是 Web View,主要以网页语言编写,穿插 Native 功能的 Hybrid App 开发类型。
这种类型开发的移动应用体验相对而言存在缺陷,但整体开发难度大幅降低,并且基本可以实现跨平台。
Web 主体型的移动应用用户体验的好坏,主要取决于底层中间件的交互与跨平台的能力。
国外的 appMobi、PhoneGap 国内的 AppCan 和 Rexsee 都属于 Web 主体型移动应用中间件。其中 Rexsee 不支持跨平台开发。appMobi 和 PhoneGap 除基础的底层能力更多是通过插件(Plugins)扩展的机制实现 Hybrid。而 AppCan 除了插件机制,还提供了大量的单 View 混合型的接口来完善和弥补 Web 主体型 Hybrid App 体验差的问题,接近 Native App 的体验。
App 的 Native 代码部分使用操作系统的 API 来创建嵌入式 HTML 渲染引擎,该引擎在浏览器和设备的 API 之间充当了桥梁。这座桥梁让 Hybrid App 得以充分利用现代设备所提供的全部特性。
App 开发者可以选择编写自己的桥梁,或者充分利用现成的解决方案,比如 PhoneGap。
App 的 Web 部分可能是驻留在服务器上的网页,也可能是一组 HTML、JavaScript、CSS 和媒体文件,封装到 App 代码中,存储在设备本地。
根据我们目前的技术实力和业务需求,内部时间人力资源预算,不建议使用中间件,以下是市面主流中间件的对比。
为毛不用 Angular,为毛不用 jade,为毛不用 BackBone,不用 jQuery Mobile,不用 PhoneGap。。。。
我也不知道为啥不用。可能都是命吧。另外朋友们提到的一些技术,例如 jade,我是确实不了解。可能在具体的开发中,如果发现特别合适的话,就会果断使用的。另外一些,比如 jQuery Mobile,PhoneGap 和 BackBone 确实是各有缺点,不适合我们目前的需求。并不是它们不好,我相信它们都有自己适用的地方。
在用 Ember 开发了 2 周之后,发现确实可以满足我们目前阶段的需求。还在疑虑的同学,可以小范围的开始上了。