聊聊移动端跨平台开发(后续)

上一篇博客,转载了一位大神的神级分析,仔细看完后都觉得累。想必也没几个人看完。

于是,本人又小结了一下。另外附上自己的调研结果,目前比较不错的跨平台开发框架。


1、几大流派:


Web 流:也被称为 Hybrid 技术,它基于 Web 相关技术来实现界面及功能
Web 流是大家都比较了解的了,比如著名的 PhoneGap/Cordova,它将原生的接口封装后暴露给 JavaScript,可以运行在系统自带的 WebView 中,也可以自己内嵌一个 Chrome 内核 。


代码转换流:将某个语言转成 Objective-C、Java 或 C#,然后使用不同平台下的官方工具来开发
在目前的所有具体方案中,只有 j2objc 可以尝试,其它都不成熟。
将 Java 转成 Objective-C:j2objc 能将 Java 代码转成 Objective-C
将 Objective-C 转成 Java:MyAppConverter收费项目
将 Java 转成 C#:Mono 提供Sharpen,不过似乎用的人不多,Star 才 118,所以看起来不靠谱。 
JUniversal 这个工具自带了简单的跨平台库

将 Haxe 转成其它语言
编译流:将某个语言编译为二进制文件,生成动态库或打包成 apk/ipa/xap 文件
Xamarin 可以使用 C# 来开发 Android 及 iOS 应用
RoboVM 可以将 Java 字节码编译为可在 iOS 下运行的机器码,这有点类似 GCJ,但它的具体实现是先使用 Soot 将字节码编译为 LLVM IR,然后通过 LLVM 的编译器编译成不同平台下的二进制文件。
apportable 可以直接将 Swift/Objective-C 编译为机器码,但它官网的成功案例全部都是游戏,所以用这个来做 APP 感觉很不靠谱。
从目前分析的情况看,C++ 是比较稳妥的选择,但它对团队成员有要求,如果大家都没写过 C++,可以试试 Xamrin 或 RoboVM。


虚拟机流:通过将某个语言的虚拟机移植到不同平台上来运行
虚拟机流会遇到两个问题:一个是性能损耗,另一个是虚拟机本身也会占不小的体积。
Titanium :界面没有使用 HTML/CSS,自己设计了一套基于 XML 的 UI 框架 Alloy,认为Titanium/Hyperloop 都非常不靠谱
NativeScript:用工具来自动生成 wrapper API,和系统 API 保持一致。能完整支持所有系统 API,对于第三方库也能很好支持,但它目前最大缺点是生成的文件体积过大,即便什么都不做,生成的 apk 文件也有 8.4 MB,因为它将所有 API binding 都生成了,而且这也导致在 Android 下首次打开速度很慢。
React Native:在不同平台下使用平台自带的 UI 组件。React Native 比传统 Objective-C 和 UIView 的学习成本低多了,熟悉 JavaScript的开发者应该半天内就能写个使用标准 UI 的界面,而且用 XML+CSS 画界面也远比 UIView 中用 Frame 进行手工布局更易读
我觉得 React Native 很值得尝试,而且风险也不高。坏消息是 React Native 的 Android 版本还要等半年


如果你只会 JavaScript,那目前最好的方案是 React Native,有了它你即使不了解 Native 开发也能写出很多中小应用,等万一火了再学 Native 开发也不迟啊。

如果你只会 Java,那可以尝试 RoboVM 或 j2objc,j2objc 虽然目前更稳定靠谱,但它不能像 RoboVM 那样完全用 Java 开发,所以你还得学 Objective-C 来写界面,而 RoboVM 的缺点就是貌似还不太稳定,而且似乎除了游戏以外还没见到比较知名的应用使用,而它这种方案注定会比 j2objc 更容易出问题,所以你得做好踩坑的心理准备。

如果你只会 C#,那唯一的选择就是 Xamarin 了。

如果你只会 Objective-C,很杯具目前没有比较靠谱的方案,我建议你还是学学 Java 吧,多学一门语言没啥坏处。

如果你只会 C++,可以做做游戏或非 UI 的公共部分,我不建议使用 QT 或自己画界面,还是学学 Native 开发吧。

如果你只会 Go,还别指望用它开发移动端,因为目前的实现很低效,而且这和 Go 底层的实现机制密切相关,导致很难优化,所以预计很长一段时间内也不会有改观。

如果你会 Rust,说明你很喜欢折腾,多半也会前面所有语言,自己做决定吧。。。


2、常见几种跨平台开发框架:

1、CrossApp - 开源跨平台移动应用开发引擎
官方网站:http://crossapp.9miao.com/
官方论坛:http://www.9miao.com/forum-31-1.html
特性:

跨平台:CrossApp暂时主要支持目前最主流的移动平台IOS和Android,后续更新版本将完善更多平台的支持。
整合部分第三方库:例如常见的数据解析库jsoncpp、tinyxml、http等,同时CrossApp也通过第三方库spidermonkey转换。
基于OpenGL ES 2.0:CrossApp的图形渲染使用的是Open GL ES 2.0,渲染效率高,可以使移动设备的GPU发挥到最佳效果。
丰富的UI控件:封装大量的UI控件,各类控件的功能十分丰富,开发者可以直接使用这些控件进行应用的开发。
提供CrossApp配套编辑器:在2014年11月份的更新中将推出编辑器,辅助开发者进行更快速便捷的移动app程序的开发。
CrossApp Style体系:CrossApp Style将用户很多不同风格的主题库,每种主题风格都是由美术设计+交互体验设计+控件封装组成。

2、Justep起步软件
官方网站:http://wex5.com/cn/
官方论坛:http://wex5.com/cn/bbs/index.html
WeX5 – 开源、免费的应用快速开发框架
定位:开发面向消费者和公众的开放应用系统
适用:一般app、电商app、客服app、会员app、微店微商等
前端:安卓app/苹果app/微信服务号/PC web app
后端:后端数据处理组件,对接各主流技术平台
费用:完全开源,彻底免费,无任何限制
BeX5 – 专业、强大的企业快速开发平台
定位:开发面向企业和政务的信息化系统和管理软件系统
适用:OA/HR/CRM等各类管理软件,电子政务及各行业管理软件
前端:安卓app/苹果app/微信服务号/PC web app
后端:工作流、报表、组织机构、业务逻辑等能力,j2ee框架
费用:按企业用户数收费,20用户免费,商业版收费

3、APICloud(APICloud 将于9月15日举办IDE开源技术分享会!一周年)
官方网站:http://www.apicloud.com/
官方论坛:http://community.apicloud.com/bbs/forum.php
云API:http://www.apicloud.com/cloud
减少70%服务器端编码工作量:
为App开发者提供云端的API服务和数据存储服务,动态生成RESTfulAPI,支持在线NoSQL数据表设计、API调试及用量分析;
同时提供推送、云修复、大数据分析等服务, 极大的简化了服务器端开发工作。
从云到端的无缝数据连接通道:
http:无请求数量限制,高速稳定,支持断点续传,满足各类通讯需求
https:核心云API全程使用https加密传输
TCP:统一的即时下行通道,支持数据及控制指令瞬间到达
云端设计数据库:
提供可视化的云端NoSQL数据表设计,支持多达10种数据类型,简单配置即可完美实现App“云与端”的数据连通
自动生成RESTful API:
无需开发者手动编码封装, APICloud即可根据数据表设计自动生成RESTful API,减少服务器端开发工作量
预置常用云端功能模块:
内置用户系统、角色系统、文件系统、权限控制等,开发者几行代码即可实现快速集成
端API:http://www.apicloud.com/client
“积木拼装”式的开发跨平台App:
为App开发者提供大量优质的原生模块,涵盖UI、系统、交互、影音、支付等类型。通过JavaScript语言,一套代码同时调用iOS和Android两个平台的模块,从而实现“积木拼装”式的原生应用开发;支持多人协作开发、一键多终端调试等服务。
功能模块化:
将iOS和Android的功能统一标准化封装,一套代码同时调用两个平台的模块,省去开发者大量重复开发的工作
用简单的JavaScript进行拼装:
使用JavaScript即可轻松调用指定模块,同时各模块提供详细的配置选项,满足你的个性化需求
可自定义扩展:
现有的模块无法满足你的需求?你可以自定义私有模块来扩展你的模块库,满足差异化和精细化的需求

4、PhoneGap
官方网站:http://phonegap.com/
中文网站:http://www.phonegap100.com/ 论坛:http://www.phonegap100.com/community.html

5、APPCan——一站式移动开发服务平台
官方网站:http://www.appcan.cn/
官方论坛:http://bbs.appcan.cn/forum.php
国内 [Hybrid混合开发]、[企业移动平台] 的倡导者&领导者
HTML5+JS+CSS技术,支持开源插件:高德、ping++、环信、信鸽、讯飞语音、极光推送

6、IMAGApp——移动应用快速开发平台
官方网站:http://www.imagapp.com/
官方论坛:http://bbs.imagapp.com/
一次开发、随处运行:
手机开发轻松跨平台
自动适应不同分辨率
XML+JavaScript:
用Web方式开发原生移动应用
最高效的移动应用开发平台
完美的原生应用体验:
性能远超PhoneGap等其他框架
丰富的手机本地功能接口
推送,定位,地图,电话,短信,拍照,录音,蓝牙,联系人...
杀手级移动应用开发工具:
轻松构建企业移动应用门户
企业移动化首选方案

你可能感兴趣的:(ios,android,移动开发)