
Mas então, o que é Flutter? No site oficial, temos a seguinte definição: "O Flutter é o SDK de aplicativos para dispositivos móveis do Google para criar interfaces nativas de alta qualidade no iOS e Android em tempo recorde. O Flutter funciona com código existente, é usado por desenvolvedores e organizações em todo o mundo e é gratuito e de código aberto.".
Quando você cria aplicativos usando Java ou Kotlin na IDE Android Studio, você criar aplicativos nativos, mas que rodam apenas no Android. Ou seja, se você quiser criar o mesmo aplicativo para o iOS da Apple, você teria que desenvolver um novo app do zero, usando Objective-C ou Swift com a IDE XCode. Para contornar esse problema, existem diversos frameworks no mercado em que é possível escrever um único código (às vezes não dá pra aproveitar tudo dependendo do framework) para gerar apps para sistemas operacionais diferentes. Dentre eles, podemos citar o Ionic, Xamarin, React Native e muitos outros. Para Ionic e React Native você utiliza a linguagem javascript, enquanto que para Xamarin você utiliza C#. O Flutter utiliza a linguagem Dart, que é uma linguagem desenvolvida pela Google cujo objetivo inicial era substituir o javascript. Vou deixar para falar mais da Dart em uma próxima aula.
Dentre os frameworks citados, o mais novo é o Flutter, pois foi lançado em 2017. Por isso que ele ainda não possui uma comunidade tão grande quanto os demais, mas, em compensação, ele veio com características incríveis que servirão de atratativo para construir uma comunidade muito grande nos próximos anos. Aqui vão algumas características do Flutter:
1) O Flutter, por usar Dart como linguagem, utiliza a compilação ahead of time (AOT) que é ótimo para desenvolver aplicações fluídas rodando com alto fps (frame per second), o que significa dizer que dificilmente a tela do app irá congelar ou travar, pois a tela é desenhada e redesenhada muito rapidamente. O React Native, por exemplo, por usar javascript, utiliza a compilação just in time (JIT) que pode ser um problema caso se queira criar aplicações que rodem a 60fps com animações;
2) O Flutter não precisa de Bridge ou de intermediários. O React Native, por usar javascript, precisa usar uma ponte para fazer a comunicação com a plataforma nativa, o que pode ser mais uma gargalo. O Ionic, por exemplo, utiliza uma WebView para apresentar o app para o usuário. Já o Flutter implementa seus próprios componentes, sem utilizar os componentes nativos, o que faz dispensar o uso de intermediários.
3) É possível programar em Flutter utilizando as IDEs: IntelliJ IDEA, Android Studio e o Visual Studio Code. Além desses, dá pra usar em editores como o Atom. O Android Studio já é um velho conhecido dos programadores de Android nativo, que, assim como o IntelliJ, é produzido pela empresa JetBrains. O Visual Studio Code é feito pela Microsoft e, portanto, é mais conhecido pelos desenvolvedores C#. O VSCode é a IDE mais leve dentre as principais opções, mas também é um pouco menos completa.
4) No Flutter, tudo é Widget! Na programação tradicional para Android, as telas são criadas geralmente em XML e as regras e lógica do app são feitos em Java ou Kotlin. Já no Flutter é feito tudo em Dart e tudo junto, então, não existe essa separação de visual usando o XML. Os desenvolvedores da Google afirmam que essa é uma maneira melhor de fazer o trabalho, entretanto, isso ainda é algo discutido pela comunidade.
5) Hot reload - o Flutter mostra rapidamente as mudanças no código sem ter que recompilar todo o código novamente, graças ao hot reload. Ao se utilizar o hot reload, o código passa a ser compilado momentaneamente em JIT para que seja possível executar tal funcionalidade.
Nas próximas aulas iremos conhecer mais a linguagem Dart entendendo suas características e fazendo um Hello World. Até a próxima!
Lindo, uma simples palavra para definir e esse review fantástico. Posso publicar um link para seu Blog no meu Blog?
ResponderExcluirwww.tiopen.com.br
Pode sim. Abraço!
ExcluirObrigado Raul, gostei muito. Quando você irá terminar as outras etapas do Curso?
ResponderExcluir