React Native 和Flutter的区别
在本文中,我们将讨论两个在相当长一段时间内维护精美并超越顶级行列的框架,即 React Native 和Flutter。考虑到在移动应用程序开发上投入的大量技能、时间和金钱,如今的公司需要一种更快的方式来开发应用程序。此外,要编写本机应用程序,您需要了解Java以构建Android应用程序和 Swift 以分别用于 Google 和 Apple 提供的iOS应用程序。此外,您必须拥有支持上述编程语言的代码本机呈现的 IDE。所以继续我们关于跨平台框架的观点,他们中的许多人试图解决这个问题,但获得了有限的支持和受欢迎程度,最终被视为另一个框架。
React Native: Facebook 的一个创作,于 2015 年开源。逐渐地,它得到了社区的一些大力支持。很大程度上基于 ReactJS,但添加了一个非常有用的原生代码因素,这使得体验和过渡变得不那么面向 Web。
Flutter:它是谷歌在 2017 年发布的,每个移动应用开发者都有同样的问题,它会杀死 React Native 吗? Flutter自 2015 年以来一直以“Sky”的名义进行开发和测试,该名称在Dart大会上亮相,但谷歌一直保持低调,直到它的第一个 alpha 版本发布!
让我们深入了解 React Native 和Flutter之间的详细视角。
下面是 React Native 和Flutter基于不同领域的差异解释:
编程语言
- React Native:使用 JavaScript,这意味着 Web 开发人员可以更轻松地快速过渡到 React Native 进行移动应用程序开发,而不是Dart。
- Flutter:除了它是一门全新的语言并且Dart没有被大量使用之外,由于概念上的面向对象支持,它松散地基于Java 。此外,它有一些易于遵循的文档来帮助您入门。
安装
- React Native:可以使用 Node Package Manager (NPM) 安装,同时使用 macOS,您还需要拥有 HomeBrew 包管理器。因此,对于安装了 NPM 的开发人员来说,这个过程非常简单,而其他开发人员则需要了解 NPM 的来龙去脉。
- Flutter:支持直接从 GitHub 下载特定平台的二进制文件。同样在 macOS 的情况下,下载文件后需要添加为 PATH 变量。
设置和项目配置
- React Native:在为开发人员制作文档以入门方面没有太多考虑。相反,它假设设置已经完成,这就是为什么 React Native 直接通过编写命令来创建第一个应用程序
$ npx react-native init MyTestApp
$ cd MyProject
- Flutter:它记录了从 IDE 设置、平台特定设置到名为flutter doctor 的 CLI 工具的所有小东西。
$ flutter create MyProject
$ cd MyProject
UI 组件和开发 API
- React Native:严重依赖第三方库来访问大部分原生模块。
- Flutter:丰富的组件集,包含所需的每个本机模块,不需要第三方库。此外, Flutter充满了 WIDGETS。
开发人员生产力
- React Native:所有 IDE 都支持 JavaScript,因此根据开发人员的说法,使用方面永远不会出现问题,这为每个相关的开发人员提供了很大的自由。
- Flutter: Dart在使用方面并不是一种常规语言,许多 IDE 和文本编辑器明显缺乏支持。
社区支持
- React Native:作为两个框架中最先发布的框架,很快就会获得大量支持,而且自 2015 年以来它肯定会得到大量支持,因为它由 GitHub 上的开发人员和来自世界各地的更多社区的大力维护。
- Flutter: Flutter在社区支持方面也在迅速增长,但同样需要一些时间才能提供资源,这最终将使开发人员能够解决常见问题。
测试支持
- React Native:再次严重依赖第三方工具进行集成和 UI 测试。
- Flutter: Flutter有自己的功能,可以在 3 个级别测试应用程序,即单元测试、小部件测试和集成测试。
构建和发布自动化支持
- React Native:没有提供用于从任何平台自动部署应用程序的文档,因此基本上您可以自己在 Play Store 或 App Store 上搜索和部署它。
- Flutter:它通过 CLI 支持部署,还提供了 fastlane 部署过程的文档。
DevOps 和 CI/CD 支持
- React Native:不包含任何有关设置 CI/CD 的官方文档。
- Flutter:有一篇关于 CI 和测试的单独文章,您可以在此处查看。但是,您可以使用Flutter CLI 以非常简单的方式设置 CI/CD。
结论:所以这些是得出的一些结论,并且肯定还有更多结论,但最终这一切都归结为您作为开发人员在一天结束时实际更喜欢什么。