跨平台开发原生应用

跨平台开发原生应用

因为公司需要做一些跨平台的应用开发,更有些时候需要做一些壳应用。。。所以开始研究起来Cordova,经过了一个多月的研究,自己也开发出来一个使用跨平台解决方案的工具应用。在这里开始做出一些总结。

现代跨平台开发方案

到目前为止,跨平台解决方案已经有很多了,从古老的phonegap开始,到2013年Facebook开源出来的ReactNative,也有阿里的weex方案(weex貌似还没开源出来使用,母鸡了,没多了解)。

除了这些大厂出来的高大上解决方案以外,其实还有一些更加适合小公司使用的跨平台方案。捋一捋吧。

  • Cordova
  • Ionic
  • AppCan
  • Dcloud
  • APICloud
  • ReactNative
  • Weex
  • 。。。

想不到吧
数一数,居然还有这么多选择。选择恐惧症的我开始纠结选择哪一个了。。。

其实根本没得选。。。因为要维护旧项目。。。

共同点

上面的每一个方案,几乎都包含了一下的特性

  • 使用 Html + CSS + JavaScript 开发
  • 可以跨平台重用代码
  • 丰富的 UI 库
  • 提供访问设备原生 API 的 JavaScript API 包装器
  • 解决原生开发中机型适配的难题
  • 提供打包、部署的工具或服务
  • 都需要学习自身封装的 JavaScript API

一个个来细看:

Cordova

可能这个名字以前做过跨平台开发的人不知道,不过他们一定知道PhoneGap。他们两者的关系不想多说,Cordova是由PhoneGap来的。

直接看优缺点:

优点:

  • 开源免费,社区生态成熟,插件丰富
  • 支持离线场景应用
  • 开发工具选择空间大

缺点:

  • 交互效果一般,访问原生控件受到限制

这个亲自使用过,他说的优缺点都是真的

Ionic

这个家伙核心是Cordova,我一般这样看:

Ionic = Cordova + AngularJS + 自己的一套样式库

优点:

  • 基于Cordova(cordova有的他也有)
  • 界面较美观,追求性能,专业原生开发,免费开源
  • AngularJS 的 MVVM 的开发理念,数据双向绑定

这个也使用过,他说的优缺点也是真的

AppCan

通过 AppCan IDE 集成开发系统,云端打包器,可以快速开发出Android,iOS,WP平台上的移动应用。

优点:

  • 提供一体化解决方案,方便环境搭建、开发、调试、发布
  • 框架自带UI包,包含常用控件样式
  • 框架对UI、动画渲染进行过优化,反应速度快
  • 支持本地打包、云端打包
  • 基于密钥的代码加密

缺点:

  • 不开源,无法修改、优化底层代码
  • 分大众版和企业版,大众版免费,但功能有缺
  • 暂不支持自行开发控件/,无法调取android原生功能
  • 框架自带功能过多,导致应用安装包偏大
  • 文档偏少
  • 部分系统无法使用IDE进行调试
  • 只能在服务器端发布,无法在本地发布
  • iOS发布,需要将证书上传至服务器

穷!没用过,靠不靠谱的话。参考一下这个

DCloud

DCloud是个好东西,HBuilder是他家的,当初学习Web前端的时候就是用这个工具的。他特点是可以云编译打包。有一整套的资源供你使用。

优点:

  • 国内厂商,中文文档
  • 对HTML5的性能、工具、能力都做了深入的拓展,提供IDE(HBuilder)、云服务等帮组我们节省时间
  • MUI 库更加贴近国内 APP 使用习惯,提供了模块的详细例子,如:登录、个人中心

缺点:

  • 部分操作需要具备原生开发经验,比如离线打包 APP

用过,挺方便的,没有安卓开发经验,依然能够打包一个安卓应用出来。

APICloud

如何评价这个这个 APICloud的话,我是看这里的,没用过.

优点:

  • 不懂得原生开发,不懂后台都能够完成一个 APP

缺点:

  • 更新速度快,版本不够稳定
  • 面向不懂 APP 开发的人群,不适合程序员
  • 涉嫌抄袭。。。。

ReactNative

最新消息最新消息(2017年9月消息)如何看待百度要求内部全面停止使用React/React Native

东西是好东西,Facebook玩坏了。

优点:

  • 原生体验,开发效率高

缺点:

  • 初次学习成本高

本来就是大公司的玩意,现在大公司不玩了~

总结

大概的跨平台方案其实不止这些的,不过我看到过的就这些出现的比较多。接下来会介绍一下我在项目中用到的Cordova、Ionic以及DCloud的产品。