Nós da equipe Dev Samurai temos ministérios prazer de lançar aqueles nova série de tutoriais acima de React Native chamada telefónica React aboriginal Tutorials.

Você está assistindo: Apps que diz o local onde a foto foi tirada

Nessa série, iremos descrever o passo a passo e algum técnicas para utilizar ferramentas e libs relacionadas der React Native, que passou a ser aprendidas e utilizadas aqui no equipe de desenvolve da Dev Samurai.

Para deu-se inicio a aquelas série, vamos falar um pequeno sobre gostar de podemos usar a câmeras do celular alcançar React Native.

Link são de Github: https://mautic.cardonafam.cardonafam.com/asset/11:tutorial-samuraicam


Índice


instalação e Configurando naquela Lib react-native-camera dá React Native

Criando ministérios nosso aplicativo

Iremos cardonafam.começar de uma aplicação React Native dá zero, gerado pelo:

react-native init SamuraiCam

Para isto tutorial, a ideia excluir trazer uma tela cardonafam.com 2 botões, 1 para fazer a utilização da câmera para capturar uma fotos e é diferente para apagar a fotos tirada que ficará exibida em um pequena quadrinho.

Essa denominada uma prévia da aplicação:


*

De antemão, quer de clareza que a aplicação gerada no decorrer tutorial excluir um por exemplo em que emprego foco gorjeta é na instalação, ajustes e uso de ns lib porque o React native que conseguir auxiliar em acessar a câmera do celular e capturar fotos.

Preparando ministérios Layout

Nosso layout vai ser simples, apesar bonito =), e conseguir nos deu-se uma base para para entender melhor o funcionamento dá uso da máquinas fotográficas no react Native.

Vamos utilizar alguns ícones e um logo.

Para os ícones, instalaremos der libreact-native-vector-iconse faremos o link porque o utilizá-la:

yarn add react-native-vector-icons

react-native attach react-native-vector-icons

o cedo você pode download aqui: https://mautic.cardonafam.cardonafam.com/asset/10:logotipo-samurai-cam

Agora crie 1 pasta chama src na raiz do design e dentro dela crie é diferente pasta ligar assets e dentro ela coloque together imagens do logo.

Arraste o arquivo inicial App.js do aplicativo gerado peloreact-native initpara dentro de da pasta src

Depois porque o que a mudança de lugar do arquivo principal App.js funcione corretamente, temos o que mexer no arquivo index.js na pulso do projeto, altere der linha de códigoimport App são de "./App";para:

import App são de "./src/App";Vamos cardonafam.começa a desconhecido no arquivo App.js adicionando umaViewcardonafam.com nossologo, os botõesTouchableOpacitycardonafam.com seus Icons e o cardonafam.comcast para visualizar a fotos posteriormente:

import React em ~ "react";import View, Image, TouchableOpacity, StyleSheet são de "react-native";import Icon são de "react-native-vector-icons/MaterialIcons";import logo a partir de "./assets/logo.png";const app = () => return ( > }>);};const styles = StyleSheet.create(container: flex: 1,backgroundColor: "#f37272",logo: alignSelf: "center",marginTop: 60,photo: width: 300,height: 200,backgroundColor: "#fff",alignSelf: "center",marginTop: 80,buttons: marginTop: 10,flexDirection: "row",justifyContent: "center",button: backgroundColor: "#fff",margin: 20,borderRadius: 150,width: 80,height: 80,alignItems: "center",justifyContent: "center");export default App;O resultado do app ele deve estar assim:



Instalando e Configurando naquela Libreact-native-camerado reaction Native

Para acessar a máquinas fotográficas e capturar fotos vamos utilizar a lib react-native-camera

yarn add react-native-camera

Precisamos realizar papel passos para configurar naquela lib e cardonafam.compreendo utiliza lá corretamente.

Primeira coisa é rodar emprego cardonafam.comando:

react-native attach react-native-camera

Configurações ao IOS

No arquivo ios/nome_do_projeto/info.plist adicione dentro da tagesse código:

NSCameraUsageDescriptionTeste de aplicativo.

Configurações porque o Android

No arquivo android/app/build.gradle achar a ajudando que tem configuração default a partir de android chamadadefaultConfige adicione a linhamissingDimensionStrategy "react-native-camera", "general", seu senha deve ficando parecido abranger esse:

defaultConfig applicationId "cardonafam.com.reactnativecameraexample"minSdkVersion rootProject.ext.minSdkVersiontargetSdkVersion rootProject.ext.targetSdkVersionversionCode 1versionName "1.0"missingDimensionStrategy "react-native-camera", "general"Depois vá até o arquivo android/app/src/main/AndroidManifest.xml e adicione aquelas linha:

Utilizando a câmera

cardonafam.com a formato do Layout pronta e der libreact-native-cameraconfigurada, podemos continuado para utilizar a câmera.

Para naquela nós iremos criar atualmente nosso cardonafam.componenteCamera.

Primeiro vamos importar o cardonafam.componenteRNCamerada libreact-native-camerapara utilizar dentro de de umModal

import RNCamera em ~ "react-native-camera";OModalé um elemento do react Native o que fica cardonafam.como se fosse empilhado ~ acima do cardonafam.componente anterior, portanto vamos verifica a visibilidade sobre isso modal cardonafam.com o valioso deisCameraVisiblenostatedo elemento App:

import React, useState from "react";import Modal, View, Image, TouchableOpacity, StyleSheet from "react-native";import Icon em ~ "react-native-vector-icons/MaterialIcons";import RNCamera a partir de "react-native-camera";import logo a partir de "./assets/logo.png";const Camera = ( isVisible, onChangePhoto, onCloseCamera ) => const = useState();return ( setCamera(ref)style= flex: one type=RNCamera.Constants.Type.backautoFocus=RNCamera.Constants.AutoFocus.onflashMode=RNCamera.Constants.FlashMode.offandroidCameraPermissionOptions=title: "Permissão para usar a câmera",message: "Precisamos da seus permissão para usa a câmera.",buttonPositive: "Ok",buttonNegative: "Cancelar"captureAudio=false> }style=styles.buttonTakePicture/>);};const application = () => const = useState(false);const onCloseCamera = () => setIsCameraVisible(false);;return ( setIsCameraVisible(true);> }>);};const layouts = StyleSheet.create(container: flex: 1,backgroundColor: "#f37272",logo: alignSelf: "center",marginTop: 60,photo: width: 300,height: 200,backgroundColor: "#fff",alignSelf: "center",marginTop: 80,buttons: marginTop: 10,flexDirection: "row",justifyContent: "center",button: backgroundColor: "#fff",margin: 20,borderRadius: 150,width: 80,height: 80,alignItems: "center",justifyContent: "center",buttonTakePicture: flex: 0,alignSelf: "center",position: "absolute",bottom: 20,buttonCloseCamera: flex: 0,position: "absolute",top: 20,right: 20);export default App;Ao clicar no botão para exiba a câmera então:


*

Perceba eu imploro seu perdão definimos um avaliada nostatedo cardonafam.componenteCamerapara usa cardonafam.como referência para ministérios cardonafam.componenteRNCamera.

NoRNCamerapudemos notar algumas configurações:

type: modelo da máquinas fotográficas (front/back)autoFocus: uso o concentra da máquinas fotográficas automaticamente.flashMode: Uso do flash.androidCameraPermissionOptions: configuração da caixinha de mensagem para pedir permissão de uso da câmera do celular.captureAudio: captura de áudio (usado em disparos de video).

Agora precisamos implementar a função que cardonafam.compreendo capturar naquela foto, mouros chamá-lo deonTakePicturee ele irá usa a estimado decameraque isto é referenciando oRNCamerachamando emprego métodotakePictureAsync.

Essa função irá ligar o métodotakePictureAsynce colocar o valor dele o que no circunstâncias é naquela foto capturado em um valorphotoque vamos opinião lá no cardonafam.componente App ao poder usa no cardonafam.comcast de foto.

Fica então então:

import React, useState from "react";import Alert,Modal,View,Image,TouchableOpacity,StyleSheet são de "react-native";import Icon em ~ "react-native-vector-icons/MaterialIcons";import RNCamera em ~ "react-native-camera";import logo em ~ "./assets/logo.png";const Camera = ( isVisible, onChangePhoto, onCloseCamera ) => const = useState();const onTakePicture = async () => try const uri = await camera.takePictureAsync(quality: 0.5,forceUpOrientation: true,fixOrientation: true,skipProcessing: true);onChangePhoto(uri); record (error) Alert.alert("Erro", "Houve um erro vir tirar naquela foto.");;return ( setCamera(ref)style= flex: 1 type=RNCamera.Constants.Type.backautoFocus=RNCamera.Constants.AutoFocus.onflashMode=RNCamera.Constants.FlashMode.offandroidCameraPermissionOptions=title: "Permissão para alavancada a câmera",message: "Precisamos da deles permissão para usa a câmera.",buttonPositive: "Ok",buttonNegative: "Cancelar"captureAudio=false>);};const app = () => const = useState(false);const = useState(null);const onChangePhoto = newPhoto => setPhoto(newPhoto);setIsCameraVisible(false);;const onCloseCamera = () => setIsCameraVisible(false);;return ( setIsCameraVisible(true);> }>);};const layouts = StyleSheet.create(container: flex: 1,backgroundColor: "#f37272",logo: alignSelf: "center",marginTop: 60,photo: width: 300,height: 200,backgroundColor: "#fff",alignSelf: "center",marginTop: 80,buttons: marginTop: 10,flexDirection: "row",justifyContent: "center",button: backgroundColor: "#fff",margin: 20,borderRadius: 150,width: 80,height: 80,alignItems: "center",justifyContent: "center",buttonTakePicture: flex: 0,alignSelf: "center",position: "absolute",bottom: 20,buttonCloseCamera: flex: 0,position: "absolute",top: 20,right: 20);export default App;O métodoonChangePhotoestá atualizando o bateau dephotocardonafam.com a foto capturado pela câmeras e setada la enquanto cardonafam.componenteCamera.

Assim o avaliada dephotoé naquela foto atual capturada, cardonafam.com isso, podemos exibir eles no nosso ingrediente quadrinho.

Para naquela vamos atualizados o cardonafam.componenteImageBackgroundpara exibir a foto, esse elemento é importado da API do React Native da mesma forma que oText,View, etc.

E para ministérios botão de deletar naquela imagem, só precisamos setar o avaliada dephotoparanullassim limpamos ministérios quadrinho.

O senha final, fica portanto então:

import React, useState a partir de "react";import Alert,Modal,View,Image,ImageBackground,TouchableOpacity,StyleSheet em ~ "react-native";import Icon from "react-native-vector-icons/MaterialIcons";import RNCamera a partir de "react-native-camera";import logo são de "./assets/logo.png";const Camera = ( isVisible, onChangePhoto, onCloseCamera ) => const = useState();const onTakePicture = async () => try const uri = await camera.takePictureAsync(quality: 0.5,forceUpOrientation: true,fixOrientation: true,skipProcessing: true);onChangePhoto(uri); capture (error) Alert.alert("Erro", "Houve um erro aos tirar naquela foto.");;return ( setCamera(ref)style= flex: 1 type=RNCamera.Constants.Type.backautoFocus=RNCamera.Constants.AutoFocus.onflashMode=RNCamera.Constants.FlashMode.offandroidCameraPermissionOptions=title: "Permissão para usar a câmera",message: "Precisamos da deles permissão para usar a câmera.",buttonPositive: "Ok",buttonNegative: "Cancelar"captureAudio=false>);};const application = () => const = useState(false);const = useState(null);const onChangePhoto = newPhoto => setPhoto(newPhoto);setIsCameraVisible(false);;const onCloseCamera = () => setIsCameraVisible(false);;return ( setIsCameraVisible(true);> setPhoto(null);}>);};const formats = StyleSheet.create(container: flex: 1,backgroundColor: "#f37272",logo: alignSelf: "center",marginTop: 60,photo: width: 300,height: 200,backgroundColor: "#fff",alignSelf: "center",marginTop: 80,buttons: marginTop: 10,flexDirection: "row",justifyContent: "center",button: backgroundColor: "#fff",margin: 20,borderRadius: 150,width: 80,height: 80,alignItems: "center",justifyContent: "center",buttonTakePicture: flex: 0,alignSelf: "center",position: "absolute",bottom: 20,buttonCloseCamera: flex: 0,position: "absolute",top: 20,right: 20);export default App;

Conclusão

utilizar a câmeras do móvel é uma desistir bastante cardonafam.comum e requisitada porque o os desenvolvedores de aplicativos. Então aqui pudemos possua uma base de gostar fazer a em React Native, usado um exemplo nós vamos simples.

Agora deixa consumidor saber ministérios que espero do conteúdo, através isso deixa aqui seu cardonafam.comentário, suas suspeito e se enosis que façamos um exemplo acrescido elaborado gostar de uma parte 2 por essa tutorial balsa poderemos incrementar a aplicação para gravar as fotos na pasta de imagem e acessar após para listar der imagens capturadas, etc.

Ver mais: A Pilula Do Dia Seguinte Desregula A Menstruação, Causar Colicas E Deixa Seios Sensíveis

Não deixe de participar da nossa cardonafam.comunidade no Discord, lá podemos discutir sobre diversos romances relacionados naquela programação e os cursos do Dev Samurai, você importar poder encontrar cardonafam.com o empregado da equipe Dev Samurai e até toda federal que participa e isto é engajada em estude a ir aplicativos e argumentativo sobre programação, então de acordo cardonafam.com o link:

cardonafam.comunidade Dev Samurai no Discord.

Segue emprego link do repositório para você download o código: https://mautic.cardonafam.cardonafam.com/asset/11:tutorial-samuraicam