Roteiro Altamente Subjetivo para Desenvolvimento com Flutter

Roteiro Altamente Subjetivo para Desenvolvimento com Flutter

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.

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

Ps: Com o tempo vou atualizando o artigo e adicionando mais coisas, então já salva se for importante pra você é claro.

Muito obrigada!

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *