浅谈移动应用的跨平台开发工具(Xamarin和React Native)

谈移动应用的跨平台开发不能不提HTML5,PhoneGap和Sencha等平台一直致力于使用HTML5技术来开发跨平台的移动应用,现在看来这个方向基本算是失败的,基于HTML5的移动应用在用户体验上与原生应用仍然存在着明显的差距。

与上述HTML5平台不同,Xamarin和React Native通过各自的方式来实现跨平台。Xamarin基于Mono框架将C#代码编译为原生平台代码,React Native则是在UI主线程之外运行一个JavaScript线程,两者呈现给用户的都是原生体验。

 

笔者恰巧两个平台都各使用过一段时间,在这里就抛砖引玉,分享一下个人观点。对于资源有限的创业团队,如果熟悉JavaScript,使用React Native再加上React,Redux等技术可以实现移动端、Web端、和Service端整套系统的开发,还可以重用一部分代码(比如Reducer和Action中的业务逻辑,以及通用的JavaScript组件代码),React Native也非常适合快速原型的开发。对于实力相对雄厚的大中型公司,如果已经在使用Microsoft的.Net技术,并且拥有成体系的系统架构,那么Xamarin或许是一个更好的选择,架构设计得好的话在代码重用方面并不逊于React Native。

下面从几个方面说一说两者各自的优缺点:


  • 从编程语言的角度来说,C#和JavaScript都是成熟的主流编程语言,都有丰富的第三方库和强大的社区支持。两种语言都能够实现从前端一直到后端的整套方案。

  • 从开发工具的角度来说,Xamarin Studio的表现只能说刚刚及格,有种和Xamarin整个产品线不在一个水平的感觉,特别是重构和界面可视化编辑等方面还有很大的改善空间,并且在版本升级中经常会引入新的BUG,让笔者多少有点患上了升级恐惧症。React Native本身没有IDE,开发人员可以选择自己熟悉的JavaScript IDE,比如:IntelliJ等。

  • 从第三方库的角度来说,Xamarin的第三方库给人一种不多不少、刚好够用的感觉。在IDE中集成了Xamarin Component Store以后,第三方库的数量质量都有了提升,开发人员使用起来也非常方便。如果遇到特殊情况需要自己开发或者绑定(binding)原生代码库时可能会比较麻烦一些。React Native则完全依赖于JavaScript社区,NPM和GitHub,在需要自行开发和桥接(bridging)原生代码库时个人觉得比Xamarin容易一些。


  • 价格方面,Xamarin有免费版本,但在应用包尺寸上有限制。对于企业级开发最好还是选择它的Enterprise License,虽然价格不菲,但是可以获得技术支持和使用平台的其他产品(如:Xamarin.Forms和Xamarin Test Cloud)。React Native则是完全免费的。


  • 至于学习难度,很多人对JavaScript缺乏信心,觉得这门语言很难掌握和用好,而C#和Java则相对容易安全得多。这里笔者推荐图灵的《你不知道的JavaScript》系列,看过之后也许能够改变这一看法。除了JavaScript语言,React Native还需要掌握Facebook的React框架,它是React Native的核心。Xamarin要求掌握C#以及iOS和Android开发的相关知识,虽然使用React Native并不一定要求会iOS和Android开发,但是对于移动应用开发者来说,无论使用什么工具、怎样跨平台,了解各个平台的架构设计还是非常必要的。

下面是对两者各方面的一个总结:

 

不足和纰漏之处还望各位不吝赐教,欢迎交流讨论。

转载于:https://www.cnblogs.com/zgblog/p/5568693.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这四种技术都是用于开发平台应用程序的框架。它们各自有自己的优缺点,适用于不同的场景和需求。 1. Electron:基于 Node.js 和 Chromium 开发的框架,用于构建桌面应用程序。它可以使用 HTML、CSS 和 JavaScript 等 Web 技术来构建应用程序。Electron 的优点是易于学习和使用,开发周期短,可以快速构建平台桌面应用程序。缺点是应用程序的性能和资源占用较高,不适合开发需要较高性能的应用程序。 2. React Native:基于 React.js 开发的框架,用于构建移动应用程序。它使用 JavaScript 和 React.js 的语法来构建应用程序,并将其转换为原生代码。React Native 的优点是开发效率高,可以实现平台开发,同时具有原生应用程序的性能和体验。缺点是需要掌握 React.js 的知识,对于复杂的应用程序开发可能会有一定的学习曲线。 3. Flutter:由 Google 开发的框架,用于构建移动应用程序。Flutter 使用一种称为 Dart 的编程语言来构建应用程序,并将其编译为本地代码。Flutter 的优点是快速开发、高效、易于维护,同时具有出色的性能和视觉效果。缺点是需要学习 Dart 的语法,该语言的生态系统相对不够成熟。 4. Xamarin:由 Microsoft 开发的框架,用于构建平台应用程序。它使用 C# 编程语言来构建应用程序,并将其转换为本地代码。Xamarin 的优点是开发效率高、可重用性强、支持多平台开发。缺点是需要掌握 C# 的语法,同时对于复杂的应用程序开发可能会有一定的学习曲线。 综上所述,选择哪种技术取决于具体的需求和场景。如果是构建平台桌面应用程序,可以选择 Electron;如果是构建平台移动应用程序,可以选择 React Native、Flutter 或 Xamarin

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值