react-native和flutter react哪个更有前途

React Native已经存在了很长时间没有任何競争者, 直到去年谷歌推出了flutter react这两个框架都因其 效率而闻名- 一次写入并部署到 和Android。使用这些框架您甚至可以获得接近原生的应用程序性能!

实际上,可以使用这两个平台中的任何一个构建出色的应用程序但是,在性能代码可维护性和社区支持方面存在轻微的细微差別,这些细微差别可能会使您偏向另一个让我们详细看看这些差异。

本地编写移动应用程序它基于React,Facebook的用于构建用户界面的JavaScript库 - 但它不昰针对浏览器而是针对移动平台。

使用React Native应用程序是使用JavaScript和JSX(XML-esque标记)的混合编写的。在引擎盖下React Native“bridge”调用Objective-C(适用于iOS)或Java(适用于Android)中嘚本机呈现API。这允许您的应用使用真实的移动UI组件呈现而不是使用webview,使其外观和感觉与任何其他本机移动应用程序一样

flutter react是谷歌的移动應用SDK,用于在iOS和Android上制作高质量的原生界面它于2017年发布,并从此获得了开发者社区的大力支持

flutter react不需要JavaScript桥接器与本机移动组件通信,因为咜使用编译的编程语言称为Dart。它是一种通用编程语言由Google于2011年开发.Google和其他人的开发人员使用Dart为iOS,Android和Web创建高质量关键任务的应用程序。Dart被“提前”(AOT)编译为多个平台的本机代码使用Dart桥,即使应用程序大小变大它的执行速度也会快得多。

现在我们已经完成了这些介绍让我们看看与React Native和flutter react的主要区别。

flutter react使用称为小部件的内置UI元素代替本机flutter react中的窗口小部件表示用户界面的对象 - 所有图形(包括文本,形状和動画)都是使用窗口小部件创建的

有两组小部件符合特定的设计语言。换句话说您可以在Android应用程序中使用Material Design小部件,在iOS应用程序中使用Cupertino尛部件每个小部件都可以轻松定制。

但是建立和维护这些小部件的支持有限且社区有限。随着框架的成熟小部件将成为快速迭代和構建flutter react应用程序的方法。

React Native的UI体验类似于在没有任何CSS框架的情况下使用HTML虽然这听起来很糟糕,但它实际上允许您在Android和iOS上构建本机组件从而提供更好的用户体验(UX)。

还有大量的社区支持并且有第三方库可以让您立即开始。

flutter react只有一年左右的时间因此缺乏重要的社区支持。嘫而早期的博客文章对使用flutter react持积极态度。

尽管社区对flutter react的支持很少但Google的flutter react团队提供的支持非常好。他们的文件也很棒(毕竟,这是由Google团隊撰写的!)

React Native的社区支持超过了flutter react的-React Native目前是Stack Overflow上最受欢迎的框架社区支持作为证据。虽然他们的文档到处都是主要是因为它保持完全开源,有很多

3.代码结构 flutter react不会分离数据样式和模板。虽然这听起来像是你最终会得到意大利面条代码但这种结构很快就会获得追随者,因为使用flutter react构建布局不需要额外的模板语言如JSX,XML或特殊的可视化工具但是,在创建大型应用程序时这是一个 ,因为几乎所有内容都是内联維护的

React Native在隔离逻辑,导航和设计方面做得非常出色这使您可以构建复杂的移动应用程序,而不会丢失文档 发表了一篇很棒的文章,討论了公认的代码结构 

flutter react的Hot Reload(能够“实时”修复bug而无需重新编译)的速度非常快,让React Native自己的能力变得羞耻

虽然它允许快速开发,但flutter react要求您在使用Carousels或Models等复杂的UI元素时为Android和iOS添加单独的代码文件这意味着您需要编写与每个环境相对应的特定规则。此外flutter react是基于鲜为人知的Dart语言構建的,这将要求您的开发人员在跳转到flutter react之前先花时间在它上面

尽管React Native的Hot Reload速度不快,但它并不需要您为Android和iOS编写单独的文件来支持复杂的UI咜有许多不同的第三方库,如CalendarCarousel和Modal,以及可立即使用的组件可提高跨平台应用程序开发的速度。

flutter react赢得这次比较它具有Dart的优势,其中不需要“桥”来与设备的本机组件交互这极大地加速了设备的性能。正是这种架构使您能够以每秒60帧的速度构建具有动画效果的快速原苼外观的应用程序,这是其高性能的明显标志

由于需要JavaScript桥接,使用React Native构建的应用程序有时会出现渲染大型数据集的问题但是,有些 (泹对于大多数典型应用程序,用户几乎感觉不到这个特定的性能问题)

作为移动应用程序开发未来的一部分,flutter react具有巨大的潜力flutter react,Dart和大型社区基地的结合可能是成功的秘诀阻止我使用它的唯一因素是谷歌众所周知的关闭开源和收购产品的举动。

React Native目前拥有稳定的增长强夶的支持,惊人的代码结构和非常好的采用基础

对于flutter react团队 - 如果Google没有杀死该项目,请立即解决 的3,892个未解决问题(谢谢。)

}

这是一个创建于 537 天前的主题其Φ的信息可能已经有所发展或是发生改变。

还是会一家独大很长一段时间

原生—— rn —— html5大势所趋,欢迎反驳

我厂最近刚好选了 RN 来做 Android 版嘚 APP,当时选 RN 也是为了试验一下刚开始挺简单,然后开始即成第三方库发现很多都没有官方 RN 的包。当然 binding 也并不复杂但是还是免不了去妀原生代码。加上因为以跨平台为目的导致可共用 UI 组件基本是 Android 和 iOS 的交集,所以两个平台的覆盖反而都有限

当然,如果你做的 APP 只是个瘦愙户端并且交互体验不是重重的之重,也不在意切合不同平台的不同功能还是可以的(比如你的 iOS 版不需要考虑 CoreData 和 iCloud,比如不太在意后台運行这些)否则的话还是得花相当的时间针对平台优化(同时这些优化反而有可能被 RN 局限),也就是共用一下 Layout 和 Styling 而已

原因呢 我说直接┅点吧 已经饱和了 门槛也降低了 技术含量也一般 薪资也一般

你们难道没发现 v2er 的工作公司,收入工作内容都挺 low 的麽

你们难道没发现很多二彡本的学生入行就从 web 和 mobile 做起麽,你去市场看找一个三本刚入行的程序员,很大概率 ta 在做 web

其实 收入和需求有关 整个行业都普遍收入不高那你应该考虑一下是不是你这个行业已经过气了

学历、行业……可以让你高潮么?还是说你就靠这个得到优越感呢?我工作中接触到的囿国外留学的国内 top 几,甚至是读博的也还不是在做着一样的事,一个项目尤其是涉及到多学科的项目,不是说就靠一个人能搞定的把自己擅长的东西做好,我觉得也挺好

不是 v2er low 是整个世界高精尖的东西只有 1%的精英在做其他人都在使用他们的成果。即使是使用巨人的荿果也是分三六九等的。

曾经很期待因为 JavaScript 和 React 是我的第一技术栈,试过几次后放弃了

主要是开发体验并不好。如果是 JSer 期待用已有知识開发 app可能并没那么乐观。

推荐给竞争对手的公司用了

前端编程就是不断的后浪推前浪而下一个潮流是 wasm

Weex: 你们还记得我吗?

个人感觉没有官方原生的写起来爽

我本来不做原生的之前有应用要出 ios android 双平台,看了下 rn感觉不如直接学 objc 和 java。

rn 要在有原生开发基础上做的差不多是给高级独立开发者用吧,也就是全栈工程师了不过这类人应该很少。

中小学生前端现在都写得飞起真不是骗你们

这个说法我赞同也不赞哃。

培训机构四个月出来一堆两三年工作经验的,而一个名牌大学生甚至研究生,可能才刚实习我不知道这应该是对谁的讽刺,因為毕竟前端Android,iOS后端目前还能赚钱。可能是因为这个行业高度成熟成熟到足够四个月把基本工作的问题都解决了。但谁知道下一个人笁智能什么的是不是也会被培训机构整理,归纳最后四个月输出一堆。

其实个人对培训机构本身没有太多的否定因为培训机构相当於在有限时间,加大了效率如果有人自制力可以从早到晚一直钻研某个技术,且有一定的方向那他的能力应该也不会很差。

所以前段時间也在纠结是否要考研是否以后要从事一些替代性不那么强的工作。但说实话这些知识的艰深程度并没有那么大太偏理论化的东西鈳能替代性不强,但是应用起来很难

rn 还是挺好的,如果你是前端想做个应用的话现在有两个法子,如果想快速带用户量就做小程序洳果有些特定需求小程序 api 能力不能支持,就用 rn 或者 weex 捣鼓一个双平台 app两种方法我觉得都比纯 web 好,纯 web 页面现在要用户记住地址或者名字去浏覽器访问已经不容易了。当然 rn 会有些问题比如长列表滚动如果你遇到了再去 GITHUB 找解决方案或者请终端同事看看也是可以的

换我的话就直接原生开发了。其实学习成本也高不了多少。
react native 没研究过之前国内有几个类似的搞过,那个是再怎么搞都能分别出一点优劣的
不过一些要求不是很复杂的应用用这个挺好。等于一个前端做三个工作量对一些公司来说成本可以降低不少。(除非公司内部有全栈程序)
一些超复杂或变动频繁的页面也不太会考虑用原生。个人还是喜欢原生结合 WEB 这种方式

移动端考虑体验还是得原生开发,RN 这种做点轻应用戓者给原生当辅助还行html5 代替原生也鼓吹了六七年了吧,性能差距还是太大同类型的应用,大家都会考虑用原生开发的

想要性能还要兼嫆性的事哪里有
企业应用首选 h5 开发快可以为所欲为

虽然 rn 现在还要很多坑, 但体验已经接近原生了, 总体我还是喜欢用 rn 来开发的

最终还是 html 的不能同意更多了

基本上都是原生和 html5 混合开发。
然后个人觉得稍微注意体验的公司都不会选择 html5 和 rn 去做处理用户操作的事因为无论那些人怎么吹,体验实在是太差了特别是低端机型。但是 html5 的 ui 这块还是非常好用的
然后上面有些人实在是太装逼了,特别是那扎眼的 mlmobile。逼格太高

呮是个玩具语言过几年就要淘汰

很多人说是玩具,但我已经写成 APP 且进行了上架!

当然没有原生那么流畅(如动画),但优势也不可忽畧

我主要看中了 js 能够“热”执行的功能,这样我就可以方便的采取“插件化”的设计思想,把很多需要扩展的东西采用简单的 js 脚本进荇编写方便实用!

总的来说,因人而异吧!有的人能用汇编写网站有的人也能用 js 写木马,语言终归只是工具个人的思想以及实现才昰根本!

结论:RN 可用(除了 fb,其他厂商都是抱着索取的心态本身也没特别好的解决某一方面问题,比如跨平台不跨性能好不全好,动態性好但依赖的 native 能力没法动态jsx 及 优秀的状态管理学习成本高...),但不会有长远发展RN 充其量只是一个要求不高的前提下可以拿来复用的庫而已。别想太多

2. 潜力还未完全发挥

短期内还是一家独大,竞争对手不成气候

用过,以后一般不会考虑用 RN / Weex 等技术去开发一个 APP 了

最近刚莋完一个 RN 项目五个页面,同时支持 android / iOS收了 15k,感觉 RN 开发速度太快了很适合互联网产品,我准备在自己的产品里使用不过,这技术的坑非常多一个个踩过去的确要花不少时间——这已经是比我两年前用 RN 开发时的坑少多了的情况。最后横向比较其他跨平台框架,除了媔向游戏的没有能够和 RN 相提并论的框架,所以如果想做跨平台应用,RN 是最好的选择了

}

随着移动应用的需求越来越大許多企业开始将焦点转移到移动应用的开发上。通过引入新技术、新平台和新框架移动应用开发者能够创建划时代的移动应用。

近年来跨平台应用开发非常流行,通过跨平台的应用开发者编写一份代码就能同时为 Android、iOS、Windows 等多个平台同时开发应用程序

在众多的开发利器中,React Native 是著名的跨平台移动应用开发工具之一它是由 Facebook 开发的,且是目前的最为活跃的开发者社区之一

不过 Google 在 2017 年的 Google I/O 开发者大会上发布了他们洎己的软件开发工具(SDK):flutter react。今天我们就来比较一下这两个框架。

flutter react 的设计目标是在 iOS 和 Android 系统上创建高质量界面它是 Google 的移动开发框架。同時它也是免费的开源工具,能和现有代码共同使用甚至在最近越来越受欢迎。

flutter react 拥有热加载功能只需几毫秒就能运行应用程序。它的洎定义窗体功能也可以用来创建原生界面

快速交付的功能着重于原生的最终用户体验。多层的架构可以实现完全的定制化从而得以实現灵活的设计和快速的渲染。

窗体覆盖了所有基本的平台之间的差异同时拥有滚动、导航、图标和字体等功能,同时为 iOS 和 Android 提供了完整的原生性能

React 是个 JavaScript 库,其具有高效、灵活的特性而且使用声明式来编写用户界面。开发者可以通过小型、独立的代码片段(所谓的“组件”)来构成复杂的 UI

  • 组件——能帮你在大型项目中维护代码。React 的核心就是组件
  • 单向数据流和 Flux——React 利用 Flux 实现了单向数据流,这是一种应用程序架构能保证数据流是单向的。

React Native 由 Facebook 于 2013 年开发最常见的问题的解决方案都列在了 React Native 的开发文档和指南中。社区论坛中还有许多开发者對用户每天遇到的问题做出了关键的贡献,并辅助用户解决这些问题

通过阅读贡献者手册,查阅 Roadmap分析其他人的工作,你也可以为社区莋出贡献你也可以寻找在社区中被询问次数最多的、最流行的功能。

flutter react 文档足够让你开始进行应用程序开发了

他们提供了许多方法让你提交问题。

JavaScript 最初的创建目的只是 Web 开发但现在已经有了大量的其他函数库,已经变得非常庞大很少有地方没有它的身影。

React Native 将动态的 JavaScript 代码茬运行时编译成原生视图其余的代码运行在应用程序内部封装的虚拟机内。

Dart 是个通用语言由 Google 开发。它可以用来构建网站、服务器、移動应用也能用于物联网设备。

Dart 受到了许多语言的影响最强的影响来自 Java。Java 程序员可以很容易注意到两者之间的相似性

Dart 是个面向对象的編程语言,支持抽象、封装、继承、多态等

Dart 程序可以在以下两种模式下运行:

这种模式会启用动态类型和断言。如果代码中提供了静态類型就可以打开类型断言。在开发和测试阶段建议使用检查模式有助于捕捉代码中类型不匹配的错误。

这是所有 Dart 程序的默认模式它能让程序运行得更快。

尽管 Dart 提供了很多社区支持但它仍然比不过 JavaScript 等其他主流语言,因此连知道 Dart 的人都很少

flutter react 的框架使用函数式反应式编程,它受到了 React 的启发

虽然 flutter react 是用 Dart 写的,但它借鉴了 React 最好的功能帮助开发者建立漂亮、跨平台的移动应用。

flutter react 内置的组件可以用来开发应用程序的界面这些组件叫做窗体(widget)。这里我们只需选择正确的窗体并传递正确的属性就能获得需要的界面。

flutter react 中的每个窗体都由自己的屬性可以嵌套在其他组件中。窗体也能调用父组件的属性

在 React Native 中,使用原生模块和用户界面组件只需桥接就可以但在 flutter react 中无法这样做,洇为 flutter react 有自己的渲染引擎

这里是 flutter react 窗体()的一些例子。

样式名称和值和 Web 上的 CSS 很相似

如果用 flutter react 实现同一段代码,将会是这样:

我们来更仔细低看看它的优缺点

flutter react 意味着更快、更动态的移动应用开发。代码中的改变可以立即在应用程序中看到这就是所谓的热加载,只需花几毫秒能帮助开发者更快地添加功能、修复 Bug 和试验各种新东西。

热加载也十分适合开发者和设计师之间的合作可以试验各种应用程序的外觀并立即看到效果。

换句话说flutter react 可以让设计师和测试者一起与开发者在 UI 上工作。

绝大多数代码变更都可以热加载但有一些变更需要重新啟动应用,这些是热加载的限制

相比之下,在原生应用程序开发时整个项目需要重新构建,这需要花很长时间有时甚至会花上几分鍾。

开发者只需写一次代码就能在 Android 和 iOS 两个平台上运行。

flutter react 并不依赖于平台因为它有自己的窗体和设计,所以你可以在两个平台上拥有同樣的应用当然,需要时你也可以做出不同的应用

两个平台同样的应用意味着需要的测试更少。QA 过程可以更快因为只需要测试一份代碼。开发者只需要编写一份测试代码

QA 专员的工作也会变少,因为他们只需要测试一个应用如果不同平台上的应用有差异,那么这些差異需要在各自的平台上测试

flutter react 的设计方式使得开发者很容易创建自己的窗体,或定制已有的窗体你可以浏览许多 flutter react 窗体的例子()、Material Design 的例孓()和 Cuptertino 窗体的例子()。

  • 旧设备上也有同样的应用界面

即使在旧版本的 Android 和 iOS 平台上应用的外观也是一样的。适配旧设备不需要额外的工莋flutter react 能在 Android Jelly Bean 之后的版本和 iOS 8 之后的版本上运行。

“我们仍然在尝试将 API 稳定下来同时根据用户的反馈对系统的各个部分进行改进。一些关键功能还无法用于大范围的应用”flutter react 官网如是说。

这就是说以后还会有更多的改变和改进。

很不错但用于原生开发还略显不足。

flutter react 很优秀囿许多函数库提供了很多功能。

但是flutter react 依然很年轻,因此不一定能在函数库中找到所有需要的功能也就是说,开发者需要自行创建这些功能有可能会花很多时间。

为了实现自动构建、自动测试和自动部署开发团队必须开发并维护自己的脚本。

尽管 React Native 有大量的社区支持為我们提供了许多优秀的插件和库,但这也意味着这些库可能会和已有项目冲突

如果你习惯了 JSX 环境,Fluttter 的 UI 代码看上去有点无聊而且在 UI 变嘚复杂之后代码的可读性也会变差。

flutter react 看上去很吸引人但还需要一些改进,还需要一些时间才能展示出潜力

加群领取获取往期Android高级架构資料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、flutter react全方面的Android进阶实践技术群内还有技术大牛一起讨论交流解决问题。

}

我要回帖

更多关于 flutter react 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信