Bem vindo ao Dart-Flutter-101

Resumão de Dart & Flutter

Tópicos abordados neste repo:

  • Fundamentos de Dart (Tipos, Null-safety, Controle de fluxos, Operadores, Classes, Generics, Async)
  • Fundamentos de Fluter (Como o flutter funciona debaixo dos panos? O primeiro app, Estruturas basicas e componentes padrão do Flutter, principais dúvidas)
  • Gerenciamento de estado (Stateless, Statefull, InheritedWidget, Streams, Bloc)
  • Cozy, FeatureFlag, Arquitetura TFA, Dependency Injection (Modular & CompositionRoot)

Sobre o Dart

  • Desenvolvida pela Google: A linguagem Dart foi desenvolvida pela Google e é usada em vários projetos internos, incluindo o framework Flutter. Curiosidade: Criada inicialmente para substituir o javascript na web!

  • Orientada a objetos: Dart é uma linguagem orientada a objetos, e todos objetos herdam de Object.

  • Tipagem estática opcional: Dart permite a tipagem estática opcional, o que significa que você pode optar por especificar tipos de variáveis, mas também pode usar a tipagem dinâmica.

  • Dart é compilada: O código Dart é compilado em código nativo ou JavaScript, tornando-o adequado para o desenvolvimento tanto de aplicativos para dispositivos móveis quanto de aplicativos web. Pode ser compilada em ahead-of-time (AOT) e just-in-time (JIT). Compilação ahead-of-time é quando o código é compilado diretamente para ARM nativo, o que possibilita a performance de uma aplicação nativa. Just-in-time compila o código diretamente no device, com a aplicação em execução, o que permite um retorno em tempo real da alteração e aumenta a velocidade do ciclo de desenvolvimento. Este ponto é chamado de hot-reload.

  • Suporte a assíncrono: Dart tem suporte nativo para programação assíncrona, tornando-o ideal para lidar com tarefas que envolvem operações de I/O, como chamadas de API e manipulação de arquivos.

  • Framework Flutter: Uma das aplicações mais populares de Dart é o Flutter, um framework de código aberto para desenvolvimento de aplicativos móveis multiplataforma. Com o Flutter, você pode criar aplicativos para iOS, Android, Desktop e web usando Dart.

  • Hot Reload: O Flutter oferece a funcionalidade "Hot Reload", que permite que os desenvolvedores vejam as mudanças instantaneamente em seus aplicativos enquanto estão desenvolvendo, acelerando o ciclo de desenvolvimento.

  • Comunidade crescente: A comunidade de desenvolvedores Dart está crescendo, especialmente devido ao sucesso do Flutter. Isso significa que há uma abundância de recursos, bibliotecas e suporte disponíveis para os desenvolvedores.

  • Multiplataforma: Além do desenvolvimento de aplicativos móveis, Dart também pode ser usado para criar aplicativos web, aplicativos de linha de comando e até mesmo para programação de servidores.

  • DartPad: O DartPad é uma ferramenta online que permite que você escreva e execute código Dart diretamente no navegador, sem a necessidade de configurar um ambiente de desenvolvimento.

  • Licença open source: Dart é uma linguagem de código aberto, o que significa que você pode usá-la livremente e contribuir para o seu desenvolvimento.

  • Facilidade de aprendizado: Dart é conhecida por sua sintaxe simples e limpa, o que a torna relativamente fácil de aprender, especialmente para aqueles que já têm experiência em programação.

  • Compatibilidade com JavaScript: Você pode usar Dart para escrever código que seja executado no navegador, compilando-o para JavaScript. Isso torna Dart uma opção interessante para desenvolvimento web.

  • Depuração eficiente: Dart oferece ferramentas robustas de depuração que facilitam a identificação e correção de erros no código.