跨平台开发原生应用
因为公司需要做一些跨平台的应用开发,更有些时候需要做一些壳应用。。。所以开始研究起来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的产品。