๋ฆฌ์กํธ๋ค์ดํฐ๋ธ(React Native)๋ก ์๋๋ก์ด๋(Android)์ IOS๋ฅผ ํ๋ฒ์ ๊ฐ๋ฐํ๋ ๋ชฉํ๋ฅผ ์ธ์ ๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ IOS์ ์ ๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํ ํด ๋ณด๊ธฐ ์ํด์๋ mac os๊ฐ ํ์ํ๋ค๊ณ ํ๋ค. ์ด๋ฐ ๋ฌธ์ ์ ์ ํ ๋ฐฉ์ ํด๊ฒฐ ํด ์ค Expo!
์์คํฌ(Expo)๋ฅผ ์ค์นํ๋ฉด ์๋๋ก์ด๋์ IOS๋ฅผ ์น ํ์ด์ง์์๋ ๋ฌผ๋ก , ๋ด ํด๋ํฐ์์๋ Expo go ๋ฅผ ํตํด ์ค์ ์ฑ์ผ๋ก ๋๋ ค๋ณผ ์ ์๋ค.
Expo ์ค์นํ๊ธฐ - ์น ๋๋ VSCode
Visual Studio Code ์์ Expo๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด ๋ฐ๋ก 2๋ฒ์ผ๋ก ๋์ด๊ฐ๋ฉด ๋๋ค!
์น์์ Expo ์ฌ์ฉํ๊ธฐ
๊ฐ๋จํ ์ปดํฌ๋ํธ๋ง ์คํ์์ผ๋ณด๊ณ ์ถ๋ค๋ฉด, ์น์์ ์ฝ๊ฒ ๋๋ ค๋ณผ ์ ์๋ค.
https://reactnative.dev/docs/components-and-apis
๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ ๊ณต์ ๋ฌธ์์์๋ Expo๋ฅผ ๋ชจ๋๋ก ์ ๊ณตํด์ฃผ๊ณ ์๋ค.
ํ์ด์ง ์ผ์ชฝ์์ ์ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ ํํ๊ฑฐ๋, ์๋ฌด ์ปดํฌ๋ํธ๋ฅผ ์ ํํ์ฌ Example์ ๋ณด๋ฉด Expo๊ฐ ์ฝ์ ๋์ด์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ฌ๊ธฐ์ ์ ๋นจ๊ฐ ๋๊ทธ๋ผ๋ฏธ ๋ถ๋ถ์ ํด๋ฆญํ๋ฉด, Expo snack ํ์ด์ง๋ก ์ด๋ํ๋ค.
๊ทธ๋ผ ์ด๋ ๊ฒ ์น ๊ฐ๋ฐ ํด์ด ๋ํ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ํด๋ ๋ณ๋ก ๊ด๋ฆฌํ ์๋ ์๊ณ , ํ์๊ฐ์ ์ ํตํด ๋ณ๊ฒฝ์ฌํญ์ ์น ์ฌ์ดํธ๋ก ์ ์ฅํด ๋ ์๋ ์๋ค. ์ฐ์ธก์ ํ๋ฉด์ด ์ ๋ฎฌ๋ ์ดํฐ๋ก, ios์ ์๋๋ก์ด๋๋ฅผ ๊ฐ์ด ๋๋ ค๋ณผ ์ ์๋ค. ๋จ์ ์ ์กฐ๊ธ ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ๊ฒ.
๊ทธ๋ผ ๋ด ํฐ์์ ์คํํด๋ณด๊ธฐ ์ํด ์ฑ์ ๋ค์ด๋ฐ์๋ณด์!
Expo Go ์ฑ ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ
My Device ๋๋ Run it on your phone ์ ํด๋ฆญํ๋ฉด QR ์ฝ๋๊ฐ ๋์จ๋ค. ์ฐ๋ฆฌ์ ํฐ์ Expo go ์ฑ์ ๋ค์ด๋ก๋ ํ๊ณ ์ QR์ ์ธ์์ํค๋ฉด ์ฐ๋ฆฌ์ ํ๋ก์ ํธ๊ฐ Expo go ์์ ์คํ๋๋ค.
์์ดํฐ์ Expo go ์ฑ์ QR ์ฝ๋ ๋ฆฌ๋๊ธฐ๊ฐ ํฌํจ๋์ด ์์ง ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์ดํฐ ์ฑ ์์ฒด์ "์ฝ๋ ์ค์บ๋"๋ฅผ ํตํด์ QR ์ฝ๋๋ฅผ ์ธ์์์ผ์ฃผ๋ฉด, Expo go ์์ ์คํํ๊ธฐ ๋ฒํผ์ด ๋ํ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด ์ฑ์ด ์คํ๋๋ค!
์ ์ํ ์ ์ ์นํ์ด์ง Expo๋ฅผ ์คํํ๊ณ ์๋ ๊ธฐ๊ธฐ์ ์ธํฐ๋ท๊ณผ ์ฑ Expo go๋ฅผ ์คํํ๊ณ ์๋ ๊ธฐ๊ธฐ์ ์ธํฐ๋ท (์์ดํ์ด)๊ฐ ๋์ผํด์ผ ํ๋ค๋ ์ ์ด๋ค. ๋๋ ์ปดํจํฐ๋ ์ด๋๋ท, ์์ดํฐ์ ์์ดํ์ด๋ก ์ ์ํ๋ค.
VScode ์์ Expo ์ค์นํ๊ธฐ
** ์ฌ์ ์ VScode ์ Node.js(lts ๋ฒ์ )๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค!
** yarn๋ ์ค์นํด์ฃผ์ธ์!
npm install --global yarn
1-1) vscode ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด ์ ๋ ฅํ๊ธฐ.
npm install -g expo-cli
๋๋ !!
1-2) vscode ๋ง์ผํ๋ ์ด์ค์์ Expo Tools ์ค์นํ๊ธฐ
2) ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด Expo ์ฝ์ ํด๋ณด๊ธฐ (๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ Expo๋ก ์คํ์ ๋ค์ ๋จ๊ณ์์!)
expo init my-project
์์ ๋ช ๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์ ๋ ฅํด์ฃผ๋ฉด, ํ ํ๋ฆฟ์ ์ ํํ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋์จ๋ค. blank ๋๋ blank TypeScript ๋ฒ์ ์ ์ ํํ๊ณ ์ํฐ๋ฅผ ์ ๋ ฅํด์ค๋ค.
๊ทธ๋ฌ๋ฉด my-project ๋ผ๋ ์ด๋ฆ์ ํ๋ก์ ํธ๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ฐ๋ก ์คํํด๋ณด์.
npm start
๊ทธ๋ผ ํฐ๋ฏธ๋์ QR ์ฝ๋๊ฐ ๋จ๊ณ , ์นํ์ด์ง๋ ์คํ๋๋ค. QR ์ธ์์ ์๋จ์ Expo Go ์ฑ ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ ์ ๋ค์ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
์ฒ์ ๋ก๋ฉ ์์๋ ๋ชจ๋๋ค์ ๊ตฌ์ฑํ๋ ๋ฐ์ ๋๊ธฐ์๊ฐ์ด ์กฐ๊ธ ํ์ํ๋ค.
๊ทธ๋ฌ๋ฉด ์์ ๊ฐ์ด ์ฒซ ๋ฒ์งธ ํ๋ฉด์ด ์คํ๋๋ค!
๊ทธ๋ผ ์ฌ๊ธฐ์ Expo์ ๋๋จํ ์ ์ด ๋ญ๋๋ฉด..
VSCode์์ App.js ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ฃผ๊ณ Ctrl+S (์ ์ฅ)์ ๋๋ฅด๋ฉด? ๋ฐ๋ก ์ฑ์ ์ ์ฉ์ด ๋๋ค.
์ ๋ง ์ ๋ฎฌ๋ ์ดํฐ๋ค. ๊ทธ๊ฒ๋ ๋ด ํฐ์์ ์คํํด๋ณผ ์ ์๋ ์ ๋ฎฌ๋ ์ดํฐ์ด๋ค. ๋๋ฌด ๊ฐํธํ๊ณ ์ฌ์์ ์ด๊ฑธ ์ ์ด์ ์ผ ์์๋ ์ถ๋ค. ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ์ ํ์ ์ฑ์ด ์๋๊น ํ๋ค.
3) ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ Expo๋ก ์คํํ๊ธฐ
๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ expo convert๋ก ์ฝ๊ฒ ์ ํํ๋ฉด ์ข๊ฒ ์ง๋ง, ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ๋ฐ์ ์๋ค๊ณ ํ๋ค. ์ด๋ ๋ค์ ๊ฒ์๊ธ์์ ์์ฑํด์ผ๊ฒ ๋ค ใ ใ ์ง๊ธ ํ๊ณ ์๋๋ฐ ์ฝ์ง ์๋ค..ใ
๋๊ธ