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)
-
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.