๊ฐœ๋ฐœ ๊ณต๋ถ€/๋ฐ๋ธŒ์ฝ”์Šค TIL

[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240417 - React Native ์บ ํ•‘์•ฑ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ (1)

๊ฐ€์šค์ด 2024. 4. 18. 01:28

Intro


๋ฐ๋ธŒ์ฝ”์Šค ๋งˆ์ง€๋ง‰ ๊ฐœ์ธํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค.

16์ผ๋ถ€ํ„ฐ์˜€๋Š”๋ฐ ๊ฐ•์˜ ๋“ฃ๋А๋ผ 17์ผ ์ €๋…๋ถ€ํ„ฐ ์‹œ์ž‘..

์ด๋ฒˆ์—” Figma๋กœ UI ๋””์ž์ธ์ด ์ฃผ์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ๋Š” ์ตœ๋Œ€ํ•œ ๋””์ž์ธ๊ณผ ๋˜‘๊ฐ™์ด ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์— ์žˆ๋‹ค.

์ฃผ์–ด์ง„ ๋””์ž์ธ์„ ๋˜‘๊ฐ™์ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ๋Šฅ๋ ฅ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค...!

 

 

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ƒํ™ฉ


์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ฐ•์˜์™€ Nodejs express ๊ฐ•์˜๋ฅผ ๋“ฃ๋‹ค๊ฐ€ ๋‹ค์‹œ React Native๋ฅผ ํ•˜๋ ค๋‹ˆ ์ˆœ๊ฐ„ ์–ด๋–ป๊ฒŒ ํ–ˆ๋”๋ผ...? ๊ธฐ์–ต์ด ์•ˆ๋‚ฌ๋‹ค.

์ด์ „์— React Native ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ธฐ๋กํ•ด ๋†“์€ ๊ฒƒ๋“ค ๋‹ค์‹œ ๋ณด๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์•ž์„œ,

์ €๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์‚ฌ์šฉํ–ˆ๋˜ ํˆด์ธ Linear๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœํ•ด์•ผ ํ•  ์‚ฌํ•ญ๋“ค์„ ๋‚˜์—ดํ•˜๊ณ  ์ด์Šˆ ๊ด€๋ฆฌ๋ฅผ ํ•˜์˜€๋‹ค.

 

https://linear.app/docs/get-the-app

 

Download Linear – Linear Docs

Linear is available on browsers, macOS, and Windows.

linear.app

 

 

react-native ํ”„๋กœ์ ํŠธ ์„ธํŒ…

npx react-native@latest init SNSProject

 

 

๊ฐ€์žฅ ๋จผ์ € ๊ตฌํ˜„ํ•  ๊ฒƒ์€ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์ด์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๊ธฐ์œ„ํ•ด react-native-navigation ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค.

react-native navigation

# ๊ธฐ๋ณธ ์„ค์น˜
npm install @react-navigation/native
npm install react-native-screens react-native-safe-area-context
npx pod-install ios

 

ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด App.js์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด NavigationContainer ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import Router from './src/router';

function App(): React.JSX.Element {
  return (
    <NavigationContainer>
      <Router />
    </NavigationContainer>
  );
}

export default App;

 

 

๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ์Œ“์•„ ์˜ฌ๋ฆฌ๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„๋˜๋Š” ์Šคํƒ ๋„ค๋น„๊ฒŒ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์„ค์น˜ํ–ˆ๋‹ค.

# navigation stack
npm install @react-navigation/native-stack
const Router = () => {
  return (
    <Stack.Navigator screenOptions={{ headerShown: false }}>
      <Stack.Screen name="MainTab" component={MainTab} />
    </Stack.Navigator>
  );
};

 

 

ํ•˜๋‹จ ํƒญ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์„ค์น˜ํ–ˆ๋‹ค.

npm install @react-navigation/bottom-tabs
const MainTab = () => {
  return (
    <Tab.Navigator
      tabBar={renderTabBar}
      screenOptions={{
        headerShown: false,
      }}>
      <Tab.Screen name="camping" component={HomeTab} />
      <Tab.Screen name="community" component={CommunityPage} />
      <Tab.Screen name="article" component={ArticlePage} />
      <Tab.Screen name="settings" component={SettingsPage} />
    </Tab.Navigator>
  );
};

 

 

 

์ด์Šˆ ์‚ฌํ•ญ


ios pod ์ดˆ๊ธฐํ™”

๋ชจ๋“  ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ํ›„, ios์—์„œ pod install์„ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ pod install์„ ์ง„ํ–‰ํ–ˆ์Œ์—๋„ ์ œ๋Œ€๋กœ ์ ์šฉ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๋กœ ์•ฑ์ด ์—ด๋ฆฌ์ง€ ์•Š์€ ์ผ์ด ๊ฐ€๋” ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด์ „์— pod์˜ ์บ์‹œ๊ฐ€ ๋‚จ์•„์žˆ์–ด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿด ๊ฒฝ์šฐ์—” pod ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ์ดˆ๊ธฐํ™”๋ฅผ ํ•œ ํ›„ ๋‹ค์‹œ pod install์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

pod deintegrate
pod cache clean --all
pod install

 

 

bottom tab bar UI

 

์œ„์ฒ˜๋Ÿผ ๊ตด๊ณก์žˆ๋Š” ๋ฐ•์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์–ด์„œ ๋ฐ•์Šค ๋‘ ๊ฐœ๋ฅผ ๋ถ™์—ฌ ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ์— border-radius๋ฅผ ์ ์šฉํ•ด๋ณด๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„์„ ํ–ˆ๋Š”๋ฐ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋‚˜์˜ค์ง€ ์•Š์•„ ๋ฉ˜ํ† ๋‹˜๊ป˜ ์—ฌ์ญค๋ณด๋‹ˆ ๊ตด๊ณก์ด 2๊ฐœ๊ฐ€ ์•„๋‹Œ 3๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ•์Šค๋ฅผ ์ด์–ด๋ถ™์ด๋Š” ์‹์œผ๋กœ๋Š” ๊ตฌํ˜„์ด ์–ด๋ ต๋‹ค๊ณ  ํ•˜์…จ๋‹ค.

SVG๋กœ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•˜์…จ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ react-native์—์„œ SVG๋ฅผ ์“ฐ๋ ค๋ฉด ๋˜ ์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด์„œ ์ผ๋‹จ ์ค‘์š”ํ•œ ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ๋๋‚ด๊ณ  ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

 

 

 

์ถ”ํ›„ ์ง„ํ–‰์‚ฌํ•ญ


4/18 TODO

  • ๊ณต๊ณต๋ฐ์ดํ„ฐ API ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • Home ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ
  • Article ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ