Como convencer um cliente ou empresa a usar o Flutter

Olá Habr! Apresento a você a tradução do inglês. Pitching Flutter para os artigos de sua empresa ou cliente (autor Wm Leler )

Mais de um ano se passou desde a publicação do artigo O que é revolucionário sobre Flutter (e esse material ainda é relevante). Quando escrevi esse artigo, apenas alguns desenvolvedores de dispositivos móveis ouviram falar sobre o Flutter, mas desde então muita coisa mudou. Agora não tenho tempo para acompanhar o fluxo de novos artigos e vídeos que aparecem nessa comunidade ativa e em constante evolução . Os desenvolvedores descobriram o Flutter e são loucos por isso . Aqui está um exemplo de aplicativo da Reflectly criado com o Flutter :


Smart Reflectly Diary App

Costumo ouvir dos desenvolvedores o quão difícil é convencer os gerentes da empresa - ou clientes, se estamos falando de uma agência ou freelancer - a experimentar o Flutter. Os tomadores de decisão não estão prontos para mudar para a tecnologia mais recente apenas porque é de ponta. Como regra, eles entendem o problema, mas a pilha de tecnologia é apenas parte de seu trabalho. É importante que eles saibam que o uso de novas ferramentas ajudará sua empresa a ter mais sucesso no mercado, por exemplo, atrair novos consumidores ou reduzir riscos.

Este artigo destina-se a:

  • desenvolvedores que desejam explicar os benefícios do uso do Flutter no gerenciamento da empresa. Mesmo se você estiver familiarizado com essa estrutura, ainda precisará de argumentos convincentes a seu favor;
  • desenvolvedores que estão pensando em criar seu próprio produto no Flutter.

Este artigo também discutirá os motivos pelos quais o Flutter pode não ser adequado para um aplicativo específico, o que o ajudará a tomar uma decisão informada.

O que é flutter?


Slogan Flutter (conciso e falando):
Crie aplicativos nativos estéticos em tempo recorde!

Esse slogan consiste em quatro partes, cada uma das quais deve ser considerada separadamente:

  1. Criação de aplicativo
  2. Estética
  3. Natividade
  4. Gravar datas

1. Crie um aplicativo


Agora, o Flutter está preso para o desenvolvimento de aplicativos móveis para iOS e Android. Mas a maneira como é vista a longo prazo se destaca no contexto das estruturas móveis existentes: o Flutter não é apenas uma estrutura, é um SDK completo para a criação de aplicativos que usam a tela. Isso significa que o Flutter tem tudo o que você precisa para criar uma interface com o usuário, incluindo uma ferramenta de visualização e elementos que requerem renderização (widgets na terminologia do Flutter).

O Flutter tem muito em comum com mecanismos de jogos como Unity ou Unreal , que também fornecem suas próprias ferramentas de visualização. A diferença é que o Flutter é usado para criar aplicativos , não jogos.

O fato de o Flutter ser um SDK completo significa que ele pode ser portado para quase qualquer dispositivo que tenha um monitor. O renderizador Flutter usa o Skia, um popular mecanismo gráfico de código aberto usado em várias plataformas.


Tremulação na área de trabalho e Raspberry Pi

Enquanto nos concentramos em aplicativos móveis no Google, várias empresas transportaram o Flutter para computadores desktop (macOS, Windows, Linux e outros), TVs (aqui você pode ver como o Flutter funciona na Nvidia Shield TV ) e também no Raspberry Pi. O Flutter é usado até na construção de interfaces de usuário para o Fuchsia .

Gradualmente, os aplicativos aparecerão fora dos telefones celulares. O acesso a aplicativos em vários dispositivos ao mesmo tempo se tornará familiar: incluindo assistentes domésticos (Google Home Hub, Lenovo Smart Display etc.), displays interativos em carros, eletrodomésticos (como geladeiras), acessórios (relógios, roupas) e outras IdC -dispositivos.

Já em 2017, 8,4 bilhões desses dispositivos foram registrados on-line e, de acordo com a previsão da International Data Corporation , até 2020, seu número será superior a 30 bilhões (em relação a 5 bilhões de telefones celulares). No entanto, muitos desses dispositivos terão telas interativas. A arquitetura Flutter possui todos os ingredientes para criar interfaces de usuário bonitas e funcionais para novos dispositivos.


Em todos os lugares telas!

E, é claro, o Flutter é totalmente gratuito e de código aberto.

2. Estética


Você pode garantir o sucesso do seu aplicativo móvel se ele concorrer com 3,8 milhões de aplicativos na Google Play Store e 2 milhões na Apple App Store ? Mesmo se você conseguir convencer o usuário a baixar o seu aplicativo, a chance de ele ativamente usá-lo 30 dias depois é de apenas 3%! Empresa de consultoria Gartner Inc. afirmou que apenas 0,01% de todos os aplicativos publicados são bem-sucedidos financeiramente. Em tal situação, a ajuda não será supérflua.

Segundo a pesquisa, ter um design atraente desempenha um papel enorme . Se você observar os aplicativos móveis mais populares dos últimos anos, verá que cada um deles possui um design estético exclusivo. Além disso, aplicativos bonitos ganham prêmios e ganham fama, o que é especialmente valioso.


Alibaba (esquerda) e Topline (direita)


2Dimensões

Os principais exemplos de aplicativos Flutter incluem aplicativos da Alibaba (a maior empresa de comércio eletrônico do mundo), o aplicativo de gravação de áudio Abbey Road Studios Topline e uma demonstração do incrível aplicativo 2Dimensions para criar animações em tempo real .

Mais e mais empresas estão se esforçando para garantir que seus aplicativos móveis correspondam à marca corporativa, assim como seus sites ou aplicativos da web. Por sua vez, isso requer um alto nível de personalização .

No final, os designers geralmente oferecem idéias criativas que são altamente erodidas no momento em que são implementadas devido às limitações das ferramentas. Graças ao Flutter, você pode implementar qualquer design para sua aplicação.

Outros exemplos podem ser encontrados no site oficial do Flutter, bem como em It's All Widgets . Entre eles, você encontrará o aplicativo diário Reflectly , que citei como exemplo no início do artigo. Eu recomendo que você se familiarize com esse aplicativo incomum fazendo o download para o seu smartphone Android ou Apple na loja de aplicativos. Além disso, leia um artigo sobre a experiência deles ao mudar para o Flutter .

3. Natividade


Este item deve ser intrigante para desenvolvedores de dispositivos móveis. No desenvolvimento móvel, o termo "aplicativo nativo" é frequentemente usado para se referir a um aplicativo que acessa a API da plataforma diretamente usando idiomas específicos. E para confundir completamente todos, em estruturas como React Native e Xamarin, o termo "nativo" significa que eles podem usar os widgets da plataforma.

Em outras áreas do desenvolvimento, esse termo não se aplica como em dispositivos móveis. Por exemplo, você pode instalar o Linux em computadores executando Windows ou macOS (e muitos outros), mas não chamará o Windows ou macOS de "nativo" e o Linux um sistema operacional "multiplataforma" ou "híbrido". Nós consideramos o Linux tão nativo quanto o Windows ou o macOS, porque é .

Uma definição mais precisa de "nativo" no desenvolvimento é assim:
Destinado ou incorporado ao sistema especificado, especialmente no significado do idioma associado a este processador, computador ou compilador, bem como aos programas nele escritos.
Os aplicativos Flutter são compilados no código da máquina nativa ( ARM ) imediatamente no iOS e Android.

As vantagens de usar aplicativos nativos são mais do que suficientes: elas são executadas mais rapidamente e, mais importante, funcionam mais estáveis ​​e sofrem menos com atrasos ou frenagens (o congelamento é feio). Além disso, aplicativos nativos dão ao desenvolvedor mais controle sobre o comportamento de seu aplicativo.

Para obter todos os benefícios dos aplicativos nativos, os desenvolvedores móveis normalmente escreviam dois aplicativos separados usando conjuntos de ferramentas e idiomas separados. Freqüentemente, duas equipes de desenvolvimento separadas que precisam se coordenar precisam trabalhar nesses projetos. Essa abordagem aumenta significativamente os custos de desenvolvimento, aumenta os riscos e aumenta o prazo do produto. O Flutter, por outro lado, permite que os desenvolvedores juntem esforços para escrever uma única base de código, unam equipes de desenvolvimento, reduzam riscos e aceleram o tempo de lançamento de aplicativos no mercado - tudo isso combinado com as vantagens do aplicativo nativo.


Qual desses aplicativos é nativo? Ambos!

Mas e os widgets? Devido ao fato de o Flutter operar com seus próprios widgets , pode parecer que os aplicativos escritos nele parecerão diferentes dos aplicativos escritos em widgets e ferramentas de plataforma.

A animação GIF acima mostra como a janela de configurações escrita no iOS se parece com a interface semelhante escrita no Flutter. Apesar das pequenas diferenças no nível de pixel, o Flutter simplifica bastante a criação de telas que parecem e são nativas.

Não devemos esquecer que mesmo um aplicativo nativo geralmente parece diferente dependendo da versão do sistema operacional. Em essência, o Flutter não precisa ser "pixel perfeito".

Os widgets Flutter se adaptam à plataforma de destino, fornecendo ao aplicativo a aparência certa, incluindo ícones, paleta de cores, layout, fontes, comportamento de rolagem e muito mais. A principal tarefa do Flutter é criar aplicativos fáceis de usar que também atendam aos princípios de design de uma plataforma específica.

A renderização de alta qualidade dos aplicativos escritos em Flutter é garantida pelo fato de serem exibidos diretamente na tela da plataforma. Isso é possível devido ao fato de o Flutter ter a funcionalidade de um SDK completo. Portanto, seu aplicativo não depende de alterações em widgets, fontes e outros elementos da plataforma.



O uso do Flutter elimina o uso de bibliotecas de suporte . Por exemplo, esse aplicativo Flutter em execução em um telefone com o sistema operacional Android Jelly Bean (4.1.2) usa widgets de um design de material, embora o próprio telefone tenha sido lançado dois anos antes de aparecer . Obviamente, o telefone não possui widgets embutidos de design de material. Seja como for, seu aplicativo Flutter funcionará exatamente como em um dispositivo mais moderno e ficará incrível.

Se não fosse pelo Flutter, você teria que resolver esses problemas por conta própria. Isso significa a necessidade de testes mais detalhados em versões mais antigas do sistema operacional e a solução alternativa para plataformas que não fornecem acesso aos elementos usados ​​no aplicativo. Ouvimos constantemente dos desenvolvedores que o Flutter simplifica incrivelmente o processo de teste.

Além das vantagens de aplicativos nativos, o Flutter tem outras vantagens:

  • Os aplicativos escritos no Flutter também serão executados em versões mais antigas do sistema operacional de qualquer plataforma. Em particular, se você estiver testando seu aplicativo Flutter em uma nova versão do Android, ele será exatamente o mesmo nas versões mais antigas. Isso permite que esses aplicativos funcionem bem em telefones mais antigos e economiza tempo durante o teste.
  • Novas versões de sistemas operacionais não poderão interromper seu aplicativo (isso é extremamente raro e, como regra, é um bug no Flutter e não no seu aplicativo).
  • Seu aplicativo não estará sujeito a alterações devido a modificações no SO do fabricante ou fornecedor (o exemplo mais comum é alterar a fonte padrão).
  • Mais importante ainda, o Flutter oferece controle total sobre a aparência do aplicativo em todas as plataformas e sistemas operacionais, até o último pixel .
  • Se desejar, você pode fazer com que seu aplicativo Flutter pareça diferente no iOS e Android. Mesmo se não o fizer, os próprios widgets do Flutter se ajustarão aos princípios de design de cada plataforma.


O Flutter permite que você faça tudo isso usando uma única base de código para ambas as plataformas. Ou você pode adicionar código nativo para cada plataforma em um aplicativo Flutter, se desejar.

4. Record datas


Por fim, o Flutter também é bom porque permite desenvolver aplicativos melhores ainda mais rapidamente . O recurso mais popular (e hype) do Flutter é a reinicialização a quente com estado. Ele impressiona não apenas com a velocidade (leva menos de um segundo), mas também com a preservação do estado, ou seja, se você alterar o código profundamente no aplicativo, após a recompilação, não será necessário recriar manualmente o último estado do aplicativo para ver o resultado.


Reinicialização com estado!

Essa reinicialização foi possível graças à avançada tecnologia de compilação (desenvolvida pelos criadores dos compiladores V8 para JavaScript e Strongtalk for Smalltalk), além do fato de o Flutter ser nativo e construído com visualizações atualizadas de maneira reativa.

Além de acelerar os processos, muitos desenvolvedores observam que o Flutter está alterando seriamente seu estilo de trabalho: eles podem criar novos layouts em duas contas e fazer as alterações necessárias diretamente na presença dos clientes.

Também vemos um efeito positivo no trabalho de designers que obtêm exatamente o que precisam. Assim, eles podem jogar com parâmetros diferentes até encontrar a opção perfeita. De fato, os designers que usam CSS em aplicativos da Web afirmam que é fácil o suficiente para descobrir como fazer alterações no layout do Flutter.

Para saber mais sobre como o Flutter funciona, consulte este registro de desenvolvimento de aplicativos em tempo real. Você também pode participar do hackathon para ver com que rapidez você pode aprender o Flutter e criar um aplicativo funcional nele.

Conforme mencionado no parágrafo anterior, os aplicativos Flutter exigem menos testes, o que significa que você pode adicionar novas funcionalidades muito mais rapidamente. Aqui está o que o JD.com diz sobre sua experiência com o Flutter:
Conseguimos criar a mesma funcionalidade, usando apenas metade da equipe de desenvolvimento. Com o mesmo número de engenheiros, podemos adicionar mais recursos em uma única versão.

Alibaba também observa que o uso do Flutter reduziu o tempo médio necessário para adicionar novos recursos de um mês para duas semanas.


Hamilton app

Falando em registros. No aplicativo Hamilton, os desenvolvedores fizeram uma grande mudança à noite, na véspera do lançamento, sem sombra de dúvida sobre sua estabilidade! E esse aplicativo, escrito em cerca de três meses, foi apresentado em ambas as lojas de aplicativos. Além disso, o Flutter facilita muito a adição regular de novos recursos para estimular o interesse do usuário.

E assim, um aplicativo móvel bem-sucedido é criado.


O Flutter torna a atualização de widgets tão rápida e fácil quanto a criação e modificação de aplicativos. Frequentemente ouvimos receios de que seja difícil acompanhar o Flutter com as atualizações de widget da plataforma. No entanto, quando a Apple anunciou seu novo iPhone X com seu famoso recorte na tela, o Flutter conseguiu adicionar suporte para esse recorte mesmo antes do início das vendas.

E isso se aplica não apenas ao iOS. Quando o Google anunciou um design de material substancialmente reprojetado para E / S 2018, Flutter já havia recebido uma atualização para incorporar totalmente novas idéias. Foi a capacidade de Flutter de personalizar rapidamente que tornou isso possível.

Recebemos regularmente comentários de desenvolvedores que afirmam que, graças ao Flutter, eles começaram a trabalhar 2-3 vezes mais eficientemente e que seus aplicativos como um todo se tornaram mais bem-sucedidos.

Riscos e limitações


Não há soluções inflexíveis e o Flutter não é exceção. Aqui estão algumas razões pelas quais o Flutter pode não ser a melhor ferramenta para um aplicativo específico.

Devido ao fato de os aplicativos Flutter conterem widgets Flutter e sua própria ferramenta de visualização, eles são um pouco maiores que os aplicativos que utilizam ferramentas incorporadas à plataforma. Até recentemente, o tamanho mínimo de um aplicativo Flutter era de 6,7 MB, mas agora o tamanho foi reduzido para 4 MB . Planejamos realizar mais otimizações no futuro.

Uma das vantagens mais importantes do Flutter é a capacidade de usar uma única base de código ao desenvolver aplicativos para ambas as plataformas móveis (o Flutter também é adequado para criar aplicativos para uma plataforma). No entanto, existem aplicativos vinculados a uma plataforma específica ou agindo como um wrapper para a apresentação fornecida pela plataforma. Um exemplo é um aplicativo em execução no encadeamento em segundo plano para exibir notificações. Esses aplicativos também podem ser escritos em Flutter, mas isso não dará vantagens especiais.

Muitas vezes nos perguntam se o Flutter permanecerá no mercado. Há muitas razões pelas quais declaramos com confiança: sim . Em primeiro lugar, o próprio Google é um usuário fiel do Flutter, tanto no desenvolvimento de aplicativos para consumidores quanto em programas internos, em particular, o aplicativo móvel do Google Ads, lançado recentemente (anteriormente chamado de AdWords), foi escrito em Flutter. O Google suporta totalmente o Flutter e faz de tudo para torná-lo bem-sucedido.

Em segundo lugar, devido ao fato de que aplicativos grandes geralmente eram desenvolvidos para duas plataformas não relacionadas, as empresas consideraram menos arriscado, por exemplo, primeiro lançar um aplicativo para iOS e criar um aplicativo Android mais tarde, se houver demanda. Com o Flutter, você pode liberar aplicativos simultaneamente para ambas as plataformas . Assim, você não apenas reduz os riscos devido à identidade de suas funcionalidades, mas também expande o mercado potencial para sua aplicação. O Android se beneficia muito com isso.

Há outro problema em potencial: o Flutter é uma estrutura relativamente nova. Naturalmente, o Flutter precisará de algum tempo para criar as ferramentas necessárias, expandir a funcionalidade e desenvolver a comunidade.Hoje, as plataformas têm funcionalidades que o Flutter ainda não implementou. Ao mesmo tempo, o Google está constantemente trabalhando para adicionar novos recursos ao Flutter.

Se você quiser se aprofundar no Flutter, use os artigos O que é revolucionário sobre o Flutter e Por que o Flutter usa o Dart . Você também pode visualizar os resultados de nossa pesquisa mais recente com usuários do Flutter.

Por onde começar


Se você decidir experimentar o Flutter, aqui estão algumas dicas úteis:

  1. Este guia o ajudará a instalar o Flutter, configurar o editor e criar o primeiro aplicativo de teste.
  2. Confira esses vídeos do Flutter .
  3. , Android , iOS , React Native Xamarin .
  4. , : Building Layouts in Flutter , Add Interactivity , A Tour of the Flutter Widget Framework ( ).
  5. Flutter , FAQ .
  6. It's All Widgets . , . Flutter-.
  7. Flutter, Flutter Weekly .
  8. Google Codelabs Flutter , , , Flutter Udacity.
  9. .

Participe da comunidade Flutter no Twitter , Gitter e Stack Overflow . Eu recomendo assinar a lista de discussão Flutter Dev . Como alternativa, você pode encontrar o Flutter Meetup ou Study Jam local e descobrir se há algum hackathons de desenvolvimento móvel nas proximidades em que você possa participar.

Conclusão


Portanto, o Flutter permite o desenvolvimento de aplicativos em alta velocidade, o que aumenta sua produtividade e ajuda a criar aplicativos de melhor qualidade. Este é um conjunto de ferramentas expressivo, extremamente flexível e altamente personalizável que oferece ao desenvolvedor controle total sobre seu produto. O Flutter cria aplicativos nativos rápidos e estáveis ​​para iOS e Android usando uma única base de código.

O Flutter economiza seu dinheiro e reduz o risco. É gratuito e de código aberto. Com isso, o Flutter ajuda você a ganhar mais dinheiro. Isso é possível porque você entra em dois mercados ao mesmo tempo: aplicativos Android e iOS e cria aplicativos melhores em menos tempo.

Talvez o feedback mais lisonjeiro dos desenvolvedores seja que o desenvolvimento móvel com o Flutter é divertido! Isso é incrível: 92% dos desenvolvedores que usam o Flutter dizem que ele satisfaz totalmente suas necessidades. Não esqueça que esta pesquisa foi realizada antes do lançamento da versão 1.0, e o número de usuários satisfeitos está em constante crescimento!

Finalmente, Flutter é orientado para o futuro. Essa é a única ferramenta de desenvolvimento móvel nativa que suporta visualizações reativas. Este é um paradigma de programação que ajuda a criar aplicativos melhores usando recursos incríveis, como reinicialização com estado super rápida. E, devido ao fato de o Flutter ser um SDK completo, ele manterá sua relevância por um longo tempo, juntamente com o desenvolvimento de novas plataformas.

Source: https://habr.com/ru/post/pt433456/


All Articles