移动应用跨平台开发

知道91 | 教程 | 2015-10-17 | 阅读:4157

跨平台开发简介,业界很多主流的移动开发框架均源于PhoneGap。较著名的有Worklight、appMobi、WeX5等;其中WeX5为国内打造,完全Apache开源,在融合Phonegap的基础上,做了深度优化,具备接近Native app的性能,同时开发便捷性也较好。

phonegap

由于移动互联网的出现,因此经常听到有人说要做手机端应用。

本人做软件开发已经有一段时间了,开始上班的时候智能手机刚刚出现,不过我并没有一开始就做手机端的开发,直到2年前有了具体的思路,才开始做手机端应用。

因此开始了解一些手机端开发的技术方案。

很显然目前智能手机主要有2个平台ios和android,当然还有windows phone,不过目前主要还是ios和android。

因此首先第一种方式,就是针对不同的平台做2个不同的版本。当然这就是说要同时学习ios和android开发,所谓原生开发。

学习新的技术是需要时间成本的,因此我想是否可以跨平台呢,答案是肯定的。

跨平台也有很多不同的方式,最简单的是使用html5,界面用html实现,然后需要用的系统功能由框架提供,由于界面是使用html因此一些web界面框架也可以用上,之前用过的extjs就有移动版senchaTouch。

html也算是神通广大,在pc上有很多软件都是基于浏览器,所谓b/s模式,当然也是跨平台的,任何操作系统只要有浏览器就能用,而且不用安装,因此现在很多应用如果可以一般都是采用这样方式。

将html用到手机上怎么样呢,手机上也有浏览器,并且手机都支持升级版的html5。虽然在浏览器上不能使用系统功能,但使用像phoneGap、AppCan这样的框架封装一下,也就没有什么了,所谓Hybrid App。

于是我就用AppCan+senchaTouch做了一个demo,从demo的效果上来看,感觉并不是很好,主要是手机性能太差,虽然技术参数很高,我觉得根本就是一种误导,后来发现即便是原生应用依然有性能的问题。所以最终还是没有使用html来程序。

然后我又尝试使用另外的跨平台方式,使用C#来做手机应用,C#需要有.net虚拟机,虽然微软没有提供可以在手机上运行的虚拟机,但是mono可以提供跨平台的运行环境,这种工具称之为xamarin,以native的方式来开发ios和android的应用。

实际上这种方式也没太大的好处,是使用C#对平台的函数进行封装,ios和android实现界面的方式是不一样的,要分开做,然后可以共享一部分代码。虽然有xamarin.Forms让界面也实现跨平台,不过目前并不成熟。

phonegap

由于之前学过C#,使用xamarin可以不需要适应新的编程语言,另外官方的文档也算完备,于是就开始使用xamarin从android开始做手机应用。

经过封装以后,用C#来开发android程序,基本上没什么太大的问题,不过一个应用做了不到一半的时候又做不下去了,虽然官方提供了文档,但还是有各种问题需要到网上找解决方法。所能找到的都是android原生开发的,代码都是java的,于是就要对代码进行转换觉得很麻烦。这个时候对android的开发已经了解的差不多了,只是编程语言不同,C#和java也是很像的,另外考虑集成第三sdk,于是干脆就换成原生的开发了。

于是本人的跨平台之路就此结束了,这个故事告诉我们,如果要做移动应用的话还是先选择一个平台吧。要2个平台都考虑,就需要了解不同平台的特性,以此为基础可以再考虑跨平台。

现在Phonegap是Adobe所有,Adobe公开表示将会为HTML5开发推出更多有意义的工具。有业内人士表示,Adobe的HTML5战略特别值得注意,此外Adobe对于乔布斯的此番公开批评曾积极地回应道:“乔布斯说的不都是对的。”这是个好的信号,在flash和html5之间犹豫的开发者可以大胆的使用phonegap了,另外html5更注重移动平台,flash更适合pc端。在html5移动应用的架构选择上,PhoneGap无疑是最佳的开发模式。