2019년 6월 1일 ~ 5일

Written on June 1, 2019

📅 2019년 6월 1일

웹에서는 token을 받으면 local storage에 저장하는 것처럼, 모바일 에서는 AsyncStorage를 쓸 수 있다.

리액트 네이티브에서 import 해올 수 있는 AsyncStorage는 deprecated되었고, 이제 react-native-community/react-native-async-storage를 써야한다.

import AsyncStorage from "@react-native-community/async-storage";

local storage처럼 setItem, getItem 등을 사용할 수 있는데, 각 API는 Promise를 반환한다.

key, value 페어로 저장이 되며, keyvaluestring 형태여야 한다.

📅 2019년 6월 2일

axios

axios는 HTTP 통신을 할 수 있는 자바스크립트 라이브러리로, 브라우저와 node.js 플랫폼에서 모두 사용할 수 있다. Promise를 기반으로 async/await 문법을 사용, XHR request를 쉽게 할 수 있다. 무엇보다 JSON 데이터를 자동변환 해주기 때문에 개꿀 🍯

정규표현식

정규표현식(正規表現式, Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 ‘검색’하거나 ‘치환’하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단이다.

이메일주소 확인, 비밀번호 규칙 등에 활용될 수 있으며,

아래와 같이 쓸 수 있다.

let emailPattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;

let emailIsValid = emailPattern.test(email); # boolean

📅 2019년 6월 5일

React Native WebView

google social 로그인 시 계정연결을 위해 Webview 를 씀

  • userAgent를 설정해 주어야 함
import React, { Component } from "react";
import { SafeAreaView, Platform, View, WebView } from "react-native";
let userAgent =
  "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/ 604.1.21 (KHTML, like Gecko) Version/ 12.0 Mobile/17A6278a Safari/602.1.26";
if (Platform.OS !== "ios") {
  userAgent =
    "Mozilla/5.0 (Linux; Android 8.0.0; TA-1053 Build/OPR1.170623.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3368.0 Mobile Safari/537.36";
}
export default class MyInlineWeb extends Component {
  render() {
    return (
      <View>
        <WebView
          userAgent={userAgent}
          originWhitelist={["*"]}
          source={this.props.source}
        />
      </View>
    );
  }
}


  • 뿐만아니라, xcode의 AppDelegate.m에도 아래 내용을 추가해 주어야 함
NSString *userAgent = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:userAgent, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];



참고자료

👩🏻‍💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻‍♀️

in the process of becoming the best version of myself