본문 바로가기

react-native9

0057. Client에서 Postman과 연결된 로그인 확인하기(Feat. API) 1. react-native-config 설치 및 환경설정 앞에서 설치했다면 건너뛰어도 된다. https://coder-chobo.tistory.com/57 0056. Client에서 Postman으로 API 회원가입(POST) 요청 보내기(.env 활용) 1. react-native-config 설치 전역(global) 설치 npm i -g react-native-config 로컬 설치 npm i react-native-config 2. build.gradle 설정 루트 디렉토리\android\app/build.gradle의 파일을 선택한다. 비슷한 위치에 하나 더 있으니 coder-chobo.tistory.com 2. SignIn Code 입력 try { setLoading(true); console.. 2024. 2. 8.
0056. Client에서 Postman으로 API 회원가입(POST) 요청 보내기(.env 활용) 1. react-native-config 설치 전역(global) 설치 npm i -g react-native-config 로컬 설치 npm i react-native-config 2. build.gradle 설정 루트 디렉토리\android\app/build.gradle의 파일을 선택한다. 비슷한 위치에 하나 더 있으니 헷갈리지 않도록 한다. 정확한 위치에는 코드가 많을 것이다. android 폴더 안의 build.gradle 파일 안의 코드는 그렇게 많지 않다. 정확한 위치에 다음의 코드를 추가한다. apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" 3. Postman 회원가입(POST) IP주소 확인.. 2024. 2. 8.
0054. 실전 FE 개발 배우기11 - accessToken과 refreshToken, EncryptedStorage와 AsyncStorage 사용하기 섹션 2. 서버 API와 연동하기 7강. accessToken과 refreshToken 로그인을 하고 나면 서버개발자가 프론트 개발자에게 name, email, accessToken, refreshToken 등을 줄 것이다. dispatch( userSlice.actions.setUser({ name: response.data.data.name, email: response.data.data.email, accessToken: response.data.data.accessToken, refreshToken: response.data.data.refreshToken, }), ); 위의 규격대로 data를 받기로 한 약속인 것이다. 통신할 때 token을 넣어 줘야 서버가 내가 누군지를 알 수 있다. App.. 2024. 2. 6.
0053. 실전 FE 개발 배우기10 - Redux, Config, Encrypted Storage, AsyncStorage, Store, Reducer, Slicer, Action, Dispatch 섹션 2. 서버 API와 연동하기 5강. Redux, Config, EncryptedStorage, AsyncStorage의 차이 앱을 껐다 켜도 저장되는 저장공간을 써야 함 npm install @react-native-async-storage/async-storage AsyncStorage는 암호화되지 않아서 누구나 값을 열어볼 수 있다. 그래서 보안에 민감하지 않은 데이터만 넣어 두어야 한다. 보안에 신경 써야 하는 값들(비밀번호, 개인정보 등)은 EncryptedStorage에 저장해야 한다. npm i react-native-encrypted-storage 라이브러리 설치 그래서 어디에 데이터를 저장할지 상황에 맞게 채택해야 한다. Redux : 앱이 꺼지면 날아감, 불러오기 등의 성능은 제일 .. 2024. 2. 6.
0052. 실전 FE 개발 배우기9 - 서버 API 연동, axios로 서버에 요청, back-end 서버 켜기, 로딩창, react-native-config 섹션 2. 서버 API와 연동하기 1강. axios로 서버에 요청 보내기 1) back-end 서버 켜기 back-end와 연결함 cd C:\Users\fortr\food-delivery-app-master\food-delivery-app-master\back back-end 서버가 있는 폴더로 이동 npm i 필요한 패키지 설치 npm start 이러면 서버에 연결된 것 2) axios 설치 npm i axios axios 설치 후에는 npm package기 때문에 run-android를 다시 해야 한다. 서버 요청은 요즘 axios는 좀 덜 쓰는 추세이다. (ky나 got으로 넘어가는 추세이나 react-native와 호환 여부가 불투명해서 axios가 안전하다.) 장점 : axios 하나만 써도 클.. 2024. 2. 5.
0050. 실전 FE 개발 배우기7 - 로그인 화면 만들기, TextInput의 다양한 옵션 사용하기(Feat. 진짜 개발 시작!) 섹션 1. 리액트 네비게이션 3강. 로그인 화면 만들기 칠드런이 하나만 오는 때가 생기는데, 그때는 Tab.Group을 사용해서 묶어주면 된다. 이렇게 프레그먼트로 묶어주는 것과 같은 이치다. 이렇게 쓰고 이메일을 입력하라는 부분을 누르면 키보드가 올라온다. TextInput을 썼기 때문 알림을 뜨게 만드는 Alert.alert 이제 꾸미기만 하면 된다. import React, { useCallback, useState } from "react"; import { Alert, Pressable, StyleSheet, Text, TextInput, View } from "react-native"; function SignIn() { const [email, setEmail] = useState(''); .. 2024. 1. 25.
0049. 실전 FE 개발 배우기6 - 라우트 params, 헤더 옵션들, 앱 라우터 구성, ESLint 및 Prettier 설치 및 설정, 중첩 라우팅 섹션 0. 리액트 네이티브 시작! 13강. 라우트 params와 헤더 옵션들 타입스크립트 : 자바스크립트의 변수, 매개변수, 리턴값에 타입이 붙어있는 것 파라미터 : 페이지가 있으면 그 페이지에 변수를 추가해 주는 개념 https://github.com/Edison-im/FoodDeliveryApp 여기에서 Edison-im, FoodDeliveryApp이 모두 파라미터다. 유저에 따라서 휙휙 변할 수 있는 것 type RootStackParamList = { Home: undefined; Details: {itemId: number; otherParam?: string}; }; 현재 App.tsx에서 파라미터는 따로 없어서 비워둔 상태이다. 네비게이터 : 스크린들의 그룹 Stack.Navigator :.. 2024. 1. 25.
0048. 실전 FE 개발 배우기5 - flex, 정렬(justifyContent, alignItems), 버튼 종류, padding 섹션 0. 리액트 네이티브 시작! 11강. 리액트 네비게이션 사용해 보기 const Stack = createNativeStackNavigator(); function App() { return ( {/**/} {/* {props => }*/} {/**/} ); } 스크린을 두 개로 나누고, Home 화면이 메인(initialRouteName="Home")인 화면이다. 화면을 만들기 전에 미리 화면 구조에 대해서 생각한 다음에 구성해야 한다. 12강. flex와 요소배치 타입스크립트는 자바스크립트의 매개변수, 리턴 값, 변수 이 3개에다가 타입을 붙인 것 그래서 콜론(:) 뒷부분이 있으면 타입스크립트라고 인식해도 된다. function HomeScreen({navigation}: HomeScreenPro.. 2024. 1. 25.
0047. 실전 FE 개발 배우기4 - 환경설정 오류 해결, Flipper 설치하기(Feat. 매우 많은 에러 해결하기) 1. 다시 돌아온 배경 해명(?) 기존에 안드로이드 스튜디오를 깔다가 무한 오류가 발생하여 잠깐 멈추고, TypeScript로 잠시 넘어갔었다. 그런데 운명의 장난인지 뭔지는 모르겠지만, 창업팀 내부적으로 우선 개발을 시작하기로 하여서 갑자기 앱 개발의 우선순위가 올라가게 되었다. 또한, 시간을 두고 멀리서 보니 무한 오류의 해결책이 어느 정도 생각이 나서(+해결할 용기와 오기가 생겨서) 다시 앱 만드는 강의를 들으면서 앱을 만들기로 결정했다. 그런데 여전히 문제가 있었으니 바로 '환경설정'이었다. 필자는 포맷하는 방법을 잘 몰라서 전체적으로 밀고 새로 까는 옵션은 고려하지 않았다. 기존의 환경을 최대한 살리면서 오류를 해결하고 싶었던 것도 한몫 했다. 그래서 엄청난 시행착오를 겪은 결과, 다음과 같은 .. 2024. 1. 24.