1 00:00:02,620 --> 00:00:08,140 Para visualizar e editar nosso código, precisamos de um editor e eu recomendo o uso do Visual Studio Code, um 2 00:00:08,140 --> 00:00:13,480 IDE muito poderoso e gratuito, excelente para o desenvolvimento de Javascript, que é o que estamos fazendo aqui 3 00:00:13,480 --> 00:00:14,210 no final. 4 00:00:14,290 --> 00:00:16,680 Você pode obtê-lo a partir do código. estúdio visual. lá você 5 00:00:16,720 --> 00:00:21,490 encontra versões para Mac, Windows e Linux, basta baixar a versão para o seu 6 00:00:21,790 --> 00:00:28,070 sistema operacional e percorrer o instalador que você oferece. Depois de instalá-lo, abra o Visual Studio 7 00:00:28,070 --> 00:00:34,390 Code e, abra seu projeto, vá para o arquivo aberto e, em seguida, basta escolher 8 00:00:34,390 --> 00:00:40,200 seu projeto, no meu caso, rn-first-app. Clique em Abrir aqui e isso 9 00:00:40,220 --> 00:00:47,080 abrirá o projeto aqui no Visual Studio Code. Agora, meu código do Visual Studio parece com a aparência aqui porque tenho um 10 00:00:47,380 --> 00:00:51,950 tema especial ativado, que você pode alterar em preferências, tema de cores e lá estou usando o tema mais escuro. 11 00:00:51,970 --> 00:00:54,420 Então, se você quer ter a mesma 12 00:00:54,670 --> 00:01:00,680 aparência, você pode usá-lo e eu também instalei uma extensão especial que você pode fazer sob extensões de 13 00:01:00,760 --> 00:01:08,230 exibição. Lá eu tenho o tema do ícone de material instalado, este aqui que é totalmente opcional, mas você pode instalá-lo a 14 00:01:08,230 --> 00:01:09,550 partir de lá 15 00:01:09,580 --> 00:01:13,480 também e depois volte ao viewer explorer para ver seus arquivos 16 00:01:13,510 --> 00:01:16,060 novamente, para que você obtenha os mesmos 17 00:01:16,060 --> 00:01:24,290 ícones de arquivo que eu tenho aqui, novamente é totalmente opcional e, com isso, esse é o nosso aplicativo React Native gerenciado pela expo. 18 00:01:24,300 --> 00:01:28,920 Agora, deixe-me guiá-lo rapidamente pelo que temos aqui e depois mostrar o que você pode alterar no 19 00:01:29,190 --> 00:01:31,470 código para alterar algo no seu aplicativo. 20 00:01:31,470 --> 00:01:34,350 Agora temos algumas pastas e arquivos 21 00:01:34,380 --> 00:01:37,570 aqui, o. A pasta expo mantém apenas 22 00:01:37,590 --> 00:01:43,500 algumas configurações para a expo. Você não precisa tocar nisso. A pasta de recursos, que contém algumas imagens, neste caso, 23 00:01:43,500 --> 00:01:49,470 como o ícone do seu aplicativo e a imagem da tela inicial, abordaremos como você pode personalizá-lo no final do curso e usaremos 24 00:01:49,470 --> 00:01:55,470 outros recursos, como imagens em geral ao longo deste curso, é claro. A pasta modules do nó contém todas as dependências 25 00:01:55,470 --> 00:02:01,120 deste projeto, como por exemplo, React e React Native, mas também as dependências das dependências e esta 26 00:02:01,120 --> 00:02:05,740 pasta é gerenciada automaticamente para você, para que você não precise tocar nisto 27 00:02:05,790 --> 00:02:11,460 e não deve tocá-lo de fato. . gitignore é um arquivo que nos ajuda com o git, 28 00:02:11,460 --> 00:02:16,920 que é um sistema de gerenciamento de código-fonte ou uma ferramenta de gerenciamento de código-fonte e você não precisa 29 00:02:16,920 --> 00:02:22,860 usar o git; se o fizer, provavelmente sabe o que o gitignore faz e se não sabe o que git é, 30 00:02:22,860 --> 00:02:29,100 após esta palestra, você encontrará uma breve introdução a ele ou alguns recursos que o ajudarão a começar, mas não precisará usar 31 00:02:29,130 --> 00:02:34,530 o git para trabalhar com o React Native. Watchmenconfig, isso é algo que você pode ignorar quando vê que está vazio aqui, 32 00:02:34,530 --> 00:02:39,750 é uma ferramenta usada nos bastidores da exposição no final e no aplicativo. arquivo js, então o arquivo 33 00:02:39,750 --> 00:02:45,930 que contém o código responsável por renderizar o que vemos aqui na tela. 34 00:02:46,590 --> 00:02:52,350 Vamos mergulhar nisso em um segundo aplicativo. O json mantém algumas configurações para o nosso aplicativo React Native, 35 00:02:52,350 --> 00:02:59,140 desenvolvido pela expo, e vamos abordar isso ao longo deste curso, por enquanto, vamos ignorá-lo. Babel config configura como o código 36 00:02:59,140 --> 00:03:04,950 Javascript é otimizado e compilado. Você também pode deixar o padrão 37 00:03:04,950 --> 00:03:10,380 aqui e o pacote. O arquivo json gerencia suas dependências e você 38 00:03:10,700 --> 00:03:17,970 vê que está usando o expo, mas também React, também React DOM, porque o expo também suporta a criação de aplicativos React para a 39 00:03:17,970 --> 00:03:23,910 web, mas também React Native aqui e React Native web porque, novamente, expo oferece a opção de também criar 40 00:03:23,910 --> 00:03:28,710 aplicativos da Web com a ajuda do React Native, não é algo que focaremos neste curso. 41 00:03:28,710 --> 00:03:30,600 Portanto, essa é a configuração que temos 42 00:03:30,600 --> 00:03:35,520 aqui, o arquivo importante para nós no momento é o aplicativo. arquivo js porque, no final, é responsável 43 00:03:35,790 --> 00:03:37,800 por colocar algo na tela. 44 00:03:37,800 --> 00:03:43,350 Agora, o conteúdo exato do arquivo que você está vendo aqui no seu aplicativo. O arquivo js pode mudar com o 45 00:03:43,410 --> 00:03:48,390 tempo, porém, esse projeto inicial que é gerado automaticamente simplesmente às vezes é alterado. 46 00:03:48,570 --> 00:03:53,520 É claro que isso não afeta o que eu explico aqui ou neste curso, não significa que 47 00:03:53,520 --> 00:03:55,300 algo está desatualizado ou algo 48 00:03:55,350 --> 00:03:57,580 parecido, é apenas um projeto inicial diferente 49 00:03:57,720 --> 00:04:03,130 e se você quiser acompanhar exatamente o mesmo que eu recebi, você ' o encontraremos anexado, para que você 50 00:04:03,150 --> 00:04:07,320 também possa usá-lo, mas é claro, também poderá continuar com os espectadores se parecer 51 00:04:07,320 --> 00:04:09,870 um pouco diferente, porque, como mencionei, é apenas um 52 00:04:09,870 --> 00:04:14,250 projeto inicial, o React Native, é claro, ainda funciona da mesma forma que Expliquei aqui 53 00:04:14,250 --> 00:04:19,770 e, portanto, você pode segui-lo e adicionar seu aplicativo. arquivo js do jeito que eu o adicionei e lá 54 00:04:19,770 --> 00:04:24,290 vemos que importamos o React da mesma forma que o faria em um aplicativo da web do React. 55 00:04:24,420 --> 00:04:30,630 Precisamos importar o React porque aqui, você também pode ver que estamos usando o jsx, que é 56 00:04:30,630 --> 00:04:32,640 essa sintaxe Javascript especial que 57 00:04:32,790 --> 00:04:35,390 se parece com HTML, mas no final 58 00:04:35,460 --> 00:04:42,120 é apenas Javascript e, caso você nunca tenha visto isso, mergulhe definitivamente em um aplicativo React ou React tutorial 59 00:04:42,270 --> 00:04:45,720 primeiro, espero que você saiba como o React geralmente funciona. 60 00:04:45,720 --> 00:04:51,270 Sempre temos outra importação aqui e é a importação React Native, onde importamos a folha de estilo, o texto 61 00:04:51,360 --> 00:04:53,220 e a visualização a partir daí. 62 00:04:53,220 --> 00:04:59,640 Agora, esses são os componentes e recursos especiais dos quais eu estava falando anteriormente, texto e exibição são 63 00:04:59,640 --> 00:05:06,720 componentes fornecidos pelo React Native que são compilados em widgets da plataforma nativa e a folha de estilo é um recurso 64 00:05:06,720 --> 00:05:10,290 extra fornecido pelo React Native que ajuda você a estilizar. 65 00:05:10,290 --> 00:05:15,820 Agora, aqui temos um componente React normal, como também o construiríamos em um aplicativo React for web. 66 00:05:16,120 --> 00:05:21,960 Estamos tendo um componente funcional aqui e, com a ajuda dos ganchos React, podemos trabalhar com componentes funcionais 67 00:05:21,960 --> 00:05:28,110 apenas como você provavelmente conhece e esse componente funcional retorna algum código jsx que é renderizado na tela e aqui 68 00:05:28,200 --> 00:05:29,270 estamos usando 69 00:05:29,400 --> 00:05:35,550 o widget de exibição ou o componente de visualização fornecido pelo React Native e o componente de texto e 70 00:05:36,270 --> 00:05:38,790 o componente de visualização são como uma div, 71 00:05:38,790 --> 00:05:45,720 é um bom invólucro, também é bom para aplicar alguns estilos em alguns contêineres e detecta e, em seguida, é usado para 72 00:05:45,870 --> 00:05:50,030 gerar algum texto que você coloca entre a abertura e tags de fechamento. 73 00:05:50,270 --> 00:05:57,090 E aqui em baixo, temos alguns estilos definidos, o React Native não usa CSS, mas usa uma 74 00:05:57,090 --> 00:06:04,890 sintaxe de estilo baseada em CSS ou segue convenções de nomes semelhantes, mas vamos nos aprofundar em como estilizar seus 75 00:06:04,890 --> 00:06:08,550 aplicativos React Native ao longo deste curso claro. 76 00:06:08,550 --> 00:06:14,490 Então, com isso, vamos mudar o que vemos na tela e vamos adicionar um botão aqui. 77 00:06:14,490 --> 00:06:20,730 Agora, o bom é que podemos importar um botão do React Native, esse é outro componente principal fornecido pelo React Native, para que possamos 78 00:06:20,730 --> 00:06:26,140 adicionar essa importação e usar um botão lá embaixo. No entanto, não o usamos com uma tag de 79 00:06:26,140 --> 00:06:27,280 abertura e fechamento, 80 00:06:27,280 --> 00:06:33,190 mas como um elemento de fechamento automático e, em seguida, podemos adicionar um suporte de título aqui para definir o 81 00:06:33,460 --> 00:06:36,620 texto que vemos em um botão, por exemplo, alterar texto. 82 00:06:36,850 --> 00:06:41,010 Agora, quando tocamos neste botão, podemos querer alterar este texto aqui e, para isso, 83 00:06:41,200 --> 00:06:45,970 precisamos gerenciar algum estado aqui, porque quero alterar alguns dados que devem levar à re-renderização 84 00:06:46,180 --> 00:06:49,680 desse componente e, para isso, você precisa do estado . 85 00:06:49,900 --> 00:06:56,110 Agora antes da Reagir 16. 8, que é suportado aqui, você teria que convertê-lo em um componente baseado 86 00:06:56,110 --> 00:07:00,270 em classe para useState, desde o React 16. 8, podemos usar ganchos 87 00:07:00,310 --> 00:07:03,710 do React e, caso você não saiba o que 88 00:07:03,820 --> 00:07:08,620 são ganchos, você deve definitivamente mergulhar no básico dos ganchos; em anexo, 89 00:07:08,620 --> 00:07:14,800 você encontrará recursos que o ajudarão a começar. Os ganchos são importados do React e, aqui, precisamos do gancho useState, que 90 00:07:14,800 --> 00:07:17,290 nos permite gerenciar o estado em um componente funcional. 91 00:07:17,290 --> 00:07:26,230 Com isso, podemos usar esse gancho chamando useState aqui e fornecendo um valor padrão que poderia ser esse texto aqui, vamos cortá-lo de lá e 92 00:07:26,230 --> 00:07:27,910 adicioná-lo aqui como uma 93 00:07:27,910 --> 00:07:34,420 string e, em seguida, aqui podemos usar a destruição de matriz para obter nossa saída texto e obtenha uma 94 00:07:34,420 --> 00:07:41,040 função para alterar, redefinir ou substituir esse texto de saída, e é assim que o gancho useState funciona. Ele 95 00:07:41,110 --> 00:07:43,800 fornece uma matriz com exatamente dois elementos, 96 00:07:43,840 --> 00:07:49,620 onde o primeiro elemento é o instantâneo do estado atual, portanto, nosso estado inicial ou posteriormente 97 00:07:49,660 --> 00:07:55,510 para ciclos de re-renderização subsequentes, o que quer que definimos nosso estado e a segunda é uma 98 00:07:55,510 --> 00:07:56,120 função 99 00:07:56,220 --> 00:08:01,300 que permite que você defina seu estado com um novo valor e chamar essa 100 00:08:01,530 --> 00:08:07,150 função re-renderiza todo o componente e o texto de saída se refere às últimas novo estado. 101 00:08:07,180 --> 00:08:13,670 Então, aqui, entre o texto, quero gerar o texto de saída e, ao pressionar este botão, 102 00:08:13,680 --> 00:08:15,400 quero mudar isso. 103 00:08:15,400 --> 00:08:21,250 Portanto, no botão, podemos registrar o onPress, que é basicamente o equivalente ao onClick 104 00:08:21,310 --> 00:08:22,640 que teríamos na 105 00:08:22,660 --> 00:08:29,020 web, aqui está o onPress e precisamos vincular isso a uma função, por exemplo, a uma 106 00:08:29,020 --> 00:08:36,740 função anônima anônima aqui com esta sintaxe. onde chamamos definir texto de saída e definimos isso para o texto alterado. 107 00:08:36,820 --> 00:08:42,340 Portanto, isso chamará essa função aqui, substituirá nosso estado e, portanto, renderizará novamente este componente, 108 00:08:42,340 --> 00:08:48,100 isso será atualizado no próximo ciclo de renderização e, portanto, como enviamos o texto de saída 109 00:08:48,100 --> 00:08:51,520 para lá, isso muda. Se agora salvarmos tudo 110 00:08:51,520 --> 00:08:58,840 isso, o interessante é que seu aplicativo, que você ainda deveria ter aberto no telefone, deveria ter 111 00:08:58,850 --> 00:08:59,390 sido 112 00:08:59,390 --> 00:09:00,830 recarregado automaticamente, não 113 00:09:00,920 --> 00:09:08,090 é necessário reiniciá-lo, não é necessário digitalizar esse código aqui novamente, apenas alterando o código e salvando 114 00:09:08,150 --> 00:09:15,320 este arquivo, ele deve ser recarregado automaticamente aqui. E agora, se tocarmos agora em alterar texto aqui, você verá o texto 115 00:09:15,320 --> 00:09:19,020 alterado e esse é o seu primeiro aplicativo React Native fazendo seu trabalho com 116 00:09:19,040 --> 00:09:24,590 a expo, mas novamente você pode criar e publicar isso como um aplicativo independente e faremos isso até o final de 117 00:09:24,740 --> 00:09:30,110 o curso e, portanto, essa é uma maneira incrível de começar e o desenvolvimento do React Native pode ser tão fácil 118 00:09:30,110 --> 00:09:30,850 quanto isso. 119 00:09:31,150 --> 00:09:36,510 Agora, com isso, vamos terminar este primeiro módulo antes de nos aprofundarmos no React Native e escrever o 120 00:09:36,590 --> 00:09:40,130 código do React Native a partir do segundo módulo do curso.