Pular para o conteúdo principal

Curso Flutter | Aula 1 | O que é e quais as características principais do Flutter?


Illustration with a mobile phone, a pencil, and an abstract drawing of widgets.
Fala Flutteriano! Estou de volta depois de quase vinte dias após eu ter escrito a aula 0, que inclusive é o sumário deste curso. Hoje iremos aprender o que é o Flutter e quais as suas características.

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!

Comentários

  1. Lindo, uma simples palavra para definir e esse review fantástico. Posso publicar um link para seu Blog no meu Blog?

    www.tiopen.com.br

    ResponderExcluir
  2. Obrigado Raul, gostei muito. Quando você irá terminar as outras etapas do Curso?

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Curso Flutter | Aula 0 | Sobre o Curso

Fala galera! Me chamo Raul, tenho experiência com programação para Android usando Java e Kotlin. Como gostei bastante do novo SDK lançado pela Google para criar aplicativos para Android e iOS utilizando apenas um único código, resolvi aprender Flutter! Como sei que a melhor forma de aprender é ensinando, resolvi criar este curso. No exato momento em que escrevo esta postagem, ainda não sei nada de Flutter! Minha intenção é ir aprendendo e ir montando o curso à medida em que evoluo. Portanto, meu objetivo inicial aqui será organizar as ideias de como o curso será montado: quais tópicos serão abordado e por quais meios eles serão passados. O curso de Flutter a que proponho fazer será compartilhado gratuitamente de duas maneira: por este blog de maneira escrita e por vídeos no Youtube. Um meio complementará o outro. Além disso, o curso terá as seguintes aulas: Aula 1.0 - O que é e quais as características principais do Flutter? Aula 2.0 - Conhecendo a linguagem Dart Aul

Cursos Gratuitos de Flutter e Dart

Aqui você encontrará um repositório de cursos de Flutter e Dart gratuitos. A maioria dos cursos são em inglês. Cheguei a encontrar cursos gratuitos de Flutter em alemão na udemy, mas preferi não colocar nesta lista. Caso tenha mais sugestões de cursos gratuitos, por favor, escreva nos comentários deste post, que em breve acrescentarei a lista. Vamos estudar Flutter galera! ;) Build Native Mobile Apps with Flutter by Google (inglês) https://www.udacity.com/course/ud905 Dart Academy Boot Camp (inglês) https://da-bootcamp.firebaseapp.com/?course=start_programming_dart The Complete Flutter App Development Course for Android, iOS (inglês) https://www.udemy.com/the-complete-flutter-app-development-course-for-android-ios/ Meu mini-curso (português) http://raulfmiranda.blogspot.com/2018/10/curso-flutter-sobre-curso.html   Flutter Crash Course (inglês) https://fluttercrashcourse.com/ Learn Flutter - Beginners Course (inglês) https://www.udemy.com/learn-flutter-beginn

Dicas para Freelancer

Neste post estou reunindo constantemente informações importantes para quem é ou deseja se tornar um freelancer. É importante escolher um nicho de mercado que passe pela seguinte intersecção: paixão + demanda + habilidade. Texto a ser lido:  Freelancer Android . Ferramentas para auxilar na escolha do nome do negócio: NameMesh , DomainR e DomainScope . Sites para registrar domínios: RegistroBr e GoDaddy . Sites de hospedagem com Wordpress: BlueHost e One .  Sites e apps de design para criar uma cover photo para sua página no Facebook (social media) e também criar currículos, logotipos e etc: Canva , Posteroid e Adobe Comp CC . Ferramenta para gerenciamento de tarefas: Asana . Dá para editar regras no Asana para os clientes, apenas poderem visualizar as informações. Banco de imagens gratuitas: Pexels  e Unsplash . Sites de Freelancer:  Workana , Crowd ,  Freelancer ,  99freelas , Fiverr , Upwork  e  GetNinjas . Melhor cobrar um preço por projeto em vez de por hora. Cob