๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋?
๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)๋ iOS์ ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ตฌํ๋ ๊ธฐ์กด์ ๋ชจ๋ฐ์ผ ์ฑ๋ค์ ์น๋ทฐ๋ฅผ ์ด์ฉํ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ด์์ต๋๋ค. ํ์ง๋ง ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฐ๋ฐํ์ง๋ง, ํ๋ฉด ์ธํฐํ์ด์ค๋ ๋ค์ดํฐ๋ธ ์์ ฏ์ผ๋ก ์ปดํ์ผํ์ฌ ๋น๋๋ฉ๋๋ค. ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋ ๋ค์ดํฐ๋ธ UI๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
๊ฐ๋ฐํ๊ฒฝ
์๋๋ก์ด๋ ์ฑ์ ๋ง๋ค๊ณ ์๋ค๋ฉด ์๋๋ก์ด๋ ์คํ๋์ค๋ฅผ ๋ค์ด ๋ฐ์์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปดํจํฐ์ java๋ฅผ ๋ค์ด๋ฐ์์ผํฉ๋๋ค. ์๋ฎฌ๋ ์ดํฐ๋ ๋ค์ด๋ฐ์์ผํ๊ณ ์. ์ ๋ง ๋ฐ์์ผํ๋ ์ํํธ์จ์ด๊ฐ ๋ง์ต๋๋ค. IOS๋ Xcode๋ฅผ ๋ค์ด๋ฐ์์ผํ๊ณ ์. ํ์ง๋ง ์ ๋ ๋ค ์๋ต์ ํ๊ณ ํ๋กํ ํ์ดํ๊ณผ ํ ์คํธ๋ฅผ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ๊ฐ๋จํ ํด์ ์ด์ฉํ ๊ฒ์ ๋๋ค.
- node
- ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ
- iOS ๊ฐ๋ฐํ๊ฒฝ(Xcode)
- ์๋๋ก์ด๋ ๊ฐ๋ฐํ๊ฒฝ(JDK, ์๋๋ก์ด๋ SDK, ์๋๋ก์ด๋ ์คํ๋์ค)
์์ ํ์๋ก ๋ค์ด ๋ฐ์์ผํ๋ ์ํํธ์จ์ด๋ค ์ค์์ ์ ๋ node react-native๋ง ๋ค์ด ๋ฐ๊ณ exop๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ ํ๋ก์ ํธ๋ค๋ง ๋ง๋ค์ด๋ณผ ์์ ์ ๋๋ค. ๋ฆฌ์กํธ ๋ค์ดํฐ๋น๋ฅผ ์ฐ๋ฉด ํ์ผ์ ์ปดํ์ผํด์ ์จ์ผํ๋๋ฐ expo๊ฐ ์ด๋ถ๋ถ์ ํด๊ฒฐํด ์ค ๊ฒ๋๋ค.
Expo (https://expo.dev/)
๋ฆฌ์ํธ ๋ค์ดํฐ๋ธ๋ฅผ ๋ฒ ์ด์ค๋ก ios, aos, ์น ๋ฑ์ ๊ฐ๋ฐํ๊ณ ์ฝ๊ฒ ๋น๋, ๋ฐฐํฌํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ ์์ํฌ์ ๋๋ค. ๋ฐ๋๋ผ react-native๋ก ์ฑ์ ๊ฐ๋ฐํ ๋ ์ด๊ธฐ์ ํด์ค์ผ ํ๋ ์ฌ๋ฌ ๊ฐ์ง ํ๊ฒฝ ์ค์ ์ด๋ ๋น๋๋ฅผ ์ฝ๊ฒ ํด์ค๋๋ค. ์ ๊ฐ์ ์ฑ ์ด์ฌ์๊ฐ ์ฐ๊ธฐ์๋ ์์ฃผ ํ๋ฅญํ๋ค๊ณ ์๊ฐ๋ฉ๋๋ค. ํ์ง๋ง ์ง์ง ์ฑ์ ์ถ์ํ๊ณ ๊ณ์ํด์ ๋ฐ์ ์์ผ๋๊ฐ ๊ฒ์ด๋ผ๋ฉด expo๋ณด๋ค๋ ์ ๋๋ก ๋ ๊ฐ๋ฐํ๊ฒฝ์ ์กฐ์ฑํด๋๊ณ ๋ฐ์ ์ํค๋ ๊ฒ์ด ์ข๋ค๊ณ ํฉ๋๋ค.
Expo ์ค์นํ๊ธฐ
node์ npm์ด ์ค์น๋์ด์๋ค๋ฉด
#Install
npm install --global expo-cli
Mac๊ฐ๋ฐํ๊ฒฝ์ด๋ผ๋ฉด Watchman์ด๋ผ๋ ๊ฒ๋ ๋ค์ด ๋ฐ์์ฃผ์ ์ผํฉ๋๋ค.
brew update
brew install watchman
์ด์ ๊ฐ์์ ๋ชจ๋ฐ์ผ์์ app store๋ก ๊ฐ์ Expo (or Expo GO) ์ฑ์ ๋ค์ด๋ฐ์์ฃผ์๋ฉด ๋ฉ๋๋ค.
Expo๋ ๋ชจ๋ฐ์ผ์์ ๋ฐ๋ก React Native ์ฝ๋๋ฅผ ์คํ์์ผ์ ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค.
์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก React-native ํ๋ก์ ํธ๋ ๋ง๋ค์ด๋ด ์๋ค!
์ฐ์ expo๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ์ผ๋ก ๋์ด๊ฐ์ธ์
#Crate new project
expo init my-project
์ผ๋จ ์ค์น๋ฅผ ์์ํ๋ฉด ์๊ฐ๋ ๋ง์ด ๊ฑธ๋ฆฌ๊ณ ์. template๋ฅผ ์ ํํ ์ ์์ต๋๋ค. blank๋ฅผ ์ ํํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ค์น๊ฐ ์๋ฃ๋์์ผ๋ฉด ์ฃผ๋ก ์ฐ์๋ ์ฝ๋ ์๋ํฐ์์ ์คํํด์ฃผ์ธ์ ์ ๋ VSC๋ฅผ ์ผ์ต๋๋ค.
cd my-project
ํ๋ก์ ํธ๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค.
expo์ ๋ก๊ทธ์ธ๋ถํฐ ํด์ค์ผํฉ๋๋ค. ํฐ๋ฏธ๋์ฐฝ์์
expo login
์ด๋ผ๋ ๋ช ๋ น์ ๋ณด๋ด์๊ณ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐจ๋ก๋ก ๋ฃ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค
์ ๊ทธ๋ฐ ๋ค์์ npm run start๋ฅผ ํด์ค๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋ก expo ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค.
์ฌ๊ธฐ์ ๋ณด์ด๋ ํ๋จ์ qr์ฝ๋๋ VSC์์ ๋ณด์ด๋ ์ฝ๋๋ฅผ expo์ฑ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
App.js์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํด๋ณด์๋ฉด Expo ์ฑ์์ ๋ณด์ค ์ ์๋ต๋๋ค.
'๊ฐ๋ฐ > React-Native' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(ios) EAS๋ก expo ๋น๋ํ๊ณ testFlight์ ๋ฑ๋กํ๊ธฐ (feat.์ค๋ฅ) (0) | 2024.11.22 |
---|---|
[react-native] weekly calendar ๋ฃ์ด๋ณด๊ธฐ (0) | 2024.10.31 |
[React Native] React Nativgation ์ ์ฉํ๊ธฐ - 2 (0) | 2022.03.16 |
[React Native] React Nativgation ์ ์ฉํ๊ธฐ - 1 (0) | 2022.03.09 |
[React Native] AppLoading (0) | 2022.02.28 |