Roteiro Altamente Subjetivo para Desenvolvimento com Flutter

Suami Rocha
Flutter Brasil
Published in
8 min readApr 19, 2024

Roteiro Altamente Subjetivo para Desenvolvimento com Flutter

1

Independentemente de estar usando o Android Studio ou o VSC, dedique tempo para aprender atalhos e plugins da IDE. Investir algumas horas nisso vai valer a pena a longo prazo, economizando tempo e esforço. Vale a pena aprender o Flutter CLI, já que algumas tarefas são mais rápidas de serem realizadas pela linha de comando.

Também é importante desenvolver o hábito de usar um sistema de controle de versão o mais cedo possível. O Git é atualmente a opção mais popular. Embora usar a linha de comando possa parecer legal, recomendo utilizar um cliente Git amigável como Fork, Sourcetree, ou um integrado à sua IDE.

2

É importante seguir o estilo de código, mas se você é totalmente novo nisso, pode adicionar frustração, então sinta-se à vontade para pular isso por agora, mas retorne a ele mais tarde.

O manual “Effective Dart” é o caminho a seguir. Use um linter rigoroso como o very_good_analysis desde o início.

Quando se trata de Programação Orientada a Objetos (OOP) e Programação Funcional, é melhor começar com o básico. Não se preocupe com padrões complexos ou conceitos como monads por enquanto. Concentre-se em aprender os fundamentos e desenvolver suas habilidades gradualmente.

3

Assista ao Widget of the Week no Youtube, explore os conceitos de Material Design, e familiarize-se com os widgets básicos do Flutter que estão sendo disponibilizados.

O programa Package of the Week irá apresentar alguns dos widgets e pacotes de terceiros mais populares disponíveis para o Flutter.

4

Os padrões de design são os blocos de construção para desenvolver aplicações robustas. Compreender esses padrões é essencial para o desenvolvimento avançado e para obter um entendimento mais profundo do próprio framework. Além disso, esses padrões são universais e não específicos para nenhum framework ou linguagem de programação em particular. Portanto, investir tempo em estudá-los é uma escolha sábia para o trabalho de desenvolvimento futuro. Para começar a aprender sobre padrões de design, o antigo livro “Gang of Four” é um ótimo recurso.

5

Manter o princípio KISS (Keep It Simple, Stupid) e DRY (Don’t Repeat Yourself) como foco tático durante o desenvolvimento de software é importante, mas também é essencial construir sobre uma base sólida de princípios estratégicos como SOLID. O livro “Clean Code” de Uncle Bob é um recurso valioso que ajudará em todas essas áreas. Sugiro usar Provider ou get_it para injeção de dependência. Se estiver se sentindo aventureiro e quiser experimentar geração de código, o pacote injectable é uma excelente opção.

6

É importante entender como funciona a comunicação entre front-end e back-end e os detalhes por trás das redes. Utilize a geração de código em produção.

Retrofit, Dio e Json Serializable são ótimos aliados aqui.

Se você estiver interessado em GraphQL, experimente o Ferry.

7

Armazenar dados é um requisito comum para quase todo aplicativo, mas nem todo aplicativo precisa de uma solução de armazenamento extensa. Em muitos casos, é melhor manter as coisas simples e usar persistência básica quando for suficiente. O plugin shared_preferences, ou suas alternativas, podem ser uma boa opção a considerar para esse propósito.

8

Quando você precisa aumentar a capacidade de armazenamento dos seus dados, pode ser hora de considerar soluções mais maduras, ou até mesmo opções baseadas em nuvem.

9

Está tudo bem desenvolver aplicativos com Provider, desde que você siga alguns acordos ou padrões arquiteturais. Você pode querer mudar para flutter_bloc, flutter_mobx, async_redux, ou outros padrões mais conscientes da arquitetura.

Suami: Leve em consideração que packages não oficiais podem depender de seus respectivos mantenedores e que por isso pode cair em desuso ou sofre falta de atualizações. (Importante levar em consideração para o tipo de projeto).

10

Quando se trata de escrever aplicativos rapidamente, a chave é escrevê-los corretamente desde o início. Para fazer isso, comece com a abordagem TDD (Test Driven Development) e depois faça a transição para BDD (Behavior Driven Development). O livro de Kent Beck, “Test Driven Development by Example”, é um ótimo recurso para começar com TDD. Além disso, a série “Clean Code” do Uncle Bob cobre o tópico em profundidade.

11

Aprender o desenvolvimento nativo de aplicativos móveis pode ajudá-lo a obter uma compreensão mais profunda da plataforma subjacente, o que pode ser valioso para corrigir problemas com bibliotecas de terceiros ou desenvolver seus próprios plugins. Para começar, faça o curso da Udacity para Android e o curso de Stanford para iOS. FFIgen e JNIgen nos ajudarão a acessar seu código nativo.

12

Agora é hora de entender como o async/await realmente funciona e por que o stateless é benéfico. O uso de pacotes como freezed pode ajudar a melhorar o gerenciamento de modelos, enquanto fpdart ou dartz podem tornar seu código mais elegante. Para um entendimento mais profundo, recomendo fazer um curso básico sobre Closure de C#.

13

Criar seu próprio plugin pode ser um desafio emocionante! Se estiver se sentindo confiante, desafie-se criando um plugin com uma visualização nativa. E se isso não for o bastante, certifique-se de testar minuciosamente seu plugin e garantir que não haja vazamento de memória. É uma excelente maneira de expandir suas habilidades e contribuir para a comunidade de desenvolvimento. Boa sorte!

14

Entender como encontrar vazamentos de memória e identificar problemas de desempenho é crucial para o desenvolvimento eficiente de aplicativos. Você pode começar assistindo a uma palestra de Filip Hracek sobre esse tema no Flutter Europe, disponível no YouTube. Isso fornecerá uma base sólida para melhorar a qualidade e o desempenho dos seus aplicativos Flutter.

15

Para obter um entendimento mais profundo do framework, reserve um tempo para aprender sobre o pipeline de renderização do Flutter e como ele organiza seus widgets. Confira recursos como “Flutter’s Rendering Pipeline” de Ian Hickson para começar. Isso ajudará você a compreender melhor o funcionamento interno do Flutter e a otimizar o desempenho de seus aplicativos.

16

Descobrir que alguém roubou seu aplicativo e o publicou sob um nome diferente seria desanimador e frustrante. O MASVS (Mobile Application Security Verification Standard) pode ajudá-lo a considerar e abordar diferentes cenários de segurança, incluindo esse. Além disso, o freeRASP é uma maneira simples, embora não suficiente por si só, de proteger seu aplicativo contra várias ameaças de segurança. Ao implementar medidas de segurança adequadas, você pode ajudar a proteger seu aplicativo e os dados dos usuários contra esses tipos de ataques e violações de segurança.

17

Ao aproveitar o poder do Flutter, você pode criar aplicativos que não são limitados pelas restrições dos smartphones — não se esqueça de explorar também desktop e web.

Se estiver interessado no desenvolvimento full stack, frameworks como dart_frog podem valer a pena conferir. Eles oferecem uma abordagem abrangente para o desenvolvimento de aplicativos, cobrindo tanto o frontend quanto o backend, utilizando a linguagem Dart em toda a pilha de tecnologia. Isso pode proporcionar uma experiência de desenvolvimento mais integrada e eficiente para projetos complexos.

18

Evite construir builds de produção a partir da pasta de desenvolvimento local. Em vez disso, considere usar ferramentas como Codemagic, Travis, GitHub Actions, Circle CI, ou registrar sua máquina de desenvolvimento como um nó CI para GitLab CI. Construir um ciclo de vida de desenvolvimento de software e coletar cobertura de código e outras métricas ajudará a manter a qualidade do código. Confira o Danger, SonarQube e, mais importante, FastLane. Um linter estrito é indispensável aqui. Isso garantirá que seu código esteja em conformidade com padrões de codificação consistentes e ajudará a detectar problemas potenciais antes que eles se tornem problemas reais.

19

A análise é essencial para entender como os usuários interagem com seu aplicativo e para tomar decisões orientadas por dados. Firebase Analytics, Firebase Crashlytics e DataDog são apenas algumas das muitas plataformas que oferecem recursos de análise gratuitamente. Ao usar essas ferramentas, você pode acompanhar o desempenho do seu aplicativo, identificar problemas e oportunidades de melhoria e tomar decisões informadas para melhorar a experiência do usuário.

20

Você tem a responsabilidade de orientar seus clientes sobre o que é possível e o que não é em termos de conformidade legal. Isso inclui o cumprimento das leis de privacidade, como GDPR e CCPA, além de aderir às políticas e diretrizes da loja de aplicativos. É fundamental garantir que seu aplicativo esteja em conformidade com todas as regulamentações relevantes e políticas da plataforma para evitar problemas legais e garantir a confiança dos usuários.

Links

Ambiente de desenvolvimento

  • Android Studio Shortcuts — Atalhos para acelerar o desenvolvimento no Android Studio.
  • VSCode Shortcuts for Windows, macOS — Atalhos para acelerar o desenvolvimento no VSCode.
  • Flutter CLI — Explicação detalhada de todos os comandos Flutter CLI.
  • Dart CLI — Explicação detalhada de todos os comandos Dart CLI (dart fix pode ser bastante útil no desenvolvimento diário).
  • DartPad — Uma ferramenta para criar conteúdo educacional eficaz e envolvente para usuários de Dart e Flutter.
  • DartPad Documentation — Documentação do DartPad em dart.dev.
  • Zapp! — Ambiente sandbox on-line gratuito para criar e compartilhar aplicativos Dart e Flutter, com suporte a todos os pacotes pub.dev, análise estática, incorporação, visualização e muito mais.
  • Interactive Git learning online — Aprenda comandos git de forma interativa no site learngitbranching.

Linguagem

Widgets Básicos

Core Design Patterns

Princípios Core Design

Networking

Persistência Simples

Database

Arquitetura

Teste

Outras linguagens

Dart

Package Manager

Profiling

Flutter Interno

Segurança

Integração Continua

Analytics — Análises Métricas

Store — Loja

Agora finalmente você é um desenvolvedor(a) Flutter Senior! Parabéns.

Muito obrigada!

Roteiro Altamente Subjetivo para Desenvolvimento com Flutter
por Oleksandr Leushchenko (@olexale)
traduzido para PT-BR por Suami Rocha

Faça uma cópia da imagem no figma:
https://www.figma.com/community/file/1362804868277413920/roadmap-flutter-2024

--

--