与React Native相比,Flutter有8个优点

移动开发越来越不依赖于本机开发,而是依赖可帮助同时为多个平台创建应用程序的框架。今天,我想谈一谈Flutter,它逐渐开始从React Native赢得市场。详细信息-下切。



当开发移动应用程序的项目开始时,有必要确定我们将在哪个平台上进行编程。这个问题通常受到客户自己的影响,客户自己想查看为每个平台本地创建的软件,或者相反,是想节省资金并要求在React Native上进行开发。

在项目网站上,您可以发现Flutter不仅在积极使用Google本身,而且还在积极使用其他一些公司。例如,Flutter编写了新的《纽约时报》应用程序,以及eBay和Aliexpress的移动版本。但总的来说,这份名单看起来并不令人印象深刻,因为它包括不超过20家公司。
图片
尽管如此,我们公司开发人员的经验表明,在某些情况下,Flutter在创建移动应用程序方面更好,更方便。Neti的集体思想总计包含了这个年轻框架的8个优点。

性能


Flutter开发的应用程序的运行速度比使用React Native快得多。通过我们自己的引擎和使用另一种编程语言可以实现速度优势。与使用桥和Java脚本语言的React Native不同,Flutter允许您快速解决应用程序问题,尤其是那些与用户界面有关的问题。框架中已经内置了本机编译器,用Dart编写的代码变成了ARM处理器的本机指令。

顺便说一下,InVerita的家伙进行了有趣的比较测试。他们在Medium上的文章比较了真实iPhone 6和Xiaomi Redmi Note 5设备上完成的应用程序的性能。

图片

如您所见,iOS上的Gauss测试在Flutter上的运行速度比Swift上的运行速度还要快,而RN则显示出20倍的延迟!

图片

对于Android,Flutter完成测试所需的时间比Java和Kotlin多20%,但仍比RN快15倍。

应用规模


作为上一段落的结果,基于Flutter创建并用Dart编写的应用程序包含较少的中间组件。最多编译本机ARM指令即可存储更多内容。因此,与在React Native上进行开发时相比,应用程序二进制文件本身占用的设备驱动器上的空间减少了两倍。

快速动画


从某种意义上说,这是前一个版本的补充。我们决定将Flutter用于内置许多动画的应用程序。事实是Flutter稳定地演示了60 FPS,这意味着用户不必像React Native那样经常观看抽搐的画面。

打字编程语言


Flutter的基础是Dart,这是一种在发烧友中已经很流行的类型化编程语言。在Dart上,编码变成了面向对象的编程……在这里,我们当然可以回想起TypeScript并认为它也是类型化的。但是,可惜,最终,它已经过编译,仍然变成了无类型的JavaScript。也就是说,TS的所有优点都保留在编码器的便利级别,并且不影响性能。相比之下,Dart是本机键入的。编程语言是在社区的支持下积极开发的。您可以在Dart上编写更多的结构化代码,这意味着您可以创建更复杂的应用程序和层次结构。

优秀的文档


对于那些想使用Internet上的新平台的人,有视频教程,他们考虑了在线使用代码的可能性。由Google领导的社区已制定了全面的说明和指南。此外,网络甚至具有从React Native切换到Flutter的现成配方。你可以在这里看到它当然,也有关于React Native的文档,但是由于诸如“ removeClippedSubviews-这可能会提高大型列表的滚动性能”之类的描述,它通常是无用的。Flutter社区采用了更为严肃的文档编制方法。

统一界面


React Native的众所周知的优势是能够同时进行多个平台的开发。但是,没有人能保证,如果不使用文件最后完成操作,您将立即获得相同的接口。相比之下,用Flutter编写的应用程序在iOS和Android上的外观和工作方式相同。我们的程序员从未像在Android上那样重写代码来使应用程序在iOS上运行。对于React Native,一切都不同。这种改进必须以令人羡慕的规律性来完成。

支持大量平台


Flutter已经支持Android,iOS和Web。从社区中的讨论来看,将很快提供对MacOS,ChromeOS和Windows的支持。而且,最有趣的是,Flutter已经支持未来的Google Fuchsia平台。因此,任何开发都可以立即移植到新的OS。

开发者工具


我要说明的最后一件事是开发的DevTools。Flutter拥有良好的开发人员工具生态系统。您可以在这里查看它们顺便说一句,Facebook正在尝试做类似的事情,但是据我们所知,RN到目前为止只有DevTools的beta版,而且就功能而言,它们还没有Flutter的同类产品。

代码示例


例如,下面是代码“ Hello,World!”。用于React Native和Flutter框架

// React Native
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>Hello world!</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center'
  }
})

这是这段代码在Flutter中的样子

// Flutter
import 'package:flutter/material.dart';

void main() {
  runApp(
    Center(
      child: Text(
        'Hello, world!',
        textDirection: TextDirection.ltr,
      ),
    ),
  );
}

Flutter有什么缺点吗?


当然是。 Flutter是一个年轻的平台。没有足够的现成的解决方案。为了进行比较,同一React Native已经有很多现成的模板,配方,实现选项。

在Flutter上编写UI会花费更多时间。而且Dart代码的编写过程更长。在React Native中,应用程序是作为Web组件的构造函数构建的。 Flutter仍然需要彻底的编程。

此外,Flutter需要更深入的编程技能。对于React Native,您可以将开发委托给任何具有Java Script知识的专家。使用Dart,事情变得更加复杂,因为该语言的入门门槛比JS高。程序员必须接受更深入的培训。

但与此同时,Flutter上开发人员的空缺仍然很小。俄罗斯公司对新平台还没有信心。但是,这并不妨碍我们对该框架进行部分开发。到目前为止,结果并不只是正面的。如果您有使用Flutter开发的经验,请在评论中分享您的印象。

All Articles