8 vantagens do Flutter em comparação com o React Native

O desenvolvimento móvel depende cada vez mais do desenvolvimento nativo, mas do uso de estruturas que ajudam a criar aplicativos para várias plataformas ao mesmo tempo. Hoje, quero dizer algumas palavras sobre o Flutter, que está gradualmente começando a conquistar o mercado com o React Native. Detalhes - sob o corte.



Quando o projeto de desenvolvimento de um aplicativo móvel é iniciado, é necessário tomar uma decisão sobre qual plataforma programaremos. Muitas vezes, essa pergunta é influenciada pelo próprio cliente, que deseja ver o software criado nativamente para cada plataforma ou, inversamente, quer economizar dinheiro e pede para desenvolver o React Native.

No site do projeto, você pode descobrir que o Flutter está usando ativamente não apenas o próprio Google, mas também algumas outras empresas. Por exemplo, Flutter escreveu o novo aplicativo The New York Times, bem como versões móveis do eBay e Aliexpress. Mas, em geral, a lista não parece muito impressionante, porque inclui não mais de 20 empresas.
imagem
No entanto, a experiência dos desenvolvedores de nossa empresa mostra que, em alguns casos, o Flutter é melhor e mais conveniente para a criação de aplicativos móveis. A mente coletiva de Neti totalizou 8 vantagens desse quadro mais jovem.

atuação


Os aplicativos desenvolvidos por vibração são executados muito mais rapidamente do que usando o React Native. As vantagens de velocidade são alcançadas através de nosso próprio mecanismo e do uso de outra linguagem de programação. Diferentemente do React Native, que funciona com pontes e a linguagem Java Script, o Flutter permite resolver rapidamente problemas de aplicativos, especialmente aqueles relacionados à interface do usuário. Compiladores nativos já estão embutidos na estrutura e o código escrito em Dart se transforma em instruções nativas para processadores ARM.

A propósito, testes comparativos interessantes foram realizados por sujeitos da InVerita. O artigo deles no Medium comparou o desempenho de aplicativos concluídos em dispositivos reais iPhone 6 e Xiaomi Redmi Note 5.

imagem

Como você pode ver, o teste de Gauss no iOS é executado no Flutter ainda mais rápido do que no Swift, e o RN mostra um atraso de 20 vezes!

imagem

No caso do Android, o Flutter exige 20% mais tempo para concluir o teste do que Java e Kotlin, mas ainda funciona 15 vezes mais rápido que o RN.

Tamanho da aplicação


Como resultado do parágrafo anterior, os aplicativos criados com base no Flutter e escritos no Dart contêm menos componentes intermediários. A compilação de instruções ARM nativas permite que você armazene nada mais. Como resultado, os próprios binários de aplicativos ocupam até duas vezes menos espaço na unidade do dispositivo do que no desenvolvimento no React Native.

Animação rápida


Em certo sentido, esse sinal de adição segue o anterior. Decidimos usar o Flutter para aplicativos com muitas animações incorporadas. O fato é que o Flutter demonstra de forma estável 60 FPS, o que significa que os usuários não precisam olhar para a imagem estremecida, como costuma ser o caso do React Native.

Linguagem de programação digitada


A base do Flutter é o Dart, uma linguagem de programação digitada já popular entre os entusiastas. No Dart, a codificação se transforma em programação orientada a objetos ... e aqui, é claro, podemos lembrar o TypeScript e argumentar que ele também é digitado. Mas, infelizmente, é transcompilado e ainda se transforma em JavaScript sem tipo. Ou seja, todas as vantagens do TS permanecem no nível de conveniência do codificador e não afetam o desempenho. O dardo, por outro lado, é tipicamente nativo. A linguagem de programação é ativamente desenvolvida, suportada pela comunidade. Você pode escrever muito mais código estrutural no Dart, o que significa que você pode criar aplicativos mais complexos e estruturas hierárquicas.

Excelente documentação


Para quem deseja lidar com a nova plataforma na Internet, existem tutoriais em vídeo, são pensadas as possibilidades de trabalhar com o código online. A comunidade liderada pelo Google desenvolveu instruções e guias abrangentes. Além disso, a rede ainda tem uma receita pronta para mudar de React Native para Flutter. Você pode vê-lo aqui . Obviamente, também existe documentação para o React Native, mas geralmente é inútil devido a descrições como "removeClippedSubviews - Isso pode melhorar o desempenho da rolagem de grandes listas". A comunidade Flutter tem uma abordagem muito mais séria à documentação.

UI de uniformidade


A vantagem bem conhecida do React Native é a capacidade de conduzir o desenvolvimento de várias plataformas ao mesmo tempo. No entanto, ninguém garante que, sem finalizar com um arquivo, você receberá imediatamente a mesma interface. Um aplicativo escrito em Flutter, por outro lado, parece e funciona da mesma forma no iOS e no Android. Nossos programadores nunca reescreveram o código para fazer o aplicativo funcionar no iOS, assim como no Android. No caso do React Native, tudo é diferente. Tais melhorias devem ser feitas com regularidade invejável.

Suporte para um grande número de plataformas


O Flutter já suporta Android, iOS e Web. A julgar pelas discussões na comunidade, o suporte para MacOS, ChromeOS e Windows estará disponível em breve. E, o mais interessante, Flutter já suporta a futura plataforma Google Fuchsia. Portanto, qualquer desenvolvimento pode ser imediatamente portado para o novo sistema operacional.

Ferramentas de desenvolvimento


A última coisa que quero observar é o DevTools desenvolvido. O Flutter possui um bom ecossistema de ferramentas para desenvolvedores. Você pode vê-los aqui . A propósito, o Facebook está tentando fazer algo semelhante, mas até onde podemos ver, o RN tem apenas uma versão beta do DevTools até agora e, por funcionalidade, eles não alcançam os equivalentes do Flutter.

Exemplo de código


Por exemplo, abaixo está o código "Olá, mundo!" para estruturas React Native e 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'
  }
})

E aqui está como esse código ficará no Flutter

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

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

Flutter tem algum contras?


Claro que eles são. Flutter é uma plataforma jovem. Não há soluções prontas suficientes para isso. Para comparação, o mesmo React Native já possui muito mais modelos prontos, receitas e opções de implementação.

Escrever uma interface do usuário no Flutter leva mais tempo. E a própria escrita do código Dart é mais longa. No React Native, um aplicativo é criado como um construtor a partir de componentes da web. O Flutter ainda requer uma programação completa.

Além disso, o Flutter exige habilidades de programação mais profundas. No caso do React Native, você pode confiar no desenvolvimento a qualquer especialista com conhecimento de Java Script. Com o Dart, as coisas são mais complicadas, pois essa linguagem tem um limite de entrada mais alto que o JS. O programador deve ter um treinamento mais aprofundado.

Mas, ao mesmo tempo, as vagas para desenvolvedores no Flutter ainda são muito pequenas. Ainda não há confiança das empresas russas na nova plataforma. No entanto, isso não nos impede de realizar parte do desenvolvimento nessa estrutura. E os resultados até agora são mais do que positivos. Se você tem experiência no desenvolvimento do Flutter, compartilhe suas impressões nos comentários.

All Articles