{"id":9548,"date":"2020-03-12T20:45:00","date_gmt":"2020-03-12T23:45:00","guid":{"rendered":"https:\/\/geekblogti.wpengine.com\/?p=9548"},"modified":"2024-09-24T18:00:26","modified_gmt":"2024-09-24T21:00:26","slug":"um-guia-completo-de-react-native","status":"publish","type":"post","link":"https:\/\/www.geekhunter.com/pt/blog\/um-guia-completo-de-react-native\/","title":{"rendered":"Um guia completo de React Native"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">O desenvolvimento mobile est\u00e1 super aquecido e o Facebook n\u00e3o poderia ficar para tr\u00e1s com seu pr\u00f3prio framework. React Native \u00e9 um framework para o desenvolvimento mobile relativamente novo, mas que j\u00e1 tem n\u00famero de usu\u00e1rios e hist\u00f3rico de projetos de respeito.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Nesse guia completo de React Native, veremos em detalhes, o poder dessa tecnologia, um framework <strong><a href=\"https:\/\/geekblogti.wpengine.com\/linguagem-javascript-um-guia-para-iniciantes\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"JavaScript  (abre numa nova aba)\">JavaScript <\/a><\/strong>para cria\u00e7\u00e3o de aplica\u00e7\u00f5es nativas para dispositivos m\u00f3veis.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>O que \u00e9 React Native?<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">React Native \u00e9 um projeto open source mantido pelo Facebook que, percebendo um volume de aplica\u00e7\u00f5es sendo criadas, resolveu lan\u00e7ar sua pr\u00f3pria solu\u00e7\u00e3o em 2015.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Mesmo com pouco tempo de lan\u00e7amento, possui grandes cases de sucesso que s\u00e3o desenvolvidas com seu ambiente de programa\u00e7\u00e3o.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Seu conceito principal \u00e9 a utiliza\u00e7\u00e3o de componentes para construir interfaces, baseado em React para renderizar nativamente, aplica\u00e7\u00f5es para Android e para iOS.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">&#8220;<em>Learn Once, Write Anywher<\/em>e&#8221; ou, em portugu\u00eas, aprenda uma vez e escreva em qualquer lugar. Obedecendo esse dilema, React Native cumpre muito bem a promessa de desenvolver para Android e iOS com a mesma base de c\u00f3digo.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Te indico esse artigo, caso fique em d\u00favida para escolher <strong><a href=\"https:\/\/geekblogti.wpengine.com\/ionic-vs-react\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Ionic ou React Native (abre numa nova aba)\">Ionic ou React Native<\/a><\/strong>.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>Por que usar React Native?<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Trata-se de uma nova tecnologia mas j\u00e1 demonstra grande popularidade, sua aceita\u00e7\u00e3o no universo de desenvolvimento foi r\u00e1pida.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ter sido lan\u00e7ada pelo Facebook \u00e9 um dos motivos, mas permitir desenvolver utilizando apenas JavaScript na cria\u00e7\u00e3o, manipula\u00e7\u00e3o, desenvolver elementos em tela, inputs de texto, bot\u00f5es e quaisquer itens\u00a0do projeto, encapsular todo c\u00f3digo nativo \u00e9 a principal vantagem na escolha de tecnologia de projeto.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>React Native vs <a href=\"https:\/\/geekblogti.wpengine.com\/introducao-ao-flutter-o-framework-do-google\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Flutter (abre numa nova aba)\">Flutter<\/a><\/strong><\/h2>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"600\" height=\"400\" class=\"wp-image-10056\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/06\/flutter-reactnative.png\" alt=\"React Native vs Flutter\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/flutter-reactnative.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/flutter-reactnative-150x100.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/flutter-reactnative-100x67.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/flutter-reactnative-450x300.png 450w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>\r\n<figcaption>Que comece a batalha!<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Quanto \u00e0s tecnologias h\u00edbridas, o React Native cria componentes nativos em tela, n\u00e3o cria web views em <strong><a href=\"https:\/\/geekblogti.wpengine.com\/tudo-sobre-html-para-front-ends\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"HTML (abre numa nova aba)\">HTML<\/a><\/strong>, IS, CSS, n\u00e3o sendo uma biblioteca h\u00edbrida, e assim, renderizando componentes nativos.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>Gigantes que utilizam React Native\u00a0<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Buscando desenvolver uma aplica\u00e7\u00e3o que d\u00ea a seus usu\u00e1rios uma experi\u00eancia nativa com alta performance, o React Native \u00e9 lan\u00e7ado com essa proposta.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esses resultados s\u00e3o comprovados quando vemos nomes como, Facebook Ads, Uber Eats, AirBnB, Discord, Instagram, Walmart desenvolverem aplica\u00e7\u00f5es escal\u00e1veis e com altos n\u00edveis de exig\u00eancia.\u00a0<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" class=\"wp-image-10059\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/06\/reactnative-1024x398.png\" alt=\"empresas que usam react native \" \/>\r\n<figcaption><br \/>Empresas que usam React Native<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Reunindo todas as vantagens de uma aplica\u00e7\u00e3o nativa de fluxo de desenvolvimento similar a web e com f\u00e1cil portabilidade entre plataformas e dispositivos, se provou uma das melhores solu\u00e7\u00f5es para o desenvolvimento mobile.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Programar em React Native<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Tornar-se um desenvolvedor \u00e9 uma tarefa que exige plano e dedica\u00e7\u00e3o. Temos a facilidade da consulta da informa\u00e7\u00e3o que, ao mesmo tempo, se n\u00e3o houver organiza\u00e7\u00e3o, dificulta e tardia os resultados.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Por isso, \u00e9 importante:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Ordenar os conte\u00fados;<\/li>\r\n<li>Delimitar prazos;<\/li>\r\n<li>Montar ciclos que trabalham fundamentos e pr\u00e1tica de exerc\u00edcios;<\/li>\r\n<li>Relacionar teoria com a pr\u00e1tica;<\/li>\r\n<li>Montar pr\u00e1ticas com cen\u00e1rios reais.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Estes s\u00e3o os m\u00e9todos que eu consegui montar o meu processo de estudos, colhi resultados com maior agilidade e motiva\u00e7\u00e3o para estudar e desenvolver projetos mais desafiadores.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Q<strong>uais os desafios que eu vou enfrentar para fazer um app em React Native?<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Desenvolver um aplicativo, em qualquer linguagem, requer alguns cuidados, como analisar onde quero chegar com essa solu\u00e7\u00e3o em rela\u00e7\u00e3o \u00e0 performance, escalabilidade, usabilidade.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Mas, independente da decis\u00e3o, configurar o ambiente de programa\u00e7\u00e3o e gerir o progresso de desenvolvimento s\u00e3o fundamentais para um resultado esperado.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Visto isto, manter ferramentas com comunica\u00e7\u00e3o facilitada, de prefer\u00eancia, que comp\u00f5em o mesmo universo de tecnologia, ajuda e muito!<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Al\u00e9m de ter uma comunidade forte que colaboram muito para evoluir. Esses s\u00e3o pontos importantes para impulsionar o in\u00edcio da cria\u00e7\u00e3o de um projeto em React Native.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>Ferramentas para configura\u00e7\u00e3o do ambiente de Desenvolvimento\u00a0<\/strong><\/h2>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\"><strong>Editores\u00a0<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Os editores s\u00e3o as ferramentas utilizadas para programar, organizar as pastas do projeto, configurar depend\u00eancias e todos outros detalhes de projeto.\u00a0<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"602\" height=\"316\" class=\"wp-image-10064\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/06\/1_hello_world_app.png\" alt=\"projeto com react native\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/1_hello_world_app.png 602w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/1_hello_world_app-150x79.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/1_hello_world_app-100x52.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/1_hello_world_app-600x315.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/1_hello_world_app-450x236.png 450w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/>\r\n<figcaption>Exemplo de c\u00f3digo usando React Native<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O editor de c\u00f3digo que utilizo para constru\u00e7\u00e3o das minhas apps mobile \u00e9 o <strong><a href=\"https:\/\/geekblogti.wpengine.com\/melhores-extensoes-para-visual-studio-code-em-2020\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Visual Studio Code (abre numa nova aba)\">Visual Studio Code<\/a><\/strong> da Microsoft.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Possibilita ter recursos como autocomplete, debugging e outras features presentes apenas em IDE&#8217;s. O <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"VSCode  (abre numa nova aba)\">VSCode <\/a><\/strong>n\u00e3o \u00e9 obrigat\u00f3rio e voc\u00ea pode utilizar o que preferir. Dentre os que eu recomendo est\u00e3o: Visual Studio Code, <a href=\"https:\/\/www.sublimetext.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Sublime Text (abre numa nova aba)\"><strong>Sublime<\/strong> <strong>Text<\/strong><\/a>, <strong><a href=\"https:\/\/atom.io\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Atom (abre numa nova aba)\">Atom<\/a><\/strong>, <strong><a href=\"https:\/\/www.vim.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Vim (abre numa nova aba)\">Vim<\/a><\/strong>.\u00a0<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\"><strong>Emuladores<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para testar nossas aplica\u00e7\u00f5es em dispositivos reais iremos utilizar emuladores que s\u00e3o apps que imitam o funcionamento de um dispositivo f\u00edsico dentro do nosso\u00a0sistema.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Um ponto desfavor\u00e1vel para Windows e no Linux \u00e9 que ainda n\u00e3o \u00e9 poss\u00edvel configurar um emulador de iOS de forma nativa.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para termos um ambiente de desenvolvimento para Android iremos instalar a<strong><a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" SDK do Android  (abre numa nova aba)\"> SDK do Android <\/a><\/strong>com ferramentas adicionais para executarmos nossa app em um emulador.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ao fim desse guia, voc\u00ea tamb\u00e9m poder\u00e1 emular sua aplica\u00e7\u00e3o em seu dispositivo f\u00edsico utilizando USB. O ambiente Android pode ser configurado no Mac OS X, Linux e Windows<em>.\u00a0<\/em><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Utilizaremos o <strong><a href=\"https:\/\/www.genymotion.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Genymotion  (abre numa nova aba)\">Genymotion <\/a><\/strong>como emulador do Android.\u00a0<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"wp-image-10073\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/03\/genny-1024x516.png\" alt=\"\" \/>\r\n<figcaption>Genymotion com React Native<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Escolhemos o Genymotion pelo fato de ser mais est\u00e1vel e r\u00e1pido, mas voc\u00ea pode escolher utilizar o emulador do Android Studio. Antes de instalar o Genymotion vamos instalar o<a href=\"https:\/\/www.virtualbox.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" VirtualBox (abre numa nova aba)\"> VirtualBox<\/a>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para ambientes Linux basta executar o seguinte comando no terminal:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo apt-get install virtualbox\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para ambientes Mac OS X ou Windo<em>w<\/em>s voc\u00ea pode <a href=\"https:\/\/www.virtualbox.org\/wiki\/Downloads\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"instal\u00e1-lo (abre numa nova aba)\"><strong>instal\u00e1-lo<\/strong><\/a> ou optar por instalar junto com o Genymotion.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora vamos acessar o site do Genymotion e clicar no bot\u00e3o &#8220;Download Genymotion Personal Edition&#8221;.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O Genymotion vai pedir que voc\u00ea crie\u00a0uma conta na plataforma, realize esse processo e depois voc\u00ea poder\u00e1 baixar o software.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, em ambientes Mac OSX ou Windows, basta instalar o software e abri-lo atrav\u00e9s de seus execut\u00e1veis.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso esteja no Linux, precisamos realizar um processo a mais: extraia o arquivo .bin baixado do site do Genymotion em uma pasta de sua escolha e acesse-a via terminal.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Acesse a pasta do arquivo extra\u00eddo execute o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>chmod +x genymotion-2.2.2 x64.bin\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>.\/g<\/em>enymotion-2.2.2 x64.bin\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Com isso, o Genymotion ser\u00e1 instalado em seu sistema e voc\u00ea j\u00e1 pode acess\u00e1-lo a partir da pasta de instala\u00e7\u00e3o.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Por padr\u00e3o a pasta que o Genymotion \u00e9 instalado \u00e9 <code>\/home<em>\/<\/em>[usuario]<em>\/<\/em>genymotion\/<\/code>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Acesse essa pasta pelo terminal e execute o seguinte comando para abrir o Genymotion:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>.\/ge<\/em>nymotion\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Como o Genymotion aberto, vamos acessar as preferences e clicar no bot\u00e3o Settings. Na aba Account fa\u00e7a login com sua conta criada no site do Genymotion.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"659\" height=\"551\" class=\"wp-image-10077\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/06\/login.png\" alt=\"\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/login.png 659w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/login-150x125.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/login-100x84.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/login-600x502.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/login-450x376.png 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/login-646x540.png 646w\" sizes=\"(max-width: 659px) 100vw, 659px\" \/>\r\n<figcaption>Exemplo de Sign In no Genymotion<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ap\u00f3s realizado login, ainda no menu Settings, na aba ADB, precisamos informar o caminho da nossa SDK do Android.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Selecione a op\u00e7\u00e3o Use Custom Android SDK Tools no Genymotion e utilize o caminho onde voc\u00ea extraiu os arquivos baixados do site do Android anteriormente. Por exemplo: <code>C:\\Android Sdk ou\u00a0Android\/Sdk<\/code>.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, fechando as configura\u00e7\u00f5es, voltando a tela principal do Genymotion para adicionar o emulador espec\u00edfico.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em>V<\/em>ou utilizar um Samsung Galaxy S8 &#8211; 7.0.0 API 24 mas aqui voc\u00ea pode selecionar a op\u00e7\u00e3o que mais lhe agradar, tente utilizar sempre\u00a0<em>v<\/em>ers\u00f5es mais recentes do Android.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Selecione a op\u00e7\u00e3o e clique em Next.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Depois disso ele ir\u00e1 te pedir um nome para o emulador, coloque o que preferir ou deixe o padr\u00e3o.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Depois disso clique em Next novamente e aguarde o download das depend\u00eancias. Ao acabar o processo voc\u00ea ter\u00e1 um novo emulador na lista inicial do Genymotion:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Com dois cliques em cima do Emulador ser\u00e1 poss\u00edvel executar o ambiente Android.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso voc\u00ea receba algum erro durante esse processo, recomendo executar a m\u00e1quina virtual do Android diretamente pelo VirtualBox pois dessa forma voc\u00ea ter\u00e1 o log de inicializa\u00e7\u00e3o do ambiente que conter\u00e1 qualquer poss\u00edvel erro.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A \u00faltima etapa \u00e9 conectar o emulador ao ADB, pelo IP do dispositivo. Para verificar o IP do dispositivo, basta esticar a janela do emulador, o IP estar\u00e1 no t\u00edtulo da janela. No terminal, rode o comando.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>adb connect IP DO SEU EMULADOR:5555\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Logo ap\u00f3s, rode:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>adb devices\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se aparecer o nome do seu dispositivo na lista, seu emulador foi conectado com sucesso!<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Com o emulador aberto, basta rodar<code> react-native run-android<\/code> na pasta do seu projeto.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>React Native no Ambiente Windows<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">No sistema Windows, vamos instalar as libs com um gerenciador de pacotes.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para configurar o ambiente Android no Windows, vamos precisar instalar quatro depend\u00eancias: Node, Python2, JDK e a SDK do Android.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para completar essas depend\u00eancias, vamos precisar de instalar o Chocolatey e as demais depend\u00eancias, instalar e configurar a SDK do Android, instalar e configurar o emulador Genymotion.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Vamos utilizar um gerenciador de pacotes do Windows chamado Chocolatey para instalar as libs no Windows. Essa ferramenta nos possibilita instalar depend\u00eancias e ferramentas no sistema com poucos comandos e tudo pelo terminal.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Execute o prompt de comando ou powershell como administrador utilizando a tecla Windows + X ou clicando com o bot\u00e3o direito sobre o bot\u00e3o \u201cIniciar&#8221;.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, voc\u00ea deve executar os comandos de acordo com a op\u00e7\u00e3o que voc\u00ea clicou.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso a op\u00e7\u00e3o que voc\u00ea tenha clicado tenha o nome de Command Prompt, execute o comando abaixo na janela aberta para instalar o Chocolatey:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>@\"%SystemRoot%\\System32\\Windows PowerShell\\v1.0\\p<em>ow<\/em>ershell.exe\" - NOProfile -Input Format None -Execution Policy Bypass -Command \"iex ( (New-Object System.Net.Webclient). DownloadString('https<em>:\/\/c<\/em>hocolatey.org<em>\/<\/em>ins tall.psl'))\" <em>&amp;&amp; <\/em>SET \"PATH='PATH%<em>;<\/em>%ALLUSERSPROFILE%\\chocolate<em>y<\/em>\\bin\"<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso a op\u00e7\u00e3o tenha sido Powershell, execute o comando abaixo para verificar se voc\u00ea possui permiss\u00f5es para instalar depend\u00eancias com o terminal:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>Get-Execution Polic<em>y\u00a0<\/em><\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se o retorno desse comando for &#8220;Restricted&#8221;, execute o pr\u00f3ximo comando em seu terminal, se n\u00e3o, prossiga para o pr\u00f3ximo passo:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>Set-Execution Policy AllSigned\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, execute o seguinte comando para instalar o Chocolatey:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>Set-Execution Policy Bypass -Scope Process -Force; iex\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>( (New-Object\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>System.Net.WebClient) . DownloadString('https:\/\/chocolatey.org\/ins\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>tall.psl'))\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, teste se a instala\u00e7\u00e3o ocorreu corretamente executando o seguinte comando no seu terminal (nada ir\u00e1 acontecer, mas n\u00e3o deve retornar erros). Nesse passo pode ser necess\u00e1rio reiniciar seu terminal.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>choco<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora vamos instalar o Node, Python2 e a JDK8 (Java Development Kit 8).<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>choco install -y nodejs.install python2 jdk8\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se voc\u00ea tiver o NodeJS j\u00e1 instalado em sua m\u00e1quina, certifique-se que sua vers\u00e3o \u00e9 superior a <em>7 e, <\/em>caso esteja com o JDK instalado em sua m\u00e1quina, certifique-se que sua vers\u00e3o seja a 8.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora com as depend\u00eancias instaladas, vamos instalar o CLI (Command Line Interface) do React Native que nos ajudar\u00e1 na cria\u00e7\u00e3o e teste de novos projetos. Nesse passo voc\u00ea provavelmente deve reiniciar seu terminal para o comando funcionar.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>npm install -q react-native-cli<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se tudo ocorreu bem at\u00e9 aqui, voc\u00ea conseguir\u00e1 executar o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>react-native -h<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse comando deve exibir uma lista de comandos poss\u00edveis para serem executados com o React Native CLI.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, vamos configurar o SDK do Android no Windows, crie uma pasta em um local desejado para instala\u00e7\u00e3o da SDK. Por exemplo, <code>C:\\Android\\Sdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"663\" height=\"500\" class=\"wp-image-10081\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/06\/androidsdk.png\" alt=\"\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/androidsdk.png 663w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/androidsdk-150x113.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/androidsdk-100x75.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/androidsdk-600x452.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/06\/androidsdk-450x339.png 450w\" sizes=\"(max-width: 663px) 100vw, 663px\" \/>\r\n<figcaption>Android SDK<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Anote esse caminho para ser utilizado posteriormente\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Na op\u00e7\u00e3o &#8220;Command line tools only&#8221; baixe a SDK referente ao seu sistema operacional.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ap\u00f3s feito o Download, extraia o conte\u00fado do pacote para a pasta criada no passo anterior.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, no Painel de Controle do Windo<em>w<\/em>s:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Abra o item &#8220;Sistema e Seguran\u00e7a&#8221; ou &#8220;Sistema&#8221;;<\/li>\r\n<li>Clique em &#8220;Configura\u00e7\u00f5es avan\u00e7adas do sistema&#8221;;<\/li>\r\n<li>Selecione &#8220;Vari\u00e1veis de ambiente&#8221;;<\/li>\r\n<li>Clique no bot\u00e3o &#8220;Nova vari\u00e1vel de ambiente&#8221;;<\/li>\r\n<li>Indique o nome da vari\u00e1vel como ANDROID_HOME;<\/li>\r\n<li>Adicione o caminho utilizado acima (Ex: C:\\Android\\Sdk) como segundo par\u00e2metro e clique em OK.\u00a0<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Na mesma janela de &#8220;Vari\u00e1veis de ambiente&#8221; no Windows, clique na vari\u00e1vel PATH e ent\u00e3o em &#8220;Editar&#8221;. Haver\u00e1 uma lista de caminhos e voc\u00ea deve adicionar esses dois novos caminhos no fim da lista:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>ANDROID HOME \\platform-tools\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>%ANDROID HOME%\\tools\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se sua vers\u00e3o do Windows for menor que a 10, sempre coloque ponto-e-virgula &#8220;;&#8221; no final dos caminhos para eles n\u00e3o se juntarem.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, abra seu Command Prompt ou PowerShell como administrador e execute o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>Command Prompt\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>C:\\Android Sdk\\tools\\bin\\sdkmanager \"platform-tools\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>\"platforms; android-27\" \"build-tools;27.0.3\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>PowerShell\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>PS C:\\Android\\Sdk\\tools\\bin&gt; .Isdkmanager.bat\u00a0 \"platform-tools\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>\"platforms; android-27\" \"build-tools;27.0.3\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">*Aceite todas licen\u00e7as digitando quando necess\u00e1rio.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">React Native no Ambiente Linux\u00a0<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">No sistema ambiente Linux, instalar as libs pelo apt-get.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para configurar o ambiente Android no Linux precisamos:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Instalar NodeJS, JDK e demais depend\u00eancias: instalar depend\u00eancias, instalar<\/li>\r\n<li>SDK do Android: configurar SDK, instalar e configurar o emulador<\/li>\r\n<li>Genymotion: configurar Emulador. Instalar depend\u00eancias.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para configurar o ambiente Android no Linux, vamos precisar instalar 2 depend\u00eancias: Node e JDK.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ubuntu (deb), Instalando CURL.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Certifique-se que voc\u00ea tenha o CURL instalado executando o seguinte comando no terminal:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo apt-get install curl\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando NodeJS, agora com o CURL instalado, vamos instalar no NodeJS utilizando os seguintes comandos:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>curl -SL https:<em>\/\/d<\/em>eb.nodesource.com<em>\/<\/em>setup 10.x \/ sudo bash -\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo apt install nodejs\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso voc\u00ea n\u00e3o esteja em distribui\u00e7\u00f5es Debian\/Ubuntu, siga os passos para instala\u00e7\u00e3o de acordo com seu sistema:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/nodejs.org\/en\/download\/package-manager\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Instalando React Native CLI (abre numa nova aba)\">Instalar o React Native CLI<\/a><\/strong>. Com o NodeJS instalado, podemos instalar o CLI (Command Line Interface) do React Native:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo npm install -g react-native-cli\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando JDK (Java Development Kit). Agora precisamos instalar a JDK <em>(<\/em>Java Development Kit) na vers\u00e3o 8 com o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo add-apt-repository ppa:openjdk-r\/ppa\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo apt-get update\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo apt-get install openjdk-8-jdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A vers\u00e3o 8 do JDK \u00e9 obrigat\u00f3ria, n\u00e3o utilize vers\u00f5es mais recentes. Podemos testar a instala\u00e7\u00e3o do JDK com o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>java -version\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso possua outras vers\u00f5es do <strong><a href=\"https:\/\/geekblogti.wpengine.com\/tudo-sobre-java\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Java (abre numa nova aba)\">Java<\/a><\/strong>, pode selecionar a vers\u00e3o 8 como padr\u00e3o usando o comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo update-alternatives --config java\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando libs gr\u00e1ficas. Em grande parte das vezes precisamos instalar algumas bibliotecas da vers\u00e3o 32bits do Linux para conseguir emular nosso projeto e para isso vamos utilizar o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo apt-get install gcc-multilib lib32z1 lib32 stdc++6\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Arch Linux. Instalando NodeJS. Vamos instalar o NodeJS utilizando o seguintes comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo pacman -S nodejs npm\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando React Native CLI. Com o NodeJS instalado, podemos instalar o CLI (Command Line Interface) do React Native:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo npm install -g react-native-cli<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando JDK (Ja<em>v<\/em>a De<em>v<\/em>elopment Kit). Agora precisamos instalar a JDK (Java Development Kit) na vers\u00e3o 8 com o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo pacman -S jdk8-openjdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A vers\u00e3o 8 do JDK \u00e9 obrigat\u00f3ria, n\u00e3o utilize vers\u00f5es mais recentes. Para isso, podemos defini-lo como padr\u00e3o com o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>archlinux-java set java-8-openjdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando libs gr\u00e1ficas. Em grande parte das vezes precisamos instalar algumas bibliotecas da vers\u00e3o 32bits do Linux para conseguir emular nosso projeto e para isso vamos utilizar o seguinte comando para habilitar o reposit\u00f3rio multilib:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo sed -i \"\\[multilib\\]<em>\/, \/ <\/em>Include<em>\/\"'s\/^<\/em>\u00ab<em>\/\/' \/e<\/em>tc<em>\/<\/em>pacman.conf\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Configurando SDK do Android no Linux. Crie uma pasta em um local desejado para instala\u00e7\u00e3o da SDK. Ex:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>~<em>\/<\/em>Android\/sdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Anote esse caminho para ser utilizado posteriormente.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Na op\u00e7\u00e3o &#8220;Command line tools only&#8221; <strong><a href=\"https:\/\/developer.android.com\/studio\/#downloads\">baixe a SDK<\/a><\/strong> referente ao seu sistema operacional. Ap\u00f3s feito o Download, extraia o conte\u00fado do pacote para a pasta criada no passo anterior.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Com esse endere\u00e7o precisamos configurar algumas vari\u00e1veis ambiente em nosso sistema, procure pelo primeiro dos seguintes arquivos existentes no seu sistema:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>~\/<\/em>.bash profile, ~.profile, w1.zshrc ou ~\/.bashrc\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Adicione essas tr\u00eas linhas no arquivo (de prefer\u00eancia no in\u00edcio):\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>export ANDROID HOME=~<em>\/A<\/em>ndroid\/sdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>export PATH=$PATH: SANDROID HOME\/tools\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>export PATH=$PATH:$ANDROID HOME<em>\/<\/em>platform-tools\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se nenhum desses arquivos existir, crie o<em>\/<\/em>bash_profile. Caso esteja utilizando uma pasta diferente para a SDK do Android, altere acima. Agora, abra seu Terminal e execute o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>~\/<\/em>Android\/sdk<em>\/<\/em>tools\/bin<em>\/<\/em>sdkmanager \"platform-tools\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>\"platforms; android-27\" \"build-tools;<em>27.<\/em>0.3\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Aceite todas licen\u00e7as digitando, caso necess\u00e1rio.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">React Native no Ambiente MacOS<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando as libs pelo Homebrew, instale NodeJS, JDK e demais depend\u00eancias: Instalando depend\u00eancias, instale e configure a SDK do Android:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"wp-image-10082\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/03\/sdk-manager-platforms_2x-1024x693.jpg\" alt=\"\" \/>\r\n<figcaption>SDK no MacOS<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Configurando SDK, instale e configure o emulador Genymotion: Configurando Emulador.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando depend\u00eancias, para configurar o ambiente Android no macOS, vamos precisar instalar 3 depend\u00eancias: Node, Watchman, JDK.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para boa parte desses pacotes utilizaremos o Homebrew para instala\u00e7\u00e3o.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando Homebrew, Homebrew \u00e9 um gerenciador de pacotes para OS X muito famoso e \u00fatil. Vamos instal\u00e1-lo em nosso sistema como seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>\/<\/em>usr<em>\/<\/em>bin\/ruby -e \"$(<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>curl -fSLhttps<em>:\/\/<\/em>raw.githubusercontent.com\/Homebrew<em>\/<\/em>install\/master\/instal1<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando Node e Watchman, com o Homebre<em>w <\/em>instalado, vamos instalar o NodeJS e o Watchman:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>brew install node\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>brew install watchman\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalando React Native CLI, com o NodeJS instalado podemos seguir para a instala\u00e7\u00e3o do CLI (Command Line Interface) do React Native:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>npm install -g react-native-cli\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instalar o JDK (Java Development Kit), o \u00faltimo item a ser instalado \u00e9 o JDK (Java Development Kit) do Java que pode ser baixado pelo link.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ap\u00f3s instalado, execute o .dmg e instale seguindo os passos do instalador.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Configurando SDK do Android no macos, crie uma pasta em um local desejado para instala\u00e7\u00e3o da SDK. Ex: <em>~\/Android\/Sdk\u00a0<\/em><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em>* Anote esse caminho para ser utilizado posteriormente\u00a0<\/em><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Acesse o <a href=\"https:\/\/developer.android.com\/studio\/#downloads\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Developer Android (abre numa nova aba)\">Developer Android<\/a> e na op\u00e7\u00e3o <em>&#8220;Command line tools only&#8221; <\/em>baixe a SDK referente ao seu sistema operacional.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ap\u00f3s feito o Download, extraia o conte\u00fado do pacote para a pasta criada no passo anterior.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Com esse endere\u00e7o precisamos configurar algumas vari\u00e1veis-ambiente em nosso sistema, procure pelo primeiro dos seguintes arquivos existentes no seu sistema: <em>~\/<\/em>.bash profile, <em>~\/<\/em>.profile ou ~\/.zshrc, e adicione essas tr\u00eas linhas no arquivo (de prefer\u00eancia no in\u00edcio):\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>export ANDROID HOME=~<em>\/<\/em>Android<em>\/<\/em>sdk\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>export PATH=$PATH: $ANDROID HOME\/tools\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>export PATH=$PATH: SANDROID HOME\/platform-tools\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se nenhum desses arquivos existir, crie o ~\/.bash profile. Caso esteja utilizando uma pasta diferente para a SDK do Android, altere acima.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, abra seu Terminal e execute o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>~\/<\/em>Android\/sdk<em>\/<\/em>tools<em>\/<\/em>bin<em>\/<\/em>sdkmanager \"platform-tools\" \"platforms; android-<em>27\" <\/em>\"build-tools;2<em>7.<\/em>0.3\"\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Aceite todas licen\u00e7as digitando, caso necess\u00e1rio.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Erros de sistema durante o desenvolvimento do projeto\u00a0<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Durante todo processo de desenvolvimento n\u00e3o \u00e9 apenas mar de rosas, enfrentaremos problemas de erros em sistemas.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">\u00a0A seguir, citaremos alguns dos mais enfrentados. \u00c9 importante ressaltar que s\u00e3o dificuldades encontradas desde os juniores at\u00e9 os seniores, mas o importante \u00e9 trat\u00e1-los com agilidade.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Enfrentados no Android\u00a0<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Come\u00e7aremos por\u00a0<code>Unable to load script from assets 'index.android.bundle'. Make sure ...\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse erro geralmente acontece porque o sistema n\u00e3o conseguiu criar o bundle inicial que cont\u00e9m todo o c\u00f3digo JavaScript da aplica\u00e7\u00e3o.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para resolver comece criando uma pasta assets dentro da pasta android\/app\/src\/main. Logo ap\u00f3s, execute o comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>react-native bundle --platform android --dev false --entry-file index.js --bundle-output android<em>\/<\/em>app<em>\/src\/<\/em>main<em>\/a<\/em>ssets<em>\/<\/em>index.android.bundle --assets-dest android<em>\/<\/em>app<em>\/src\/<\/em>main<em>\/<\/em>re<em>s\/\u00a0<\/em><\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Feche as abas do terminal e rode react-native run-android novamente, tudo dar\u00e1 certo.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Agora, segue um erro de cache:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>react-native run-android: FAILURE: Build failed with an exception.\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse erro pode acontecer por muitos motivos, mas na maioria das vezes \u00e9 algum cache que precisa ser deletado. Para resolver execute na pasta do seu projeto:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>cd android &amp;&amp; gradlew clean &amp;&amp; cd .. &amp;&amp; react-native run-android\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Aquele erro que apresenta logo no in\u00edcio do projeto. Erros ao tentar ativar o JDK ou inicializar o projeto React Native. Seu sistema pode ter diversas vers\u00f5es do Java instaladas, para selecionar qual vers\u00e3o quer ativar use o comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>sudo update-alternatives --config java\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Selecione a vers\u00e3o 8! Caso voc\u00ea tenha iniciado o projeto react-native init projeto com uma vers\u00e3o do Java acima da 8 e encontre alguns erros de build tente reinicializar, criar uma projeto novo, ap\u00f3s ativar a vers\u00e3o 8 do Java.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">J\u00e1 esse erro geralmente acontece por alguma licen\u00e7a n\u00e3o ter sido aceitada na SDK do Android.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Failed to install the following Android SDK packages as some licences have not been accepted<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Primeiramente \u00e9 necess\u00e1rio voc\u00ea conhecer o caminho da SDK do Android instalada em sua m\u00e1quina. O caminho geralmente aparece abaixo desse erro ou pode ser recuperado pela vari\u00e1vel ambiente ANDROID HOME ou at\u00e9 dentro da aba ADB na\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">configura\u00e7\u00e3o do Genymotion. Com o caminho em m\u00e3os, vamos supor que seja <code>\/Users<em>\/<\/em>myuser<em>\/<\/em>Android\/sdk<\/code> , vamos rodar o comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>\/<\/em>Users<em>\/<\/em>myuser<em>\/<\/em>Android\/Sdk\/tools<em>\/<\/em>bin<em>\/<\/em>sdkmanager --licenses\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ap\u00f3s executar esse comando, digite y para todas as perguntas abaixo.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O \u00faltimo erro listado aqui, trata-se de uma falha de conex\u00e3o:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>react-native run-android: BUILD FAILURE: No connected devices!\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse erro geralmente acontece quando o Android Debug Bridge (adb) n\u00e3o est\u00e1 conectado como emulador.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Digite no terminal adb devices com o emulador aberto, se aparecer a mensagem List of devices attached, provavelmente este \u00e9 o seu problema.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para resolver basta parar o servi\u00e7o do bundle e na janela do emulador aberto verificar o IP do dispositivo, basta esticar a janela e ver na descri\u00e7\u00e3o dela o n\u00famero de IP, depois digite o seguinte comando:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>adb connect SeuIP:5555\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ir\u00e1 aparecer uma mensagem de que o dispositivo foi conectado com sucesso. Para confirmar se est\u00e1 tudo certo digite novamente adb devices, se aparecer o nome do seu dispositivo basta rodar o comando novamente:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>react-native run-android\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Enfrentados no iOS\u00a0<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Vamos conferir uma lista de erros comuns enfrentados no iOS.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse erro geralmente acontece pois o React Native n\u00e3o conseguiu configurar as depend\u00eancias e bibliotecas de terceiros dentro do iOS.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">:CFBundle Identifier does not exists\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para resolver acessar a pasta\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>node modules<em>\/<\/em>react-native<em>\/<\/em>scripts\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">e execute:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code><em>$ .\/<\/em>ios-install-third-party.sh\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Assim que finalizar, acesse a pasta third-party\/glog-x-x-x, preencha x-x-x com a vers\u00e3o instalada, voc\u00ea pode utilizar o TAB para completar digitando \u00a0glog- e clicando TAB. Dentro dessa pasta execute:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>$ .<em>.\/..\/<\/em>ios-configure-glog.sh\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Depois disso, volte \u00e0 pasta do seu projeto e rode react-native run-ios, pode ser necess\u00e1rio rodar duas vezes.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Nas duas plataformas: em Android e em iOS, listamos erros que podem acontecer em ambas as plataformas.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>The development server returned response error code: 500\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Geralmente esse erro acontece quando tentamos importar um arquivo Js que n\u00e3o possui export default ou n\u00e3o possui nenhum componente dentro dele.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Primeiramente cheque todos arquivos e importa\u00e7\u00f5es recentes que voc\u00ea fez para garantir que todos possuem import<em>\/<\/em>exports e seus devidos componentes.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso isso n\u00e3o resolva, feche a janela do terminal Metro Bundler que abre automaticamente com o \u00a0run-ios<em>\/<\/em>run-android e na pasta do seu projeto execute:\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><code>$ react-native start --reset-cache\u00a0<\/code><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse comando ir\u00e1 limpar o cache do React Native, torcemos para dar tudo certo isso resolver o erro.\u00a0<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Enfrentados no emulador Genymotion\u00a0<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O erro a seguir \u00e9 devido a sua CPU n\u00e3o permitir virtualiza\u00e7\u00e3o.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em>Your CPU is incompatible with virtualization technologies\u00a0<\/em><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para tentar resolver essa situa\u00e7\u00e3o, podemos acessar a BIOS da sua m\u00e1quina e procurar por alguma op\u00e7\u00e3o com o nome VT-x Ou Virtualization e alterar de &#8220;disabled&#8221; para &#8220;enabled&#8221;.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Caso isso n\u00e3o resolva, <em>v<\/em>oc\u00ea provavelmente ter\u00e1 que utilizar outro emulador, como o <a href=\"https:\/\/pt.bignox.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Nox  (abre numa nova aba)\">Nox <\/a>e configurar o React Native para conseguir executar dentro do emulador.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Comunidade React Native\u00a0<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Envolver em comunidades do ambiente que est\u00e1 iniciando \u00e9 fundamental para sentir como \u00e9 o universo dessa tecnologia, entender os problemas, dificuldades, cursos, vagas, e muito mais.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Mas n\u00e3o apenas para iniciantes, colaborar com as comunidades acelera e muito o aprendizado e cria um importante networking.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Pesquisando sobre as comunidades de React Native, algumas merecem destaques.\u00a0<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Rocketseat;<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><a href=\"https:\/\/medium.com\/reactbrasil\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Medium (abre numa nova aba)\"><em>M<\/em>edium<\/a>;<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><a href=\"http:\/\/react-brasil.slack.com\">Slack <\/a>;<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Stack Overflow;<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><a href=\"https:\/\/twitter.com\/reactnative\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Twitter (abre numa nova aba)\">Twitter<\/a>.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Outras fontes importantes para conseguir esclarecer temas e se envolver com outros nessa trajet\u00f3ria \u00e9 o Github e Meetup.\u00a0<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Documenta\u00e7\u00e3o do React Native\u00a0<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O <a href=\"https:\/\/reactnative.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"projeto React Native  (abre numa nova aba)\">projeto React Native <\/a>tem uma documenta\u00e7\u00e3o completa e bem objetiva. Com projetos de exemplo, com modelos de c\u00f3digo e orienta\u00e7\u00f5es para desenvolver componentes, configura\u00e7\u00f5es e muito mais.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Al\u00e9m da<a href=\"https:\/\/pt-br.reactjs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" documenta\u00e7\u00e3o traduzida (abre numa nova aba)\"> documenta\u00e7\u00e3o traduzida<\/a>, voc\u00ea pode acessar o <a href=\"https:\/\/facebook.github.io\/react-native\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"link home (abre numa nova aba)\">link home<\/a> e o <a href=\"https:\/\/github.com\/facebook\/react-native\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"projeto no Github (abre numa nova aba)\">projeto no Github<\/a>.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Treinamento de React Native\u00a0<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Vou iniciar a programar em React Native, mas por onde come\u00e7o? Pesquisando na internet conseguindo encontrar conte\u00fado muito bom e completos.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Acredito que o processo de aprendizado para se tornar um desenvolvedor inicia-se por tutoriais, estudar fundamentos da linguagem, no nosso caso, \u00e9 o JavaScript e ES6, estudar as teorias do framework e projetos reais. E claro, rodar esse ciclo avan\u00e7ando na dificuldade das tarefas executadas.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Listei abaixo treinamentos excelentes para dar o primeiro passo na dire\u00e7\u00e3o dos primeiros projetos completos como a <a href=\"https:\/\/rocketseat.com.br\/starter\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Rocketseat  (abre numa nova aba)\">Rocketseat<\/a>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">E assim, termino esse guia completo do React Native, com os itens que acredito que mais causam dificuldade para aqueles que est\u00e3o come\u00e7ando, por isso, separei em t\u00f3picos resumidamente.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">No meu reposit\u00f3rio no <a href=\"https:\/\/github.com\/douglasabnovato\">Github <\/a>\u00e9 poss\u00edvel encontrar projetos criados em cada uma dessas etapas de estudos pr\u00e1ticos fazendo tutoriais e treinamentos e no meu perfil no <a href=\"https:\/\/medium.com\/@douglasabnovato\">Medium <\/a>escrevo resumos nessa trajet\u00f3ria de estudos para dev.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Fica para os pr\u00f3ximos artigos o passo de criar um app em React Native. Espero que tenham gostado.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">\u00d3timos c\u00f3digos e at\u00e9 o pr\u00f3ximo artigo!<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com.br\/vagas-react-native\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" class=\"wp-image-9568\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2020\/03\/Grupo-1331@2x-1-1024x336.png\" alt=\"Vagas para desenvolvedores React Native \" \/><\/a><\/figure>\r\n","protected":false},"excerpt":{"rendered":"<p>O desenvolvimento mobile est\u00e1 super aquecido e o Facebook n\u00e3o poderia ficar para tr\u00e1s com seu pr\u00f3prio framework. React Native \u00e9 um framework para o desenvolvimento mobile relativamente novo, mas que j\u00e1 tem n\u00famero de usu\u00e1rios e hist\u00f3rico de projetos de respeito. Nesse guia completo de React Native, veremos em detalhes, o poder dessa tecnologia, [&hellip;]<\/p>\n","protected":false},"author":167,"featured_media":9558,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-9548","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimiento-de-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tudo que voc\u00ea precisa saber sobre React Native! | GeekBlog<\/title>\n<meta name=\"description\" content=\"React Native veio para ficar! Com esse guia completo voc\u00ea vai saber desde instalar at\u00e9 a come\u00e7ar uma aplica\u00e7\u00e3o! Confira :D\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Um guia completo de React Native\" \/>\n<meta property=\"og:description\" content=\"O desenvolvimento mobile est\u00e1 super aquecido e o Facebook n\u00e3o poderia ficar para tr\u00e1s com seu pr\u00f3prio framework. React Native \u00e9 um framework para o\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Geekhunter\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/geekhunterbr\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-12T23:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-24T21:00:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/03\/React-Native.png\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"410\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Geekhunter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:site\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geekhunter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/\"},\"author\":{\"name\":\"Geekhunter\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\"},\"headline\":\"Um guia completo de React Native\",\"datePublished\":\"2020-03-12T23:45:00+00:00\",\"dateModified\":\"2024-09-24T21:00:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/\"},\"wordCount\":3813,\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/React-Native.png\",\"articleSection\":[\"Desenvolvimiento de software\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/\",\"name\":\"Tudo que voc\u00ea precisa saber sobre React Native! | GeekBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/React-Native.png\",\"datePublished\":\"2020-03-12T23:45:00+00:00\",\"dateModified\":\"2024-09-24T21:00:26+00:00\",\"description\":\"React Native veio para ficar! Com esse guia completo voc\u00ea vai saber desde instalar at\u00e9 a come\u00e7ar uma aplica\u00e7\u00e3o! Confira :D\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/um-guia-completo-de-react-native\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/React-Native.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/React-Native.png\",\"width\":750,\"height\":410},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-guia-completo-de-react-native\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundo TI\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desenvolvimiento de software\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/desenvolvimiento-de-software\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Um guia completo de React Native\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"name\":\"Blog de TI\",\"description\":\"Dicas para o RH e profissionais da \u00e1rea TI\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\",\"name\":\"GeekHunter\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"width\":300,\"height\":300,\"caption\":\"GeekHunter\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/x.com\\\/geekhunterbr\",\"https:\\\/\\\/www.instagram.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/geekhunter-brasil\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GeekHunterOfficial\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\",\"name\":\"Geekhunter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"caption\":\"Geekhunter\"},\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/author\\\/matias\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tudo que voc\u00ea precisa saber sobre React Native! | GeekBlog","description":"React Native veio para ficar! Com esse guia completo voc\u00ea vai saber desde instalar at\u00e9 a come\u00e7ar uma aplica\u00e7\u00e3o! Confira :D","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/","og_locale":"pt_BR","og_type":"article","og_title":"Um guia completo de React Native","og_description":"O desenvolvimento mobile est\u00e1 super aquecido e o Facebook n\u00e3o poderia ficar para tr\u00e1s com seu pr\u00f3prio framework. React Native \u00e9 um framework para o","og_url":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/","og_site_name":"Blog Geekhunter","article_publisher":"https:\/\/www.facebook.com\/geekhunterbr\/","article_published_time":"2020-03-12T23:45:00+00:00","article_modified_time":"2024-09-24T21:00:26+00:00","og_image":[{"width":750,"height":410,"url":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/03\/React-Native.png","type":"image\/png"}],"author":"Geekhunter","twitter_card":"summary_large_image","twitter_creator":"@geekhunterbr","twitter_site":"@geekhunterbr","twitter_misc":{"Escrito por":"Geekhunter","Est. tempo de leitura":"22 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#article","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/"},"author":{"name":"Geekhunter","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400"},"headline":"Um guia completo de React Native","datePublished":"2020-03-12T23:45:00+00:00","dateModified":"2024-09-24T21:00:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/"},"wordCount":3813,"publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/03\/React-Native.png","articleSection":["Desenvolvimiento de software"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/","name":"Tudo que voc\u00ea precisa saber sobre React Native! | GeekBlog","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#primaryimage"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/03\/React-Native.png","datePublished":"2020-03-12T23:45:00+00:00","dateModified":"2024-09-24T21:00:26+00:00","description":"React Native veio para ficar! Com esse guia completo voc\u00ea vai saber desde instalar at\u00e9 a come\u00e7ar uma aplica\u00e7\u00e3o! Confira :D","breadcrumb":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geekhunter.com/pt/blog\/um-guia-completo-de-react-native\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#primaryimage","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2020\/03\/React-Native.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2020\/03\/React-Native.png","width":750,"height":410},{"@type":"BreadcrumbList","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-guia-completo-de-react-native\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.geekhunter.com/pt/blog\/"},{"@type":"ListItem","position":2,"name":"Mundo TI","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/"},{"@type":"ListItem","position":3,"name":"Desenvolvimiento de software","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/desenvolvimiento-de-software\/"},{"@type":"ListItem","position":4,"name":"Um guia completo de React Native"}]},{"@type":"WebSite","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","name":"Blog de TI","description":"Dicas para o RH e profissionais da \u00e1rea TI","publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geekhunter.com/pt/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization","name":"GeekHunter","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","width":300,"height":300,"caption":"GeekHunter"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/geekhunterbr\/","https:\/\/x.com\/geekhunterbr","https:\/\/www.instagram.com\/geekhunterbr\/","https:\/\/www.linkedin.com\/company\/geekhunter-brasil\/","https:\/\/www.youtube.com\/@GeekHunterOfficial"]},{"@type":"Person","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400","name":"Geekhunter","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","caption":"Geekhunter"},"url":"https:\/\/www.geekhunter.com\/pt\/blog\/author\/matias\/"}]}},"_links":{"self":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/9548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/users\/167"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/comments?post=9548"}],"version-history":[{"count":0,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/9548\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media\/9558"}],"wp:attachment":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media?parent=9548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/categories?post=9548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/tags?post=9548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}