๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/React-Native

[React-Native] React Native ์‹œ์ž‘ํ•˜๊ธฐ

by soy๋ฏธ๋‹ˆ 2021. 11. 2.

 

 

 

 

๐Ÿ’ก  ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

 

1. node.js ์„ค์น˜ํ•˜๊ธฐ

2. ํŒŒ์ด์ฌ 2.x.x ๋ฒ„์ „ ์„ค์น˜ํ•˜๊ธฐ

3. JDK ์„ค์น˜ํ•˜๊ธฐ 

4. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์น˜ํ•˜๊ธฐ

 

ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•˜๋Š” ์ด์œ ๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ๋นŒ๋“œํ•  ๋•Œ ํŒŒ์ด์ฌ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. node.js ์™€ JDK (16 ๋ฒ„์ „) , ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋Š” ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์œผ๋กœ ์„ค์น˜ํ•˜์ง€๋Š” ์•Š์•˜๋‹ค.

 

 

 

JDK ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ

 

 

 

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ

 

 

 

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์ •

 

1. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์‹คํ–‰ -> More Actions -> SDK Manager ํด๋ฆญ

2. SDK Platforms ์—์„œ Show Package Details ํด๋ฆญ -> Android 10.0 ๋ฒ„์ „์˜ SDK Platform, Intel Atom_64 System Image, Google APIs Intel Atom_64 System Image ์„ ํƒ ํ›„ ํ™•์ธ

3. SDK Tools ์—์„œ Show Package Details ํด๋ฆญ -> 29.0.2 ํด๋ฆญ

 

 

 

 

 

 

๐Ÿ’ก  ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๋กœ, Expo ์™€ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ CLI ๊ฐ€ ์žˆ๋‹ค.

Expo ๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋ฆฌ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„ค์ •์ด ๋˜์–ด ์žˆ๋Š” ํˆด์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

Expo : https://expo.dev/

 

 

 

 

Expo ์„ค์น˜ ๋ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

 

# Expo ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.
npm install --global expo-cli
# ์ƒ์„ฑํ•œ ํด๋”๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
cd my-project
# Expo ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
expo init my-project
# ์‹คํ–‰ํ•œ๋‹ค.
npm start

 

expo ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

 

 

 

Expo ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๋ฆฌ๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

 

 

 

 

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ์„ src ํด๋”์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  App.js ํŒŒ์ผ์„ ์ฒซ ํ™”๋ฉด ํŒŒ์ผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

 

 

// App.js
import React from "react";
import { View, StyleSheet, Text } from "react-native";

const App = () => {
  return (
    <View style={styles.container}>
      <Text style={styles.title}>My First React Native</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#ffffff",
  },
  title: {
    fontSize: 30,
  },
});

export default App;

 

 

 

์•ฑ ์‹คํ–‰ ํ™”๋ฉด

 

 

 

 

 

 

 

 

๐Ÿ’ก React Native ๋ฅผ ์›น์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ

- expo build:web

์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด web-build ํด๋”๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

 

 

 

- npx serve web-build

web-build ํด๋”๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

 

 

 

์• ์ดˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ช…๋ น์–ด๋ฅผ expo start (ํ˜น์€ npm start) ๊ฐ€ ์•„๋‹Œ expo start --web ์œผ๋กœ RUN ํ•˜๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰์ด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋•Œ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ expo ์—์„œ ์ ‘๊ทผํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ์ธ 19006 ์ด๊ณ , build web ์„ ํ•ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰์„ ํ•˜๋ฉด ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ react ํฌํŠธ ๋ฒˆํ˜ธ์ธ 3000 ์ด๋‹ค.

 

 

 

 

 

๋ณธ ํฌ์ŠคํŒ…์€ ๋„์„œ [์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ(ํ•œ๋น›๋ฏธ๋””์–ด, ๊น€๋ฒ”์ค€ ์ง€์Œ)] ๋ฅผ ๋ณด๊ณ  ๊ณต๋ถ€ํ•˜๋ฉฐ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

๋Œ“๊ธ€