Uso de câmera no React-Native

Gustavo Barbosa
3 min readMar 30, 2021

Primeira vez escrevendo aqui, então desculpa qualquer coisa 😅

Photo by Alec Cooks on Unsplash

Bom, atualmente estou trabalhando numa aplicação mobile para uma empresa privada e me pediram uma funcionalidade de envio de foto. Nunca havia trabalhado com nada do tipo e a princípio, achei que teria dificuldade. Mas e aí, tive dificuldade? De jeito nenhum, foi até fácil. Usei uma lib/módulo (como queira chamar) chamada React Native Image Picker.

Ela foi perfeita para o cenário que eu precisava, porque eu também precisava enviar o arquivo na forma de BASE64, através de uma api e essa lib já provê essa funcionalidade. Com essa lib, é possível usar a câmera do celular sem nenhum problema além de ter a possibilidade de acessar à galeria de fotos do usuário, recurso que veio a calhar pois implementei a funcionalidade de envio de foto direto da câmera e o envio de foto escolhendo uma foto qualquer da galeria.

Chega de introdução, vamos para um exemplo prático e básico.

Neste ponto, vou assumir que você já tenha um ambiente configurado para trabalhar com React Native, então este ponto não será coberto. Caso não tenha isso configurado, sugiro fortemente que dê uma olhada na documentação oficial, é simples e bem direta ao ponto, só seguir que não tem erro: https://reactnative.dev/docs/environment-setup

Para criar um novo projeto React Native, basta executar o comando:

npx react-native init AwesomeCamera

Basta esperar pela criação e instalação de dependências.

Depois, a estrutura inicial do projeto deve ser algo próximo disso:

Estrutura inicial

O arquivo App.js, onde vamos fazer tudo, deve se parecer mais ou menos com isso:

Agora vamos instalar a lib/módulo React-Native-Image-Picker, com o comando:

npm install react-native-image-picker --saveouyarn add react-native-image-picker

Você também precisará adicionar algumas permissões no Android. Permissão para usar a câmera e ler o armazenamento.

No arquivo: AwesomeCamera/android/app/src/debug/AndroidManifest.xml

Para dar tudo certo, crie uma pasta chamada assets e adicione essas duas imagens: dummy e galleryImages.

Vamos modificar o arquivo App.js, já deixando o layout pronto, pois esse não é o foco aqui, segue:

O layout da aplicação, vai ficar assim:

Layout da aplicação

Acessar a câmera

Para implementar a funcionalidade de iniciar a câmera diretamente quando você clica em “Acessar câmera”, use o código abaixo. Ele abrirá diretamente a câmera e mostrará a imagem clicada no componente de imagem.

Acessando a câmera, via emulador

Acessar a galeria

Para iniciar diretamente a biblioteca de imagens, você pode usar o código a seguir. Ele abrirá diretamente a Biblioteca de Imagens e mostrará a imagem Selecionada no Componente de Imagem.

App.js

Conclusão

Neste post, quis mostrar que dá pra implementar o uso da câmera no React Native de uma maneira bem simples usando a lib React Native Image Picker. Você pode encontrar o código completo neste repositório aqui.

--

--

Gustavo Barbosa

Dev, linux enthusiast. Coding web, mobile using the Javascript powers.