

移动开发是就业市场上很大一个份额。因此如果具备一定的移动开发知识和经验会给自己以后的就业带来很大的优势。面临疫情,几乎所有人的生活都受到了影响。新西兰留学生很多人没办法按时返校。但是生活还是要继续。因此这次小爱给大家来简介分析一下如何选择跨平台移动开发的框架。
但是现在移动开发的平台多种多样。除了原生的Android平台和iOS平台,跨平台的开发平台也有很多:React Native, Flutter和Xamarin等。除非专门的游戏公司,大部分公司都希望用最小的成本覆盖更多的移动平台,因此大部分公司都会选择支持Android和iOS两种平台。那么问题来了,面对如此众多的跨平台移动开发平台,如何选择呢?下面我来一个一个给大家介绍一下,然后同学们可以根据自己的喜爱和背景来选择。

原生平台具有最硬核的功能,可以访问平台提供的所有接口,尤其是访问硬件的接口,例如蓝牙,NFC,WIFI等。由于是官方提供的API接口和库。因此也最稳定,官方也会提供相应的开发工具支持,例如Android studio和XCode。因此如果是大公司,而且开发的应用需要较多的操控硬件和更原生的交互方式。往往会对不同的开发平台配备专门的开发人员。但是在新西兰,大部分公司不是大公司。而熟悉两个平台的细节,不是一个容易的任务。所以在新西兰就业。分别学习两个平台不是一个高效的选择。

React Native(RN)是把React应用到移动平台上。React是Facebook开发和引导的开发Web的前端框架,是当前的主流框架之一,另外2个是Vue和Angular。因此会Web前端React,学习React Native也简单些。学习了React Native,也会React了。因此对于准备从事和正在从事Web前端的学习者和从业人员是个高效的选择。在搭配上Node.js作为后台选型,这就是一个最高效的全栈的学习路线。React Native开发移动开发的长处就是使用Javascript开发,因此开发调试的周期更短。但是Facebook提供的React Native原生平台只提供了开发互联网应用的接口,例如访问Web,编写界面,监听应用状态,监听网络接口信息等。因此用RN原生平台开发互联网应用,例如电商,社交等,不需要扩展模块。但是对于其他需要访问蓝牙,和相机等硬件的应用,就需要扩展React Native模块。当然有很多第三方模块,但是质量和后期维护就不如官方的好。

Flutter是基于Dart语言的跨平台移动开发平台,是Google支持的。Flutter借鉴了React的开发模式,只是使用Dart语言来开发。Dart语言借鉴了Javascript语言的优点,但是克服了Javascript的缺点,具有简洁,支持类型,专门为开发界面优化等特点。因此Flutter整个的开发体验更顺滑。而且Flutter使用了Skia自渲染,也就是完全实现了一套自己的UI框架然后画在画布上,平台再把画布统一画在屏幕上。相比RN,这样的好处是界面在Andrid和iOS平台表现更一致。但是Flutter在Web上还没有成熟的应用。因此Web端和移动端应用不需要重用的可以放心大胆的选型Flutter了。在中国,阿里巴巴和腾讯的很多个应用都是用了Flutter。

Xamarin是基于C#的由Microsoft开发的跨平台移动开发平台。因此整个风格都很微软化。系统库都比较保守,封装的比较重。好处是,如果你开发的应用在系统库的扩展范围内,可以很容易的,快速的开发出应用。缺点是,如果你需要更灵活的定制,你需要学会并遵循Xamarin的平台的设计模式,实现起来稍微繁琐一些。Xamarin也是使用原生控件,因此多平台的风格也不是很一致。但是微软的工具使用起来还是比较顺手的。而且整个架构都是C#实现的。微软栈的同学们掌握起来容易很多。

可以看到,原生平台,React Native,Flutter和Xamarin平台都有大公司的支持和广泛地应用。除了Flutter在新西兰的就业机会也都很多。因此同学们可以根据自己的技术背景来选择,构建自己技术蓝图的重要一环。对于微软技术体系熟悉的同学可以选择Xamarin。对于Web熟悉的同学可以选择React Native。对于没有以往技术背景的同学,React Native其实是更高效率的选择。因为React Native所需的技术可以更好的被重用扩展到Web前端和后端开发。因此也覆盖了更多的就业机会。











