Hyrid App 浅谈

时下流行的移动Web可分为三种:原生应用、Web应用和混合型应用。


  • 原生应用:通过各种应用市场安装,采用平台特定语言开发。
  • Web应用:通过浏览器访问,采用Web技术开发。
  • 混合型应用:通过各种应用市场安装,但采用Web技术开发。它虽然看上去是一个原生应用,但里面访问的实际上是一个Web应用。

各类应用优劣

  • 原生应用的优势:

    1. 提供最佳的用户体验、最优质的用户界面和最华丽的交互;
    2. 针对不同平台提供不同体验;
    3. 可访问本地资源。
  • 原生应用的劣势:

    1. 移植到不同平台上比较麻烦;
    2. 维护多个版本的成本比较高;
    3. 需要通过store或market确认。
  • Web应用的优势如下:

    1. 开发成本低;
    2. 适配多种移动设备的成本低;
    3. 跨平台和终端;
    4. 迭代更新容易;
    5. 无需安装成本。
  • Web应用的劣势如下:

    1. 浏览体验短期内还无法超越原生应用;
    2. 不支持离线模式(HTML5将会解决这个问题);
    3. 消息推送不够及时;
    4. 调用本地文件系统的能力弱。

混合型应用可以说是为了弥补上面两种应用开发模式的缺陷而生,它是两者混合的产物,并且尽可能继承了双方的优势:

首先,它可以让众多Web开发人员几乎零成本地转型成移动应用开发者。 其次,相同的代码只需针对不同平台进行编译就能实现在多平台的分发,大大提高了多平台开发的效率。而相较于Web应用,开发者可以通过包装好的接口调用大部分常用的系统API。

时下流行的hybrid开发技术


Cordova:混合型框架base,它基于标准的Web技术——HTML、JavaScript和CSS,用 JavaScript包装平台的API供开发者调用,具备强大的编译工具来为不同平台生成应用,同时拥有丰富的第三方资源和产业链。

  • 优点:
    1. 开源
    2. 跨平台,开发简单,学习成本低
    3. 框架多,插件多,可自定义插件
    4. 发展最早,社区资源丰富,
  • 缺点:
    1. WebView性能低下时,用户体验差,反应慢
    2. 调试不方便,既不像原生那么好调试,也不像纯web那种调试

Ionic:混合手机应用的,开源的,免费的代码库。可以优化html、css和js的性能,构建高效的应用程序,而且还可以用于构建Sass和AngularJS的优化。

  • 优点
    1. angular js 为底层,易用性高,学习成本低,开发效率高
  • 缺点
    1. 动画性能弱
    2. 插件更新太慢
    3. 安卓支持不够

React Native开源的UI框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。(Learn once, write anywhere)

  • 优点
    1. 生成的是原生 APP
    2. 动态UI,有着和Web的表现但性能好
    3. 社区力量
    4. 热更新
    5. 跨平台
  • 缺点
    1. 学习成本很高
    2. 安卓支持不够
    3. 体积大

Weex:简单易用的跨平台开发 方案,能以 web 的开发体验构建高性能、可扩展的 native 应用,为了做到这些,Weex 与 Vue 合作,使用 Vue 作为上层框架,并遵循 W3C 标准实现了统一的 JSEngine 和 DOM API,这样一来,你甚至可以使用其他框架驱动 Weex,打造三端一致的 native 应用。

  • 优点
    1. 目前性能非常好(底层是 Objective-C 或 Java)
    2. 开发效率超级高(native 组件或模块)
  • 缺点
    • 不成熟,坑较多

APICloud:“云端一体”的移动应用云服务提供商。由“云API”和“端API”两部分组成,可以帮助开发者快速实现移动应用的开发、测试、发布、管理和运营的全生命周期管理。目的:加速移动创新,帮助开发者和软件企业快速进入移动、云和大数据时代

  • 优点
    1. 快(开发快)
    2. 跨平台开发技术
    3. 基于phonegap,web开发者快速转向app开发
    4. 封装了一系列的js组件,并且做成组件商店,商业化做的好,开发者可以直接用
    5. 提供数据云服务,解决前端开发者的后端数据处理的问题
    6. 聚合各种常用功能模块和几乎所有国内第三方云服务
  • 缺点
    • 不足以支撑流畅的业务

Wex5:开源并且免费使用的APP开发工具,能够提高APP的开发效率。其在eclipse基础上封装了很多东西,提供丰富组件体系,方便快捷,是一款前端开发工具,支持多种后台开发语言。

  • 优点
    1. 开源
    2. 跨“端”/
  • 缺点
    1. 体验性一般
    2. 不成熟

Dcloud:应用服务一览:HBuilder、5+runtime、mui、流应用

  • 优点
    1. 开发快
    2. 5+ Runtime SDK
    3. mui框架
  • 缺点
    1. bug修复不及时
    2. 官方依赖太大

. . . Other . . .

PS: 无论是选择原生模式开发还是Hybrid混合模式,一定是要基于具体业务场景去选择,而不是盲目和绝对化觉得哪种模式好就不做分析想当然的去选择,还是有选择的结合,要知道应用之美在于药到病除。

送一句话: ‘从入门到放弃’不止经历了一个HelloWorld,还在苦苦挣扎