728x90 ๋ฐ์ํ ๐ฑ Cross Platform31 [React Native] ์ค์์ดํ ํ๋ฉด ์ญ์ ๋ฒํผ ๋์ค๋ ์ปดํฌ๋ํธ ๊ตฌํํ๊ธฐ (Swipeable Component with delete button) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋์ React-Native์์ ์ปดํฌ๋ํธ๋ฅผ ์ค์์ดํ ํ์ ๋ ์ญ์ ๋ฒํผ์ด ๋์ค๋ ๊ธฐ๋ฅ์ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Install npm install --save react-native-gesture-handler Screen.tsx import {Swipeable, GestureHandlerRootView} from 'react-native-gesture-handler'; ์ค๋ฅธ์ชฝ์ ๋ค์ด๊ฐ Delete ๋ฒํผ์ ๋ง๋ค์ด ์ค๋๋ค. dragX๋ฅผ ๋ฐ์์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๊ณ , id์ List์ index๋ฅผ ๋ฐ์์ ๋ฒํผ์ ๋๋ ์ ๋ ํด๋น index๋ฅผ ์ถ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค. const renderRightActions = (dragX, index) => { co.. 2022. 8. 18. [React Native] RTK-Query ํ๋ผ๋ฏธํฐ์ ๋ง๊ฒ ํน์ ๋ฐ์ดํฐ๋ง ๋ถ๋ฌ์ค๊ธฐ(Get specific data by parameter using RTK-query) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋์ RTK-Query์์ ํ๋ผ๋ฏธํฐ์ ๋ง๊ฒ ์ํ๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ง์ ์ฝ์ง์ ํ๊ณ ๊ฒฐ๊ตญ ํด๊ฒฐ๋ฒ์ ์์๋ด๊ฒ ๋์ด ๊ธ๋ก ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ 1. ์ฒซ ๋ฒ์งธ ์๋ ์ฐ์ ์ ๊ฐ ํ๋ ค ํ๋๊ฑด ์ ์ ๋ฅผ ์ด๋ฆ์ผ๋ก ์กฐํํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด์๋๋ฐ์. ์๋์ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ํตํด์ ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์์ต๋๋ค. export const userAPISlice = createApi({ reducerPath: 'userAPI', baseQuery: fetchBaseQuery({baseUrl: 'http://192.168.111.34:3001/api'}), endpoints: builder => ({ ... getUserByName: builde.. 2022. 8. 12. [React Native] useNavigation์ useRoute ์ด์ฉํด์ ํ๋ฉด ์ด๋ํ๊ณ ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ (Move and Pass data between two screens using Hooks) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ํ์์ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ์์ navigation์ props๋ก ์ ๋ฌํ๋ ๊ฒ ๋๋ฌด ๋ถํธํ๋๋ฐ์. ์ค๋์ React-Native์์ navigation์ props๋ก ์ ๋ฌํ๋ ๊ฒ์ด ์๋, useNavigation๊ณผ useRoute๋ฅผ ๋ง๋ค์ด ์ค์ ํ๋ฉด์ ์ด๋๊ณผ ํจ๊ป ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ๋ฐ์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Install npm install @react-navigation/native npm install @react-navigation/native-stack npm install @react-navigation/stack npm install react-native-safe-area-context Navigation Navigation/index.ts ๊ธฐ์กด Pro.. 2022. 8. 12. [React Native] ChatApp Socket.io Room ์ ์ฉํ๊ธฐ (feat. TypeScript) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ ๋ฒ ๊ธ์์ Node.js์์ Socket.io๋ฅผ ์ด์ฉํ์ฌ Room์ ๋ง๋ค์ด ๋ณด์๋๋ฐ์. (ํน์ ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ํ์ธํด ์ฃผ์ธ์!) ์ค๋์ ๋ฐฑ์๋ ์๋ฒ์์ ์จ ๋ฐ์ดํฐ๋ฅผ ํ๋ก ํธ์ ์ ์ฉํด ๋ณด๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Install npm install @react-navigation/native npm install @react-navigation/native-stack npm install react-native-screens npm install react-native-safe-area-context npm install socket.io-client ScreenEnums ์คํฌ๋ฆฐ ์ข ๋ฅ๋ฅผ Enum์ผ๋ก ๋ง๋ค์ด ๋์ต๋๋ค. export .. 2022. 8. 10. [React Native] RTK-Query๋ก ์๋ฒ์ ํต์ ํ๊ธฐ (feat. Typescript) Install redux-toolkit npm install @reduxjs/toolkit TodoModel interface TodoModel { id: number; title: string; content: string; } Create API Slice createApi์ fetchBaseQuery๋ฅผ import ํด์ค๋๋ค. import {createApi, fetchBaseQuery} from '@reduxjs/toolkit/query/react'; ์ ๋ TodoList๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋์ ๊ฐ์ด ๋ง๋ค์ด ์ฃผ๊ฒ ์ต๋๋ค. reducerPath: ์คํ ์ด์ reducer๋ก ์ง์ ํ Path์ ์ด๋ฆ baseQuery: ๊ธฐ๋ณธ์ผ๋ก ์ง์ ํ ์๋ฒ URL tagTypes: ์๋์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํจ์น๋๊ฒ ๊ตฌ๋ณํ ํ์ endpo.. 2022. 8. 6. [React Native] Redux-Toolkit์ด๋? (feat. ๊ธฐ์กด Redux์ ๋น๊ต) ์๋ ํ์ธ์. Foma ์ ๋๋ค! ์ ๋ฒ ๊ธ์์ Redux๊ฐ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด ๋ค๋ค์๋๋ฐ์. (์์ง ์ ๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ณด์๋ฉด ๋ฉ๋๋ค!) Redux์ ๋ํด ์ฐพ์๋ณด๋ Redux๋ฅผ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ํจ์จ์ ์ธ Redux-Toolkit์ด ์๋๋ผ๊ตฌ์. ๊ทธ๋์ ์ค๋์ Redux-Toolkit์ด ๋ฌด์์ด๊ณ ์ ๋ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ํจ์จ์ ์ธ์ง์ ๋ํด ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Redux-Toolkit์ด๋? Redux-Toolkit์ Redux๋ฅผ ๋ง๋ ๊ณณ์์ ๊ณต์์ ์ผ๋ก ํจ์จ์ ์ธ Redux ๊ฐ๋ฐ์ ์ํด ๋ง๋ค์ด์ง ํดํท์ ๋๋ค. Redux ์์ฑํ๋ ์ฝ๋๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์๊ณ , Redux ๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ด๋ฏ๋ก ์ฌ์ฉ์ ๊ณต์์ ์ผ๋ก ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๋ฉด์์ ๋ ํจ์จ์ ์ด๋ผ๋ ๊ฒ ์ผ๊น์? ๊ธฐ.. 2022. 8. 6. [React Native] Redux๋ฅผ ์ด์ฉํด Counter ์ฑ ๋ง๋ค์ด ๋ณด๊ธฐ (feat. Typescript) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ด์ ๊ธ์์ Redux์ ๋ํด ๋ค๋ค๋๋ฐ์. ์ค๋์ ๊ทธ Redux๋ฅผ ์ด์ฉํด ๊ฐ๋จํ Counter ์ฑ์ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ (ํ๊ฒฝ์ React Natvie CLI, Typescript๋ก ์งํํ๊ฒ ์ต๋๋ค.) Preview Install Typescript Project Init npx react-native init "ํ๋ก์ ํธ ์ด๋ฆ" --template react-native-template-typescript redux npm install redux react-redux npm install react-redux @types/react-native npm install @types/react-native Counter ๊ฐ์ฅ ๋จผ์ ์นด์ดํฐ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด ์ค.. 2022. 8. 4. [React Native] Redux๋? (feat. Flux) Redux๋? Javascript ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค. ์ฌ๊ธฐ์ "์ํ?๋ ๋ฐ๋๋ ์ด๋ค ๊ฐ๋ค์ ์๋ฏธํ๋๋ฐ์. ์๋ฅผ ๋ค๋ฉด ๊ณ์ฐ๊ธฐ์์ ์ด๋ค ๋ฒํผ๋ค์ ๋๋ฅด๋ฉด ๊ณ์ฐํ ๊ฐ์ด ๊ณ์ํด ๋ฌ๋ผ์ง์ฃ ? ๋ฐ๋ก ๊ณ์ฐํ ๊ฐ์ด => ๊ณ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์ํ์ธ ๊ฒ ์ ๋๋ค. Flux๋? Redux๋ Facebook์ Flux ๋์์ธ ํจํด์์ ์ ๋๋ ๊ฒ์ธ๋ฐ์. Flux๋ Web ์ดํ๋ฆฌ์ผ์ด์ ์ MVC ํจํด์ผ๋ก ๊ตฌํํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ณ ์ ๋ง๋ค์ด ์ก์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ์๊น์? ๊ธฐ์กด MVC๋ ์๋์ ๊ฐ์ด Model๊ณผ View๊ฐ ์๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ต๋๋ค. ํ์ง๋ง ์ฑ์ด ์ปค์ง๋ฉด ์ปค์ง์๋ก Model๊ณผ View์ ์๋ฐฉํฅ ์ํต์ด ๋์ด๋ฌ๊ณ , ์ด๊ฒ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋น ๋ฅด๊ฒ.. 2022. 8. 3. [React Native] ์ค์๊ฐ ์ฑํ ์ฑ ๋ง๋ค์ด๋ณด๊ธฐ 2 - Websocket ์ด์ฉํ์ฌ ํ๋ก ํธ ๊ตฌํํ๊ธฐ (Build a real-time chatapp 1 - Implement frontend with websocket) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ง๋ ๊ธ์ Node.js๋ก ์น์์ผ ์๋ฒ๋ฅผ ๊ตฌํํ๋๋ฐ์. ์ค๋์ React Native์์ ํด๋น ์๋ฒ๋ฅผ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ์ฑํ ์ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ (ํ๊ฒฝ์ React Native CLI + Typescript ์ ๋๋ค.) Tutorial ์ค์๊ฐ ์ฑํ ์ฑ ๋ง๋ค์ด๋ณด๊ธฐ 1 - Websocket ์ด์ฉํ์ฌ ๋ฐฑ์๋ ๊ตฌํํ๊ธฐ (feat. Websocket) (Build a real-time chatapp 1 - Implement backend with websocket) ์ค์๊ฐ ์ฑํ ์ฑ ๋ง๋ค์ด๋ณด๊ธฐ 2 - Websocket ์ด์ฉํ์ฌ ํ๋ก ํธ ๊ตฌํํ๊ธฐ (Build a real-time chatapp 1 - Implement frontend with webs.. 2022. 7. 28. [React Native] React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 5 - Axios ์ด์ฉํ์ฌ CRUD ๊ตฌํํ๊ธฐ (Implementing a api with Axios) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ด๋ฒ ๊ธ์ React Native + Node.js + MySQL ํํ ๋ฆฌ์ผ์ ๋ง์ง๋ง ๋จ๊ณ์ธ Axios๋ฅผ ํ์ฉํ์ฌ CRUD๋ฅผ ๊ตฌํํด ์ค์ ์๋ฒ์ API๋ฅผ ์์ฒญํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ , ์์ฑํ๊ณ , ์์ ํ๊ณ ,์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Tutorial React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 1 - ์๋ฒ ์ด๊ธฐ ์ธํ ํ๊ธฐ (Initialize server setting) React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 2 - MySQL ํ ์ด๋ธ ๋ง๋ค๊ธฐ (Create a MySQL Table) React Native + Node.js + MySQL To do lis.. 2022. 7. 27. [React Native] React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 3 - React Native ํ๋ฉด ๊ตฌํํ๊ธฐ (Implement frontend) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ React Native + CLI + TS๋ก ํฌ ๋ ๋ฆฌ์คํธ ํ๋ฉด์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Tutorial React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 1 - ์๋ฒ ์ด๊ธฐ ์ธํ ํ๊ธฐ (Initialize server setting) React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 2 - MySQL ํ ์ด๋ธ ๋ง๋ค๊ธฐ (Create a MySQL Table) React Native + Node.js + MySQL To do list ๋ง๋ค๊ธฐ 3 - React Native ํ๋ฉด ๊ตฌํํ๊ธฐ (Implement frontend) React Native + Node.js + My.. 2022. 7. 26. [React Native] ํจ์ํ ์ปดํฌ๋ํธ props ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ ๋ฐ์ดํธ ํด์ฃผ๊ธฐ(Functional Component update on props change) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋์ ํจ์ํ ์ปดํฌ๋ํธ์์ props๊ฐ ๋ฐ๋ ๋๋ง๋ค ํ๋ฉด์ด ์ ๋ฐ์ดํธ ๋๋๋ก ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Problem ์๋์ ๊ฐ์ด ์ถ๊ฐ ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ์์ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ํผ ํ์์ ๋ชจ๋ฌ์ด ๋จ๋๋ก ๊ตฌํ ํ์ต๋๋ค. ์ ๊ณผ์ ์์ ์์ ๋ฒํผ์ ๋๋ ์ ๋ ํด๋น ๋ฒํผ์ด ๋๋ฆฐ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฐ์ด ์ธํ ์์ ๋ฏธ๋ฆฌ ์์ฑ๋ผ๋๋ก ํ๊ณ , ์ถ๊ฐ ๋ฒํผ์ด ๋๋ ธ์ ๋ ๋น ์ธํ์ฐฝ์ด ๋ณด์ด๋๋ก ๊ตฌํํ๊ณ ์ถ์์ต๋๋ค. ์ผ์ชฝ์ด ์ถ๊ฐ(+) ๋ฒํผ์ ๋๋ ์ ๋, ์ค๋ฅธ์ชฝ์ด ์์ ๋ฒํผ์ ๋๋ ์ ๋์ ๋๋ค. TodoList.tsx ์ ๋ฆฌ์คํธ ํ๋ฉด์์ useState๋ฅผ ๊ตฌํํด ์ค๋๋ค. const [todos, setTodos] = useState(todoDatas); const [todo, setTo.. 2022. 7. 26. ์ด์ 1 2 3 ๋ค์ 728x90 ๋ฐ์ํ