라벨이 vscode인 게시물 표시

[react-native]앱이 꺼져도 데이터를 보존하는 방법

이미지
   앱을 완전히 껐다가 켰을 때, 다시 로그인해야 하면 참 귀찮아진다. 사용자들의 편의를 위해서 요즘 앱들은 껐다가 다시 켜도 로그인되어 있는 화면을 다시 보여주곤 한다. 그렇게 할 수 있는 것은, 앱이 꺼지기 직전에 사용자가 로그인이 되어 있었는지 체크 한 후, 로그인한 적이 있으면(아직 로그아웃하지 않았다면) 바로 메인 화면으로 보내는 로직을 사용하기 때문이다.  그러기 위해선, 앱이 꺼져도 저장/관리한 데이터는 계속 사용할 수 있는 AsyncStorage 를 사용해야 한다. 1. vscode 터미널에서 A syncStorage 설치하기. expo install @react-native-async-storage/async-storage AsyncStorage는 react-native에서 가져와 사용할 수 있는 라이브러리로, 주로 이럴 때 사용한다.   1) 로그인 후 앱을 껐다 켰다 ⇒ 로그인이 되어 있으면 바로 메인 화면 보여주기   2) 글을 작성하다 페이지를 이탈했다 ⇒ 작성 중이던 글을 가져오기   3) 사용자가 좋아요를 눌렀던 게시글이 있다 ⇒ 매번 서버에서 가져오지 않고, AsyncStorage에서 꺼내 관리하기  이렇게 앱이 꺼져도 보존되면 편리한 데이터들을 AsyncStorage에 담아 관리하곤 한다. 2. A syncStorage 사용하기. 로그인했을 때 AsyncStorage 통에 로그인한 사용자 이메일을 저장한다. 그럼 이 통을 살펴볼 때 사용자 이메일이 있으면 로그인 한 적이 있다는 뜻이고, 로그아웃했을 때 AsyncStorage 통에 든 이메일을 지운다. 그럼 로그아웃 시 이 통을 조사했을 때, 아무것도 안 나오는 것이다. 순서로 살펴보자면,   1) SignInpage 에서 화면이 그려진 다음 useEffect 가 실행된다   2) useEffect 에서 AsyncStorage 속 session...

[react-native]움직이는 배너만들기-애니메이션

[스파르타 코딩클럽 | 앱개발 플러스 2주차 수업] 애니메이션-움직이는 배너만들기 리액트 네이티브에서 직접적으로 애니메이션 기능을 제공하지만, (링크) 이미 또 구현을 다 해놓고 쓰기만 하라고 하는 도구들도 너무나 많다. (링크) 가만히 있는 배너를 재미있게 꾸미기 위해 react-native-animatable  이란 라이브러리를 사용하여 배너를 움직이게 바꿔보았다.  우선 react-native-animatable 을 다음 명령어로 vscode 터미널에 입력하여 설치하도록 한다. yarn add react-native-animatable 현재 제작중인 앱의 MainPage.jsx 에 다음과 같이 코딩하니 위 화면과 같이 puls 로 동작하는 애니메이션이 만들어졌다. import React , { useState , useEffect } from 'react' ; import { StyleSheet , Image , View } from 'react-native' ; import { Col , Row , Grid } from 'react-native-easy-grid' ; import { Container , Header , Content , Left , Icon , Right , Text , Button , } from 'native-base' ; import CardComponent from '../components/CardComponent' ; import HeaderComponent from '../components/HeaderComponent' ; import * as Animatable from 'react-native-animatable' ; const data = require ( '../data.json' ); export default functio...

[react] 간단한 카운터앱 만들기

이미지
 스파르타 코딩클럽 앱개발플러스 1주차 수강을 마무리하는 날, 매주마다 숙제로 마무리를 하는데, 난 거의 숙제해설을 보고 하는 편... ㅎㅎ;; 뭐 ㅋ도 모르면서 코딩을 하다보니... 그래도 종합반을 듣고 와서 그런지 어떤 파일을 추가해야하는지 어디에 추가해야하는지가 좀 감이 온다. 어떤 코딩을 넣어야하는지는 아직도 잘 모르지만, 이만큼의 발전도 감사할 따름이다.  컴포넌트 폴더에 플러스, 마이너스 파일을 추가하고,  App,jsx에 카운트 상태가 변경되도록 하면 되는...  명령어들을 쓰는게 아직은 어색하고 따라해야하는 실정이지만, 계속 하다보면 언젠가는 익숙해지겠지... +++MinusButton.jsx import React from 'react'; import { StyleSheet, View, Text, TouchableOpacity } from 'react-native'; export default function MinusButton({ Minus }) { return ( <TouchableOpacity onPress={Minus} style={styles.container}> <Text> Minus </Text> </TouchableOpacity> ); } const styles = StyleSheet.create({ container: { flex: 1, alignItems: 'center', backgroundColor: 'green', width: 50, height: 50, }, }); +++PlusButton.jsx import React from 'react'; import { StyleSheet, View, Text, TouchableOpacity } from 'react-native'; export default functio...

[FireBase]undefined is not an object (evaluating 'firebase.apps.length') 오류

  파이어베이스 라이브러리의 버전이 업데이트 되면서 import 의 사용법이 달라짐. firebaseConfig.js 파일에서, import * as firebase from 'firebase/app'; 를 import firebase from 'firebase/app'; 로 바꿔주면 해결~!!! ++++++ The usage of import changes as the version of the Firebase library is updated. import * as firebase from 'firebase/app'; -----> import firebase from 'firebase/app';