(516025 惠州城市职业学院 广东 惠州)
随着各个技术领域的快速发展,移动互联网得到全面发展覆盖,移动平台生态日益完善,移动应用开发目前已占软件行业中的主流位置。目前主流的移动应用平台仍为谷歌的Android和苹果的iOS,而且在往后较长的一段时间内,它们仍为主流平台。跨平台是有计算机系统以来,软件开发行业中一直就有的概念。开发出来的应用,不需要修改或极少的修改就可以在不同的平台下正确运行。“一次开发,多平台共享运行”是不同时代的程序员的共同追求目标,因为这使应用的开发、运营与维护成本大大降低,从而大大提高了应用的生存周期。
1.移动应用跨平台开发技术方向
1.1 Hybrid混合流(WEB流)
主要是使用HTML/CSS/JavaScript等前端技术来实现界面及功能,将原生的接口封装后暴露给JavaScript,可以获取访问原生API的能力,也可以运行在系统自带的WebView中,这可以跨平台共用绝大部分代码,真正做到一次开发多平台运行。
1.2 代码转换编译流
将你熟悉的语言转换成特定语言,然后使用不同的熟悉的平台进行开发,或者将某语言编译为熟悉平台下的二进制文件。这做法听起来比较复杂,感觉不靠谱,但是如果转换后的代码是可读的话,风险与成本都会是比较小的,因为转换成功后,可能使用官方提供的工具进行普通开发,不需要担心一些兼容问题。
1.3 虚拟机流
说到跨平台虚拟机,必须会提起JAVA,因为JAVA最早就是为了能在不同移动设备开发跨平台应用设计的,只要目标平台装有JVM提供JRE,使用JAVA编写的应用就可以运行。类似于JAVA的设计,这种跨平台技术方向可以借助JavaScript或Lua这些常见的内嵌语言较易实现,但是也正如JAVA虚拟机一样,虚拟机本身会带来性能的损耗,另外,虚拟机本身就是一个体积不小的工具,这个得考虑目标平台是否能容得下。
2.国外主流移动跨平台技术
2.1 Cordova
Cordova前身是PhoneGap的核心,后来成为Apache的一个开源框架,使用标准的web技术HTML5、CSS3和JavaScript做跨平台开发。
Cordova主要是运用混合流的技术方向,应用的底层用JS包装API与插件实现访问不同终端的功能,比方终端的网络状态和各种传感器,使得在每个平台的具体执行被封装了起来。UI交互则使用jQuery框架,然后用WebView来渲染。
这个技术适合WEB APP开发者,可以轻松通过已有或自定义的插件快速开发可以分发到不同平台的应用,同时也适合想扩展一个应用的使用平台的移动应用开发者。
2.2 React Native
React Native是FaceBook开发的,源自React,基于桥接技术的一个跨平台开发框架。React Native同样使用JS封装原生不同平台的API集,使用JSX语法(JSX语法扩展自JS),将UI映射到可以用简洁的语法高效绘制的虚拟Dom上,通过桥接传递到原生平台,然后根据数据设计真实原生的视图,可以适应不同平台的差异。
VirtualDom是Recat的优势,因为使用高效的Diff算法可以降低维护状态和刷新视图的复杂性,从而不太需要担心性能的损耗问题。
2.3 Flutter
Flutter是谷歌近两年推出的一个跨平台开发框架,也是目前处于流行上升速度较快的框架。它提供了很多的套件、接口集,开发者使用这些工具可以很快的扩展原生平台。另外,它还用原生库来渲染View,为用户提供非常好的交互体验。这个框架具有高性能、高保留原生态、跨平台的特性,但是需要使用Dart语言进行开发,一定程度上增加学习成本。按目前流行趋势看,这是个值得关注的框架。
2.4 Xamarin
Xamarin是微软一个开源跨平台开发框架,通过.NET使用C#语言可以构建适用于iOS、Android和Windows的应用程序。此框架适合走.NET路线的开发者,使用强大VisualStudio在C#中编写可以跨平台共享代码和业务逻辑的应用程序。
3.国内移动跨平台技术介绍
3.1 Uni-app
uni-app是国内DCloud公司推出的一个使用Vue.js开发的框架,使用此框架开发的应用程序可以发布iOS、Android、Html5及各种小程序等几乎所有目前流行的移动应用平台上。如果开发者熟悉前端开发,此框架是不二选择。使用此框架,只需要开发一次,便可以运行在APP平台、H5平台、小程序平台(微信、支付宝、头条等)。
3.2 Smobiler
Smobiler是上海石磨科技推出的一个基于.NET平台的开发技术,只要懂C#语言及窗体事件开发技术,一次开发就可运行于IOS和Android两大平台,拖拽式设计,所见即所得,开发迅速,只需一个.NET开发人员即可独立完成整个企业移动应用从开发、打包、部署的整个生命周期。如果是开发移动跨平台的信息管理系统,Smobiler可以做快速的开发、部署及维护。
4.跨平台移动应用开发技术的选择
国内科学技术已经有了长远发展,尤其计算机技术已经不是以前什么都跟着欧美屁股跑的老样子,许多方面,比方智能推荐算法方面,已经走在前面了。鉴于目前的国际形势,号召大家选择支持国产技术,像本文所提的uni-app及Smobiler虽然是新生力量,但是在各自适用层面都是顶尖的。如果是开发小型快用APP,uni-app是很好的选择。而如果是开发基于移动终端的信息管理系统,那么Smobiler就是不错的选择了。