Mobile/React Native (7) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [React Native] Height and Width component์ height์ width๋ ํ๋ฉด์์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ค. Fixed Dimensions ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ ๊ฐ์ฅ ์ฌํํ ๋ฐฉ๋ฒ์ ๊ณ ์ ๋ width์ height๋ฅผ style์ ์ถ๊ฐ ํ๋ ๊ฒ์ด๋ค. React Native์์ ๋ชจ๋ ํฌ๊ธฐ๋ ๋จ์๊ฐ ์๊ณ , density-independent pixels(๋ฐ๋๋ ๋ฆฝํ์?)์ ๋ํ๋ธ๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ ๊ฒ์, screen ํฌ๊ธฐ์ ์๊ด์์ด ํญ์ ์ ํํ ๋์ผํ ํฌ๊ธฐ๋ฅผ ๊ทธ๋ ค์ผ ํ๋ component์ ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ธ๋ค. Flex Dimensions A component can only expand to fill available space if its parent has dimensions greater than 0. If a parent does .. [React Native] Style React Native์์ ์คํ์ผ์ ์ ์ํ ๋ ํน๋ณํ ์ธ์ด๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ง ์๋๋ค. ๊ทธ๋ฅ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ application์ ๋์์ธ ํ๋ค. names๋ camel casing์ ์ฌ์ฉํ๋ค. (e.g. backgroundColor) ๊ตฌ์ฑ ์์๊ฐ ๋ณต์ก ํด์ง์ ๋ฐ๋ผ StyleSheet.create๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์คํ์ผ์ ํ ๊ณณ์์ ์ ์ํ๋ ๊ฒ์ด ๋ ๊น๋ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. Text style์ Customizing ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ โ https://facebook.github.io/react-native/docs/text ์ฐธ๊ณ https://facebook.github.io/react-native/docs/style React Native · A framework for bu.. [React Native] State component๋ฅผ ์ปจํธ๋กค ํ ์ ์๋ 2๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ด ์๋ค. props and state props๋ ๋ถ๋ชจ์ ์ํด ์ค์ ๋๊ณ , component์ lifetime ๋์ ๊ณ ์ ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋์ด์ผ ํ๋ค๋ฉด, state๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก, ์์ฑ์์์ state๋ฅผ ์ด๊ธฐํํ๊ณ ๋ณ๊ฒฝ ํ ๋๋ setState๋ฅผ ํธ์ถํด์ผํ๋ค. ์๋ฅผ ๋ค์ด, ํญ์ ๊น๋นก์ด๋ text๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด์. blinking component๊ฐ ์์ฑ๋ ๋ text๋ ํ๋ฒ ์ค์ ๋๋ฏ๋ก prop์ด๋ค. "ํ ์คํธ๊ฐ ํ์ฌ ์ผ์ ธ ์๋์ง ๊บผ์ ธ ์๋์ง"๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ฏ๋ก state๋ก ์ ์ง๋์ด์ผ ํ๋ค. ์ค์ application์์๋, ์๋ง timer๋ก state๋ฅผ ์ค์ ํ์ง ์์ ๊ฒ์ด๋ค. ์๋ฒ๋ ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ถํฐ .. [React Native] Props ๋๋ถ๋ถ์ component ๋ค์ ์์ฑํ ๋ ๋ค๋ฅธ parameter๋ค๊ณผ ํจ๊ป ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅํจ ์ด๋ ๊ฒ ์์ฑํ ํ๋ผ๋ฏธํฐ๋ค์ props๋ผ๊ณ ๋ถ๋ฅธ๋ค (properties ์ค์๋ง) ์๋ ์ฝ๋์์ Image๋ ํ๋์ ๊ธฐ๋ณธ์ ์ธ React Native component์ด๋ค. ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ๋, ์ด๋ค ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ ์ค ๊ฒ์ธ์ง ์ ์ดํ๋ source๋ผ๋ prop์ ์ฌ์ฉ ํ ์ ์๋ค. {pic} : JSX์ ํฌํจ๋ ๋ณ์. ์ค๊ดํธ๋ฅผ ์ฃผ๋ชฉํ์! :D ์ด๋ค Javascript expression ์ด๋ JSX์ ์ค๊ดํธ ์์ ๋ฃ์ ์ ์๋ค. ๋ด๊ฐ ๋ง๋ component์๋ props๋ฅผ ์ฌ์ฉ ํ ์ ์๋ค. (์๋ ์ฝ๋์์ name) Greeting component์์ name์ prop์ผ๋ก ์ฌ์ฉํจ์ผ๋ก์จ, ๊ฐ๊ฐ์ greetings์์.. [React Native] Learn the Basics React Native๋ Reactํ๊ณ ๋น์ทํ์ง๋ง, web components (building blocks) ๋์ native components๋ฅผ ์ฌ์ฉํ๋ค. React Native app ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ค๋ฉด JSX, components, state, props ๋ฑ์ ์ดํดํด์ผํ๋น! Hello World ํ .. ES2015 ์์์ผ ํ๋์..? Hello world! ์ต์ํ์ง ์์ ์ ์ฝ๋๋ JSX ์ด๋ค. Javascript ์์ ํฌํจ๋๋ XML ๋ฌธ๋ฒ. ๋ text๋ฅผ ๋ํ๋ผ ์ ์๋ component ์ด๊ณ , = or Components ์ ์ฝ๋์์๋ HelloWorldApp๋ผ๋ ์๋ก์ด Component๋ฅผ ์ ์ํ๋ค. ์ฐ๋ฆฌ๊ฐ React Native app ์ ๊ฐ๋ฐํ ๋ ์ด์ ๊ฐ์ ์๋ก์ด components.. Expo, Create React Native App create-react-native-app ํจํค์ง๋ฅผ npm(node.js package manager)์ ์ด์ฉํ์ฌ ์ค์นํ์. RN์ npm์ ์ด์ฉํ์ฌ ๋ํ๋์๋ฅผ ๊ด๋ฆฌํ๋ค. npm install -g create-react-natvie-app ๋ญ๊ฐ ๋ค๋ฅธ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ, https://expo.io/learn : Get Started ์์๋ 1. Node.js ์ค์น 2. npm install expo-cli --global 3. expo init my-new-project cd my-new-project expo start 4. QR์ฝ๋๋ก ํฐ์์ ์ด๊ธฐ 5. your-project/App.js๋ก ์ฑ ๋ง๋ค๊ธฐ! Getting Started 1. Expo tools Xcode or Anroid Studio๋ฅผ ์ค์น, ์ค์ ํ ํ์ ์์ด React Native๋ฅผ ๊ฐ์ฅ ์ฝ๊ฒ ์์ ํ ์ ์๋ค. Snack์ ์ฌ์ฉํด์ web browser์์ ๋ฐ๋ก React Native๋ฅผ ์ฌ์ฉํด ๋ณผ ์ ์๋ค. Hello World import React, { Component } from 'react'; import { Text, View } from 'react-native'; export default class HelloWorldApp extends Component { render() { return ( Hello, world! ); } } https://expo.io/ Expo A free and open source toolchain built around.. ์ด์ 1 ๋ค์ ํฐ์คํ ๋ฆฌํด๋ฐ Developer๐ค๊ตฌ๋ ํ๊ธฐ