<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Isac</title>
    <description>The latest articles on Forem by Isac (@isacjunior).</description>
    <link>https://forem.com/isacjunior</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F227762%2Ffdfa940b-bad5-45dc-bab2-db422bafe06f.png</url>
      <title>Forem: Isac</title>
      <link>https://forem.com/isacjunior</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/isacjunior"/>
    <language>en</language>
    <item>
      <title>Introdução ao Flutter</title>
      <dc:creator>Isac</dc:creator>
      <pubDate>Wed, 11 Sep 2019 16:01:22 +0000</pubDate>
      <link>https://forem.com/isacjunior/introducao-ao-flutter-c1f</link>
      <guid>https://forem.com/isacjunior/introducao-ao-flutter-c1f</guid>
      <description>&lt;p&gt;Atualmente trabalho com desenvolvimento focado em plataforma web utilizando React, mas também já tive experiência profissional trabalhando com desenvolvimento cross-platform com &lt;strong&gt;React Native&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Recentemente eu venho em momentos livres estudando um pouco sobre Flutter e alguns amigos estão mencionando que sou vira folha. 😁&lt;/p&gt;

&lt;p&gt;Acredito que devemos sempre nos atentar a novas tecnologias para que caso necessário, tenhamos embasamento para discutir e caso necessário, tomar a decisão de qual a melhor ferramenta a ser utilizada em determinado contexto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como surgiu o Flutter?
&lt;/h3&gt;

&lt;p&gt;Ao ser perguntando como o Flutter surgiu, Eric Seidel relatou que o time do Chrome havia iniciado um experimento, onde estavam removendo alguns pedaços antigos para compatibilidade na web em busca de performance. Ao fim do experimento, eles realizaram um benchmark e tiveram a surpresa de que o experimento era vinte vezes mais rápido. Então pensaram, temos algo aqui.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que é o Flutter?
&lt;/h3&gt;

&lt;p&gt;É um SDK criado pela Google que teve o seu lançamento em 2017. O Flutter tem o intuito de ser uma tecnologia não somente cross-platform para mobile, mas que seja utilizada em todas as telas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile(iOS/Android)&lt;/li&gt;
&lt;li&gt;Web (Flutter 1.9)&lt;/li&gt;
&lt;li&gt;Desktop&lt;/li&gt;
&lt;li&gt;Embarcados&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Qual a linguagem utilizada no Flutter?
&lt;/h3&gt;

&lt;p&gt;Flutter utilizada Dart como linguagem, também criada pela Google em 2011, Dart veio com o intuito de substituir o Javascript e se tornar a linguagem padrão no mundo dos browsers. 😁&lt;/p&gt;

&lt;p&gt;Mas porque a Google escolheu &lt;strong&gt;Dart&lt;/strong&gt; como a linguagem padrão para desenvolvimento no Flutter? Eles até tentaram utilizar Javascript como linguagem, mas não foi bem sucedida. Eu vou expor alguns pontos com relação a isto, entre estes pontos, alguns são achismo e outros já possuem embasamentos técnicos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dart é do Google:&lt;/strong&gt; Isso força a escolha da linguagem. Outro ponto é que, caso realmente o Flutter se torna a principal ferramenta para desenvolvimento mobile do sistema operacional Fuchshia, o Google não cometeria o mesmo erro de escolher uma linguagem terceira para a principal plataforma mobile deles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;JIT e AOT:&lt;/strong&gt; Dart suporta as duas forma de compilação e este é uma das grandes maravilhas que a linguagem nos proporciona. A JIT(Just in Time) nos possibilidade ter um hot reaload fantástico e que traz uma experiência de desenvolvimento incrível. Já o AOT(Ahead of Time) nos da a possibilidade de lidarmos diretamente com as plataformas nativas, se comunicando com as arquiteturas ARM e x64.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Pense declarativo
&lt;/h3&gt;

&lt;p&gt;Flutter tenta trazer uma interoperabilidade para diversas plataformas e linguagens de desenvolvimento. &lt;/p&gt;

&lt;p&gt;Não trazendo uma linguagem de marcação como JSX presente no React ele proporciona uma maior familiaridade aos desenvolvedores nativos(iOS/Android). Trazendo a forma declarativa, isso torna a adptação dos desenvolvedores React/Native ainda mais fácil.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eQyU83EB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://flutter.dev/assets/development/data-and-backend/state-mgmt/ui-equals-function-of-state-54b01b000694caf9da439bd3f774ef22b00e92a62d3b2ade4f2e95c8555b8ca7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eQyU83EB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://flutter.dev/assets/development/data-and-backend/state-mgmt/ui-equals-function-of-state-54b01b000694caf9da439bd3f774ef22b00e92a62d3b2ade4f2e95c8555b8ca7.png" alt="Programação declarativa"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Programação declarativa é como descrever uma imagem, é a forma como os usuários irão visualizar a sua aplicação. Isso nos da diversos benefícios, tornando o código escrito como o real estado da aplicação.&lt;br&gt;
 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Legível:&lt;/strong&gt; É muito intuitivo você compreender um código quando ele é escrito de forma declarativa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Previsível:&lt;/strong&gt; Da mesma forma como temos a legibilidade, também temos a facilidade de prever os efeitos da aplicação.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  O que ele propõe?
&lt;/h3&gt;

&lt;p&gt;Não somente a possibilidade de termos nossa única code base em todas as telas, algo incrível que eu e vocês podemos perceber é que a experiência e curva de aprendizado do Flutter são extremamente magníficas. Como mencionamos acima, ele traz a interoperabilidade através da forma como se escrever e até mesmo em nomes de métodos que já estamos acostumados.&lt;/p&gt;

&lt;p&gt;Flutter também possui em sua essência todo o ferramental necessário para que você construa uma aplicação de qualidade sem a necessidade de uma grande variedade de bibliotecas.&lt;/p&gt;

&lt;p&gt;Alguns pontos que o Flutter nos proporciona:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvimento rápido e fácil&lt;/li&gt;
&lt;li&gt;Confiança em o que os seus usuários irão visualizar&lt;/li&gt;
&lt;li&gt;Faça features com maestria&lt;/li&gt;
&lt;li&gt;Temos o controle de cada pixel e cada gesto&lt;/li&gt;
&lt;li&gt;Criar um produto com apenas uma code base&lt;/li&gt;
&lt;li&gt;Nunca diga não ao seu designer&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Widgets
&lt;/h3&gt;

&lt;p&gt;Você já deve ter escutado isso em algum lugar: Tudo em Flutter é Widget.&lt;/p&gt;

&lt;p&gt;Baseado nos componentes do React, Widgets são pequenos elementos que irão integrar toda a sua árvore de Widgets, os elementos em conjunto então irão formar e representar o estado de toda a sua aplicação.&lt;/p&gt;

&lt;p&gt;Aqui também possuímos dois Widgets essenciais para o desenvolvimento com Flutter, &lt;strong&gt;StatelessWidget&lt;/strong&gt; e &lt;strong&gt;StatefulWidget&lt;/strong&gt;. Os nomes já sugerem o que cada um faz e iremos mostrar aqui um pequeno exemplo de cada um deles.&lt;/p&gt;

&lt;p&gt;StatelessWidget: Um widget que não possui estado.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Também existe a possibilidade de que ele receba as informações e se torne ainda mais fácil de ser reutilizável.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;StatefulWidget:&lt;/strong&gt; Diferente do widget anterior, neste caso podemos manter e manipular um determinado estado. O mesmo será responsável por realizar a mutação deste estado e realizar um rebuild caso o estado sofra alterações.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  Comunidade
&lt;/h3&gt;

&lt;p&gt;Caso você seja um entusiasta e realmente queira que o Flutter deslanche ainda mais isto depende de você/nós. Precisamos que a comunide se engage criando conteúdos, solucionando problemas e expondo a forma como eles foram solucionados. &lt;/p&gt;

&lt;p&gt;Caso você empresa/startup esteja utilizando Flutter, faça como o Nubank, anunciaram recentemente que eles irão utilizar Flutter para desenvolvimento de seus produtos e isso deu um grande avanço na comunidade Flutter do Brasil.&lt;/p&gt;

&lt;p&gt;A comunidade é a chave essencial e crucial para a maturidade e permanência de uma determinada tecnologia no mercado.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>reactnative</category>
    </item>
  </channel>
</rss>
