<?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>DEV Community: Jonatas Santos</title>
    <description>The latest articles on DEV Community by Jonatas Santos (@jsaintz).</description>
    <link>https://dev.to/jsaintz</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%2F183493%2F52fb2e88-ee68-46f5-8496-ec11829f901d.png</url>
      <title>DEV Community: Jonatas Santos</title>
      <link>https://dev.to/jsaintz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jsaintz"/>
    <language>en</language>
    <item>
      <title>Bem vindo ao Deno</title>
      <dc:creator>Jonatas Santos</dc:creator>
      <pubDate>Thu, 21 May 2020 22:30:32 +0000</pubDate>
      <link>https://dev.to/deno/bem-vindo-ao-deno-4bd5</link>
      <guid>https://dev.to/deno/bem-vindo-ao-deno-4bd5</guid>
      <description>&lt;p&gt;Olá meus queridos, sejam todos bem vindos, iremos falar sobre o novo framework Deno.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;O que é o Deno?&lt;/b&gt;&lt;br&gt;
Deno é um ambiente de execução para JavaScript e TypeScript baseado no V8, engine de JavaScript do Google Chrome e  na linguagem de programação Rust. Foi criado por &lt;a href="https://en.wikipedia.org/wiki/Ryan_Dahl" rel="noopener noreferrer"&gt;Ryan Dahl&lt;/a&gt;, criador original do Node.js, e é focado em segurança e produtividade.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Principais características&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seguro por padrão. Sem acesso a arquivos, redes ou ambientes (a menos que seja explicitamente ativado).
&lt;/li&gt;
&lt;li&gt;Possui um runtime &lt;a href="https://www.typescriptlang.org" rel="noopener noreferrer"&gt;TypeScrip&lt;/a&gt;
Os scripts podem ser agrupados em um único arquivo JavaScript.&lt;/li&gt;
&lt;li&gt;Construído em &lt;a href="https://www.rust-lang.org" rel="noopener noreferrer"&gt;Rust&lt;/a&gt; (o núcleo do Deno foi escrito em Rust, &lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;Node&lt;/a&gt; e 
&lt;a href="https://sourceforge.net/projects/orwelldevcpp/" rel="noopener noreferrer"&gt;C++&lt;/a&gt;), &lt;a href="https://tokio.rs" rel="noopener noreferrer"&gt;Tokio&lt;/a&gt; (loop de eventos) e &lt;a href="https://v8.dev" rel="noopener noreferrer"&gt;V8&lt;/a&gt; (runtime JavaScript)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Deno é mais seguro?&lt;/b&gt;&lt;br&gt;
Qualquer código no Node tem o poder de acessar as suas informações como sua rede,HD entre outros. Por outro lado, no Deno o seu código é executado em uma sandbox(semelhante a uma maquina virtual), focado em segurança por padrão.&lt;br&gt;
Ou seja, se você não der permissão, um código malicioso não poderá acessar suas informações. Isso se assemelha ao JavaScript nos navegadores, que só pode acessar câmera se o usuário der permissão.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;TypeScript Integrado&lt;/b&gt;&lt;br&gt;
O Deno não interpreta apenas JavaScript. Ele também interpreta TypeScript sem que você precise instalar nem configurar nada.&lt;/p&gt;

&lt;p&gt;Essa decisão foi baseada no crescimento do uso do TypeScript em grandes projetos que precisam lidar com complexas lógicas de negócio.  &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Promises em todo lugar&lt;/b&gt;&lt;br&gt;
O JavaScript é famoso por sua natureza assíncrona. Porém, o Node foi criado antes do JavaScript possuir coisas como Promises e Async/Await.&lt;br&gt;
Como resultado da evolução do JavaScript em união da linguagem Rust, o Deno tem um moderno sistema baseado em Promises. Isso nos permite trabalhar mais facilmente com código assíncrono, nesse caso todas ações assíncronas retornaram uma &lt;a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise" rel="noopener noreferrer"&gt;Promise.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Preparando o ambiente Windows&lt;/b&gt;&lt;br&gt;
Agora vamos a instalação que é bem simples, acesse a &lt;a href="https://deno.land" rel="noopener noreferrer"&gt;Documentação&lt;/a&gt;.&lt;br&gt;
Como estou utilizando o Windows, vou instalar via Powershell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;iwr&lt;/span&gt; &lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//deno.land/x/install/install.ps1 -useb | iex&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;b&gt;Subindo o Server&lt;/b&gt;&lt;br&gt;
No site oficial temos um pequeno trecho de código em TypeScript que nos mostra como é muito simples para subir um pequeno servidor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ES Modules&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;serve&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://deno.land/std@0.50.0/http/server.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;//Cria o Server&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;serve&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8000&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;http://localhost:8000/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Async iterador para atender solicitações do servidor &lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;respond&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;h1&amp;gt;Hello World&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para executar essa aplicação usamos o comando em nosso terminal&lt;br&gt;
&lt;code&gt;➜ deno run server.ts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Opsss Deu ruim!!!&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.ibxk.com.br%2F2016%2F03%2F21%2F21195301079074.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.ibxk.com.br%2F2016%2F03%2F21%2F21195301079074.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isto ocorre porque como comentei acima as medidas de segurança do Deno interferem na execução do nosso arquivo server.ts com a seguinte mensagem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="err"&gt;➜&lt;/span&gt;  &lt;span class="nx"&gt;Deno&lt;/span&gt; &lt;span class="nx"&gt;deno&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ts&lt;/span&gt; 
&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Uncaught&lt;/span&gt; &lt;span class="nx"&gt;PermissionDenied&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;network&lt;/span&gt; &lt;span class="nx"&gt;access&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0.0.0.0:8000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;again&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nx"&gt;allow&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;net&lt;/span&gt; &lt;span class="nx"&gt;flag&lt;/span&gt;
    &lt;span class="nx"&gt;at&lt;/span&gt; &lt;span class="nf"&gt;unwrapResponse &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$deno$&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dispatch_json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;43&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;at&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendSync &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$deno$&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dispatch_json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;72&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;at&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$deno$&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;51&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;at&lt;/span&gt; &lt;span class="nf"&gt;listen &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$deno$&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;152&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;at&lt;/span&gt; &lt;span class="nf"&gt;serve &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//deno.land/std@0.50.0/http/server.ts:261:20)&lt;/span&gt;
    &lt;span class="nx"&gt;at&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;///mnt/e/projects/Deno/server.ts:3:16&lt;/span&gt;
&lt;span class="err"&gt;➜&lt;/span&gt;  &lt;span class="nx"&gt;Deno&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso acontece porque por regra de segurança ele nos "força" a conceder o acesso a rede, impedindo que isso aconteça automaticamente como no Node.&lt;/p&gt;

&lt;p&gt;Para que esse acesso possa acontecer precisamos incluir a tag --allow-net no nosso comando, passando a ser executado dessa maneira:&lt;br&gt;
&lt;code&gt;➜ deno run --allow-net server.ts&lt;/code&gt;&lt;br&gt;
Se tudo ocorreu corretamente  ele vai retornar a seguinte mensagem &lt;br&gt;
&lt;code&gt;Compile file:///mnt/e/projects/Deno/server.ts&lt;br&gt;
http://localhost:8000/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.buzzfeed.com%2Fbuzzfeed-static%2Fstatic%2Fenhanced%2Fwebdr01%2F2013%2F3%2F4%2F18%2Fanigif_enhanced-buzz-1798-1362441596-19.gif%3Fdownsize%3D600%3A%2A%26output-format%3Dauto%26output-quality%3Dauto" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.buzzfeed.com%2Fbuzzfeed-static%2Fstatic%2Fenhanced%2Fwebdr01%2F2013%2F3%2F4%2F18%2Fanigif_enhanced-buzz-1798-1362441596-19.gif%3Fdownsize%3D600%3A%2A%26output-format%3Dauto%26output-quality%3Dauto"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bom este foi um tutorial bem básico do novo framework Deno, para mais informações olhem a &lt;a href="https://deno.land" rel="noopener noreferrer"&gt;Documentação&lt;/a&gt; e faça parte do nosso grupo para mais novidades. &lt;/p&gt;

&lt;p&gt;Acompanhe nossos canais de conteúdo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCCnvFA6ZShN67V54UsytH0g" rel="noopener noreferrer"&gt;Youtube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/DenoLandBR" rel="noopener noreferrer"&gt;Pagina Facebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/groups/denobr" rel="noopener noreferrer"&gt;Grupo Facebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.gg/Z35yKzN" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>deno</category>
      <category>javascript</category>
      <category>typescript</category>
      <category>node</category>
    </item>
    <item>
      <title>Instalando Flutter no Windows</title>
      <dc:creator>Jonatas Santos</dc:creator>
      <pubDate>Thu, 19 Sep 2019 16:49:09 +0000</pubDate>
      <link>https://dev.to/flutterfans/instalando-o-flutter-no-windows-2aj4</link>
      <guid>https://dev.to/flutterfans/instalando-o-flutter-no-windows-2aj4</guid>
      <description>&lt;p&gt;Olá meus queridos, sejam todos bem vindos a está saga sobre Flutter,onde iremos abordar desde á instalação até o desenvolvimento de Apps.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Então vamos nessa&lt;/b&gt;&lt;br&gt;
Primeiro vamos conheçer um pouco sobre o Flutter e em seguida iremos iniciar a instalação do SDK no anbiemte Windows.&lt;/p&gt;

&lt;p&gt;O Flutter é um SDK open-source da Google para o desenvolvimento de aplicativos nativos para iOS e Android, também é o principal método de criação de apps para o Google Fuchsia (novo sistema operacional em desenvolvimento que pretende substituir o Android).&lt;br&gt;
Neste artigo, veremos o passo a passo da instalação do Flutter no Windows, para que possamos começar a brincar e construir nossos primeiros apps.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Pré-requisitos&lt;/b&gt;&lt;br&gt;
Para instalar o flutter no Windows, você precisar ter uma maquina com os seguintes requisitos:&lt;br&gt;
Sistema operacional Windows 7 SP1 ou mais atual na versão 64bits.&lt;br&gt;
400 MB de espaço em disco para a instalação do SDK.&lt;br&gt;
Windows PowerShell 5.0 ou mais recente.&lt;br&gt;
Git for Windows versão 2.0 ou superior.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando o SDK&lt;/b&gt;&lt;br&gt;
&lt;b&gt;1º passo:&lt;/b&gt; Baixe o SDK do Flutter e extraia-o.&lt;br&gt;
&lt;a href="https://flutter.dev/docs/get-started/install/windows" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;2º passo:&lt;/b&gt; Extraia o arquivo baixado e coloque a pasta “flutter” no diretório de sua preferencia, ex.: C:\src\flutter. A documentação não aconselha instalar o Flutter em um diretório como C:\Program Files\ para evitar problemas com falta de permissão.&lt;br&gt;
Após esse passo, já é possível acessar o comando flutter e todos os comandos disponíveis executando o arquivo “flutter_console.bat”. Você também pode acessar o Flutter à partir de qualquer terminal ou prompt de comando.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FCVpD2rI.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FCVpD2rI.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;3º passo:&lt;/b&gt; Adicione o Flutter à variável PATH do sistema. Para tal, copie o caminho até o diretório \bin, existente na pasta “flutter”. No Windows Explorer, clique com o botão direito em “Este computador” e acesse a opção “Propriedades”. Em seguida vá em “Configurações avançadas do sistema” → “Variáveis de ambiente”. No text field “Variáveis de usuário”, clique na variável PATH → “Novo”, e cole o caminho para o diretório \bin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FGJqq9BC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FGJqq9BC.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando dependências&lt;/b&gt;&lt;br&gt;
Agora que o SDK está instalado e o Flutter foi adicionado à variável de ambiente PATH, podemos utilizar o comando &lt;b&gt;flutter doctor&lt;/b&gt; em qualquer terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FFSjLLAv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FFSjLLAv.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O &lt;b&gt;flutter doctor&lt;/b&gt; é o comando responsável por verificar se existem dependências do Flutter a serem instaladas. Além disso, ele retorna um relatório (Doctor Summary) sobre o status da instalação contendo as dependências que faltam, como instalá-las, problemas encontrados e como resolvê-los.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando o Android Studio&lt;/b&gt;&lt;br&gt;
Para instalar o Android Studio acesse esse &lt;a href="https://developer.android.com/studio/" rel="noopener noreferrer"&gt;link&lt;/a&gt;, baixe e instale a versão mais recente. A instalação é bem simples e direta, do tipo “Next-Next-Finish”.&lt;/p&gt;

&lt;p&gt;Ao concluir o processo de instalação e utilizar o comando novamente, o Doctor Summary trará outra mensagem, informando que há licenças do Android que não foram aceitas. Para resolver isso, utilize o comando: flutter doctor --android-licenses e aceite todas as licenças digitando “y” no console para todas as opções.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%252Ajz38rMbRI2p8lVRyaUKMqQ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%252Ajz38rMbRI2p8lVRyaUKMqQ.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Testando a instalação&lt;/b&gt;&lt;br&gt;
Agora chegou a parte onde iremos começar os testes, vamos criar um projeto, compilá-lo e executá-lo. Para tanto, assegure que há um dispositivo conectado ao computador, e que as opções de desenvolvedor foram ativadas nele . Em seguida, digite o comando flutter create , para criar um novo projeto, e entre na pasta criada.&lt;/p&gt;

&lt;p&gt;Agora execute o comando:&lt;b&gt;flutter run&lt;/b&gt; dentro pasta onde foi criado o projeto, e aceite a instalação no seu dispositivo para que seja possível compilar e executar o projeto da imagem abaixo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FNvwvMDj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FNvwvMDj.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora só alegria pois o Flutter está instalado e configurado corretamente.&lt;br&gt;
Agora já podemos começar a brincar.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Alguns comando essenciais: &lt;/b&gt;&lt;br&gt;
&lt;b&gt;flutter create =&lt;/b&gt; cria um novo projeto com toda a estrutura padrão de pastas, código boilerplate e testes.&lt;br&gt;
&lt;b&gt;flutter run =&lt;/b&gt; compila e dá build no projeto.&lt;br&gt;
&lt;b&gt;flutter run -d  =&lt;/b&gt; compila e dá build em um dispositivo específico.&lt;br&gt;
&lt;b&gt;flutter install =&lt;/b&gt; instala o projeto Flutter no dispositivo conectado.&lt;br&gt;
&lt;b&gt;flutter packages get =&lt;/b&gt; adiciona dependências ao projeto.&lt;br&gt;
&lt;b&gt;flutter test =&lt;/b&gt; executa teste unitário.&lt;br&gt;
&lt;b&gt;flutter doctor =&lt;/b&gt; mostra informações do processo de instalação do Flutter.&lt;br&gt;
&lt;b&gt;flutter devices =&lt;/b&gt; lista todos os dispositivos conectados, com informações como: nome do dispositivo, id do dispositivo e versão do Android .&lt;br&gt;
&lt;b&gt;s =&lt;/b&gt; realiza uma captura de tela do aplicativo em execução e a armazena na pasta do projeto.&lt;br&gt;
&lt;b&gt;r =&lt;/b&gt; realiza hot reload do projeto.&lt;br&gt;
&lt;b&gt;shift + r =&lt;/b&gt; realiza hot restart do projeto.&lt;br&gt;
&lt;b&gt;q =&lt;/b&gt; encerra o projeto.&lt;br&gt;
&lt;b&gt;flutter help =&lt;/b&gt; lista estes e todos os outros comandos disponíveis para serem executados com Flutter.&lt;/p&gt;

</description>
      <category>dart</category>
      <category>flutter</category>
      <category>google</category>
      <category>development</category>
    </item>
  </channel>
</rss>
