๐ŸŽ‰ berenickt ๋ธ”๋กœ๊ทธ์— ์˜จ ๊ฑธ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŽ‰
Mobile
React Native
10-react-native-cli

1. react-native-cli

  • Expo CLI
    • Javascript๋งŒ์œผ๋กœ๋„ ์•ฑ์ด ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ์•ฑ์˜ ๋นŒ๋“œ ํฌ๊ธฐ๊ฐ€ ํผ
  • React-Native CLI
    • react-native๋งŒ ์„ค์น˜๋˜์–ด ์žˆ์Œ
    • ์›ํ•˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์ž‘์„ฑ ๊ฐ€๋Šฅ

1.1 react-native-cli ๊ธฐ๋Šฅ

(1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

1
react-native init [ProjectName] --template templateName
  • ์ตœ์ดˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ๋„์™€์ฃผ๋Š” command
  • templateName์— ์ฃผ๋กœ typescript ๊ด€๋ จ template์„ ๋„ฃ์Œ

(2) ์•ฑ์„ ์‹คํ–‰

1
react-native run-ios
2
react-native run-android

์•ฑ์„ ์‹คํ–‰ ์‹œ์ผœ์ฃผ๋Š” ์ปค๋งจ๋“œ


(3) Metro Bundler๋ฅผ ์‹คํ–‰

1
react-native start
2
react-native start -- --reset-cache # ๋‚จ์€ ์บ์‹œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด
  • Metro Bundler๋ฅผ ์‹คํ–‰ ์‹œ์ผœ์ฃผ๋Š” ์ปค๋งจ๋“œ
  • webpack๊ณผ ๋น„์Šทํ•˜๊ฒŒ javascript๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์—ญํ™œ

(4) log ๋ณด๊ธฐ

1
react-native log-android
2
react-native log-ios
  • android / ios native log๋ฅผ ๋ณด๊ธฐ ์œ„ํ•œ ๊ฒƒ

1.2 Expo์™€ ๋‹ค๋ฅธ์ 

  • React-Native์— ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋งŒ ํƒ‘์žฌ
  • ์•ฑ์—์„œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ทธ๋•Œ๋งˆ๋‹ค ์ถ”๊ฐ€
  • EAS์™€ ๋‹ค๋ฅด๊ฒŒ ๋นŒ๋“œ๋ฅผ ์ง์ ‘ ํ•ด ์ค˜์•ผ ํ•จ
  • ์ œํ•œ์—†๋Š” Third party Library ์ด์šฉ ๊ฐ€๋Šฅ

2. ์ƒˆ๋กœ์šด Dependency manager

2.1 Gradle์ด๋ž€ ?

  • android dependency manager
  • android ํด๋” ํ•˜์œ„์— build.gradle์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์กด์žฌ

2.2 android/build.gradle

  • ์ „์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋””ํŽœ๋˜์‹œ์˜ ๋ฒ„์ „์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌ
    • e.g. kotlin maven version
  • ๋””ํŽœ๋˜์‹œ ๋ณ„๋กœ ๊ฐ์ž ๋‹ค๋ฅธ ๋ฒ„์ „์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ์—ญํ™œ

2.3 android/app/build.gradle

  • ์ž‘์„ฑํ•˜๋Š” app module์˜ dependency๋“ค์„ ๊ด€๋ฆฌ

2.4 cocoapods

  • ios ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์—์„œ Dependency ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ tool
  • ios ํด๋” ํ•˜์œ„ Podfile

2.5 Auto-linking

  • React-Native 0.60.0 ๋ฒ„์ „๋ถ€ํ„ฐ ๊ฐ€๋Šฅ
  • ๋ณ„๋„๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๋”๋ผ๋„ build time์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ Link ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
  • cocoapod์ด๋‚˜ build.gradleํŒŒ์ผ์„ ๋งŽ์ด ์—ด์–ด๋ณด์ง€ ์•Š์•„๋„ ๋จ

3. Debugger tool Flipper

3.1 Flipper

  • 2020๋…„๋„์— ๋ฐœํ‘œ๋œ ๋ชจ๋ฐ”์ผ ๋””๋ฒ„๊น… ํˆด
  • React-Native 0.62๋ฒ„์ „๋ถ€ํ„ฐ ๊ธฐ๋ณธ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์‚ฌ์šฉ
  • Layout Inspector๋ฅผ ํ†ตํ•ด ํ˜„์žฌ View์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๋กœ ์•Œ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต

3.2 Layout Inspector

  • Layout Inspector๋ฅผ ํ†ตํ•ด ํ˜„์žฌ View์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๋กœ ์•Œ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต

3.3 React Dev Tools

  • Layout Inspector์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์— state๋ฅผ ๋”ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Œ

3.4 Images

  • ํ˜„์žฌ ํ™”๋ฉด์— ๋ณด์ด๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์—ด ๋จ (Android ์ œ๊ณต)

3.5 Databases

  • Mobile ํ™˜๊ฒฝ์—์„œ์˜ Database๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ ๋˜์–ด์žˆ๋Š”์ง€ ์ œ๊ณต

3.6 Setup Doctor

  • ๋™์ž‘์„ ์ œ๋Œ€๋กœ ์•ˆํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Setup Doctor Tool๋กœ ์ ๊ฒ€ ๊ฐ€๋Šฅ

3.7 React-Native-Debugger

  • React-Native์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • Redux action์ด ๋ฐœ์ƒ๋˜๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ