๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
49
๋ง์ฝ์ trieds to ~~ ์ค๋ณต๋๋ค๊ณ ๋จ๋ฉด
npm udate ํ๊ณ ๊ป๋ค ํค๊ธฐ
2023.05.23
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
Header Button ๋ฌ๊ธฐ
Header buttons | React Navigation (1) Screen Component์ ์ต์
์ด์ฉํด์ ํค๋ ๋ฒํผ ๋ฌ๊ธฐ ์คํฌ๋ฆฐ ์ปดํฌ๋ํธ์ Options์์ headerRight, headerLeft key ๊ฐ์๋ค๊ฐ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ value๋ก ๊ธฐ์
ํ๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ํจ์ํ ์ปดํฌ๋ํธ์ ๋ก์ง ๋๋ก ์์ง์ธ๋ค. ์ฐ๋ฆฌ๋ ํด๋น ํจ์ํ ์ปดํฌ๋ํธ๊ฐ ํ๊ทธ๋ฅผ ๋ฐํํ๋๋ก ๋ง๋ค์๋ค. ๋ฅผ ๋ฐ๋ก ์ฐ์ง ์์๋ ๋์๊ฐ๋ ๊ฒ ๋ณด๋, ์ ๋ฒ ์ค๋ช
์์ ์ฒ๋ผ Screen์ Header ์ ์ฒด๋ฅผ ๊ฐ์ธ๋ View ํ๊ทธ๊ฐ ๋ด์ฅ๋์ด ์๋ ๊ฒ ๊ฐ๋ค. function StackScreen() { return ( , headerRight: () => ( alert('This is a button!')} title="Info" color="#f..
2023.05.19
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
React Navigation Docs ์ ๋ฆฌ(Getting Started ~ Header bar ์ค์ )
1. React Navigation ์ค์น Getting started | React Navigation React Navigation reactnavigation.org 2. React Navigation์ ๋ํด, Hello React Navigation | React Navigation React Navigation reactnavigation.org ์ฐ๋ฆฌ๋ ๋จผ์ ๊ฐ์ฅ ์ฝ๊ณ ๊ธฐ๋ณธ์ ์ธ Navigator์ธ Stack Navigator๋ฅผ ํตํด ํ๋ฉด ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ์ต๋ํ๊ณ , ๋ค๋ฅธ ์ข
๋ฅ์ ๋ค๋น๊ฒ์ดํฐ๋ฅผ ์์๋ณด๊ฒ ๋ค. ๋ค๋น๊ฒ์ดํฐ๋ RN ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ์ ๋ฐ๋ก ์ค์นํด์ ์จ์ผ ํ๋ค. ๊ฐ Navigator ๋ง๋ค ๊ณ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ค ๋ฐ๋ก ์กด์ฌํ๋ ์ฐธ๊ณ ๋ฐ๋๋ค. (1) Browser์ StackNavigator์..
2023.05.16
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
VS Code์์ React-Native ์ด์ฉ ์ ์๋ import๊ฐ react-native/types๋ก๋ง ๋๋ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฒ
1
์ฌ์ง์ react-native-web์ผ๋ก๋ง ๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ธ์๋ค. (๋ด๊ฐ ํด๋น ์ค๋ฅ๊ฐ ๋ ๋ ์บก์ณ๋ฅผ ํ์ง ๋ชปํ๋ค.) ํ์ง๋ง ์์ ๊ฒฝ์ฐ ์ฒ๋ผ ์ปดํฌ๋ํธ์ ๋ง๋ ์๋ import๋ฅผ ํ ๋, 'react-native'๊ฐ ๋จ์ง ์๊ณ , ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ๋ฌ๋ค๋ฉด ๋ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ ํ ์ ์๋ค. *ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๋ฐ์์ ๋ฐ์ ๋ช
๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์
๋ ฅํ์ฌ ์คํํ๋ค. ์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์ผ์ด๋๋ ์ด์ ๋, node-modules ์์ ๋ชจ๋๋ค ๊ฐ์ ์ถฉ๋๋ก ์ธํ์ฌ ์ผ์ด๋๋ค๊ณ ํ๋ค. ๋ฐ๋ผ์ @types/react-native๋ฅผ ๋ค์ ๊น์์ฃผ๋ฉด ๋๋ค. ๋๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์ ๊ณ์ ๊น์๋ด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์ ๋ถ๋ชจ ๋๋ ํ ๋ฆฌ๋ก ๋์ด๊ฐ์ ํด๋น ๋ช
๋ น์ด๋ฅผ ์คํ ํ๋๋ ๋์๋ค. ์ด ๋ฌธ์ ๋ก ์ธํด 1์๊ฐ ์ ๋ ๋๊น
ํ๋ค..
2023.05.10
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
ICon, Badge, Button, Spacer,Divider ๋ง๋ค๊ธฐ
1. Icon ๋ณ ๊ฑฐ ์๋ค. expo Vector Icon์ ํ์ํ 3๊ฐ์ง ์์ name, size, color๋ฅผ ์ธ์๋ก ๋ฐ์์ icon์ ์์ฑํ๋ฉด ๋์ด๋ค. 2. Badge children์ ์์์๋ ์ค๋ช
ํ๋ฏ์ด ๋ถ๋ชจ์์์ ํ๊ทธ ์ฌ์ด์ ๋ค์ด๊ฐ๋ ํ
์คํธ๋ฅผ ์๋ฏธํ๋ค. ํด๋น ์ปดํฌ๋ํธ๋ ํ
์คํธ ์ฐ์ธก ์๋จ์ ์์ ๊ฐ์ด ์๋ฆผ ๋ฑ์ง๋ฅผ ๋ถ์ด๋ ํ๊ทธ์ด๋ค. ํ์ง๋ง ์์ ๊ฐ์ด ์๋ฆผ ํ์๋ฅผ ์นด์ดํธ ํ์ง ์๊ณ new๋ฅผ ์๋ฏธํ๋ N์ผ๋ก ๋์ฒดํ๋ค. ์ ์ปดํฌ๋ํธ๋ ๊ฒ์ View์ ์์ View ์ด์ค ๊ตฌ์กฐ๋ก ๋์ด ์๋๋ฐ, ๊ฒ์ View์๋ ์ธ์๋ก ๋ฐ์ children์ ์ฐ๊ณ ์์ View์๋ ๋ฑ์ง ๋ด์ฉ์ ์ผ๋ค. ์ด๋ ๊ฒ View๋ฅผ ์ด์ค๊ตฌ์กฐ๋ก ๊ฐ๋ฅธ ์ด์ ๋ ๋ฑ์ง๋ฅผ ์ฐ์ธก ์๋จ์ ์์น์ํค๊ธฐ ์ํจ์ด๋ค. ๋ฑ์ง์ style์์ position: ab..
2023.05.05
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
Text , Image ์ปดํฌ๋ํธ ์ปค์คํฐ๋ง์ด์ง
1. Text ์ปดํฌ๋ํธ ์ปค์คํฐ๋ง์ด์ง (1) ์ฝ๋๋ฆฌ๋ทฐ ํด๋น ์ปดํฌ๋ํธ๋ color, fontsize์ ์ปค์คํฐ ๋ง์ด์งํ๋ Text ์ปดํฌ๋ํธ์ด๋ค. ๋ฐ์๋ Typography์ ํ์
์ ๊ฒ์ฌํ๋ PropTypes๋ผ๋ ์์ฑ์ ์ฌ์ฉํ๋ค. ํด๋น PropTypes ์์ฑ์ ์ธ๋ ค๋ฉด ์ด๊ฑธ ์ค์น ํด์ผํ๋ค. propTypes๋ผ๋ ํ์
๊ฒ์ฌ๊ธฐ์ ๋ด๋ถ๋ {Property: PropTypes.์ํ๋ ํ์
}ํํ๋ก ์ฐ๊ณ ํด๋น ์์ฑ์ ์ธ์๋ก ์ํ๋ ํ์
์ด ๋ค์ด์ค์ง ์์์ ์ Warn ๊ฒฝ๊ณ ๋ฌธ์ ํ๋ฉด์ ๋์ด๋ค. https://ko.legacy.reactjs.org/docs/typechecking-with-proptypes.html ์ ๋งํฌ๋ propTypes์ ์ฌ์ฉ๋ฒ์ ๋ํด ์ ํ ์๋ค. ํ์
์ ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ด ๋ค์ํ๊ฒ ์๋ค. ์ฐ๋ฆฌ๋ ์์ ์์..
2023.04.28
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์ฝ๋๋ฅผ ์ปดํฌ๋ํธํ ์์ผ์ ์ ์ง, ๋ณด์์ ์ฉ์ดํ๊ณ , ๊ฐ๋
์ฑ๋ ์ข์ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
1. ์ค๋ณต๋๋ ์ฝ๋๋ฅผ ์ปดํฌ๋ํธ ํ ํด๋ฒ๋ฆฌ๋ ์ด์ **์ปดํฌ๋ํธ ํ ๋? ์ค๋ณต๋๋ ์ฝ๋๋ฅผ ํ๋์ ์ปดํฌ๋ํธ(ํจ์)๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ปดํฌ๋ํธ ํ ์ํค๋ ์ด์ ๋, ์ฒซ ๋ฒ์งธ ์ ์ฒด ์ฝ๋์ ์ฝ๋์์ด ์ค์ด๋ ๋ค. ์ฌ๋ฌ ์ค ์ง๋ฆฌ ์ฝ๋๋ ํจ์ ํ๋๋ฅผ ํธ์ถํ์ฌ ๊ทธ ์์ ์ธ์๋ฅผ ์ง์ด๋ฃ๋ ๋ฐฉ์์ผ๋ก ํํํ๋ฉด ์ฝ๋ ์์ด ํจ์ฌ ์ค์ด ๊ฐ๋
์ฑ์ด ์ข์์ง๋ค. ํด๋น return ๋ด๋ถ์ ํ์ํ ๋ชจ๋ ์ฝ๋๋ค์ ์ปดํฌ๋ํธ ํธ์ถ์ ํตํด ํํํ๋ค. ์ปดํฌ๋ํธ ํธ์ถ 6๋ฒ์ผ๋ก return ๋ฌธ ๋ด๋ถ๋ฅผ ํ์ํ ๊ฒ์ ์ ๋ถ ํํํ๋๋ฐ, ๋ง์ฝ ์ฝ๋๋ก ์ ์ฌํญ์ ์ ๋ถ ๋ค ํํํ๋ค๋ฉด, ์คํฌ๋กค๋ฐ๋ฅผ ํ์ฐธ ๋ด๋ ธ์ด์ผ ํ ๊ฒ์ด๋ค. ๋ ๋ฒ์งธ, ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ค. A๋ ์ฝ๋๊ฐ 5๋ฒ ์ค๋ณต๋๋ค๊ณ ํ์. ๋ง์ฝ 2๋ฒ์งธ 4๋ฒ์งธ A์ฝ๋์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ ์ฝ๋๋ค์ ์ฐพ์์ ์ผ..
2023.04.28
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
React-Navigator๋ฅผ ์ด์ฉํ ํ๋ฉด ์ด๋ (2)
์ด๋ฒ์๋ TabBarNavigation์ ์จ๋ณด๊ณ ํด๋น TabBarNavigation์ ๋ค์ Stack Navigator์์ ๋ฃ์ด์ ํํ ํด๋ณด์๋ค. TabBar ๊ตฌ์กฐ๋ ๋ค๋ฅผ ๊ฒ ์๋ค. ๊ธฐ๋ณธ ํ๋ฉด์ ๋งจ ์ผ์ชฝ ํญ์ด ๋์ค๊ณ ๋๋จธ์ง ํญ๋ค์ ๋๋ฅผ ๋๋ง๋ค, focus๊ฐ ์ฎ๊ฒจ์ ธ ํด๋น ํ๋ฉด์ด render ๋๋ค. ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ํฌ์ปค์ค๋ฅผ ์ฎ๊ฒจ๋ ์ด์ ํ๋ฉด๋ค์ด unmount๋์ด์ ๋๋ ๋์๋ ๊ฒ ์ฌ๋ผ์ง๋ ๊ฒ์ ์๋๋ค. ๋ค๋ฅธ ํ๋ฉด๋ค์ ์ฒ์ render๋ ํ ๊ทธ๋๋ก ์ ์ง๋๋ค. 1. ๋ก์ง ๊ตฌ์กฐ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. ๊ฐ Navigator๊ฐ์ ๊ณ์ธต์ด ๋ฐ๊ณผ ๊ฐ์ด ๋๋์ด์ ธ ์๋ค. ์์ ์ค๋ช
์ฒ๋ผ ์ฐ๋ฆฌ๋ Level1 Stack์ ์ฒซ๋ฒ์งธ ์ธต์ธ BoomTab์์ Level3 Stack์ ScreenA๋ฅผ ๋ณด๋ค๊ฐ, ScreenA๊ฐ B๋ฅผ ํธ์ถํจ์ ๋ฐ๋ผ ..
2023.04.27
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
React- Navigation์ ์ด์ฉํ ์ด๋
1. NavigationContainer์ Navigator , Screen์ ๊ดํ์ฌ https://reactnavigation.org/docs/getting-started Screen์ ํ๋์ View ์ปดํฌ๋ํธ๋ก์ ์ฐ๋ฆฌ๊ฐ ํ๋ฉด ์ด๋ ์ ์ธ ํ๋ฉด๋ค์ด๋ค. Screen ํ๋ ํ๋๊ฐ ๋ชฉ์ ์ง ์ด๋ค. Navigator๋ Screen์ ์งํฉ์ด๋ค. Navigator ์์ Navigate๋ ํจ์๊ฐ ์๋๋ฐ, ์ด๋ฅผ ์ด์ฉํ๋ฉด Navigator ๋ด๋ถ์ ์ ์๋ Screen๋ค ์ฌ์ด์ ์ด๋์ด ๊ฐ๋ฅํ๋ค. NavigationContainer๋ Navigator Tree๋ฅผ ๊ด๋ฆฌํ๊ณ , Navigatior์ ์ํ๋ค์ ์๋ ค์ฃผ๋ ์ปดํฌ๋ํธ์ด๋ค. ํด๋น ์ปจํ
์ด๋๊ฐ ๋ชจ๋ Navigator ๊ตฌ์กฐ๋ฅผ ๊ฐ์ธ๊ณ ์์ด์ผ ํ๋ค. ์ฐ๋ฆฌ๋ ์ฃผ๋ก ์ถ์
ํ์ผ (entr..
2023.04.27
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
React - Navigation ์ฉ์ด ์ ๋ฆฌ
์์ง ์ด๋ค ๋ด์ฉ์ด ์ด๋ป๊ฒ ์์ฉํ๋์ง ์์ง๋ ๋ชปํ๋ ์ํ์์ ๊ธ ๊ณต๋ถํ๋ฏ ์ธ์ฐ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์๋ค๊ณ ๋ณธ๋ค. ๊ทธ๋์ ํ์ฌ๊น์ง ์ดํดํ ๋ด์ฉ๋ง ์ ๋ฆฌํ๊ณ ๋๋จธ์ง ๊ฐ๋
๋ค์ ์ง์ ํด๋ณด๋ฉด์ ๊ฐ์ ์ก๊ณ ์ ๋ฆฌํ๋๋ก ํ๊ฒ ๋ค. 1. ๋ค๋น๊ฒ์ดํฐ, screen ๊ตฌ์กฐ๋ 2. React ๋ด์ ์๋ช
์ฃผ๊ธฐ (๊ฐ๋ตํ๊ฒ) ์ด๊ฒ ์ด์ธ์ ๋ ๋ง์ ๊ณผ์ ๋ค์ด ์์ง๋ง, ์ผ๋จ ๊ฐ์์์ ๋ฐฐ์ด ์ฃผ์ ๋ด์ฉ๋ค๋ก๋ง ์๋ช
์ฃผ๊ธฐ๋ฅผ ์ ๋ฆฌ ํ๊ฒ ๋ค. ์ด์ธ์ ๊ณผ์ ๋ค์ ๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค. (1) Constructor ์ปดํฌ๋ํธ ์์ฑ์ ๋งค์๋, ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๋ฉด ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ๋งค์๋ ์ด๋ค. (2) render ์ ํ ์ปดํฌ๋ํธ๋ค์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ฒ์ render๋ผ๊ณ ํ๋ค. (3) componentDidMount render๋ฅผ ๋๋ธ ํ (์ฆ ํ..
2023.04.20
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์ธ๋ผ์ธ ์คํ์ผ CSS๋ฅผ ์คํ์ผ ์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ
์๋ ํ๊ทธ ์ด๋ฆ์ ์ฐ๋ ๊ณณ์ ์คํ์ผ ์ปดํฌ๋ํธ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ์น๊ธฐ. ๊ทธ๋ฆฌ๊ณ styled. ์๋ํ๊ทธ ์ด๋ฆ์ ๋ฃ์ด์ ์ธ์๋ฅผ ๋ฐ๋ ํ๊ทธ - ์คํ์ผ์ปดํฌ๋ํธ - ํด๋น ์ปดํฌ๋ํธ๊ฐ ์๋ ํด์ผํ๋ ๊ธฐ๋ฅ์ด ์ฐ๊ฒฐ๋จ.
2023.04.19
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
๊ฐค๋ฌ๋ฆฌ ์ฑ ํด๋ก ์ฝ๋ฉ - ๋๋ฐ์ด์ค๋ง๋ค ์ ๊ฐ๊ฐ์ธ ๊ฐ๋ก ๊ธธ์ด ๋์
ํด๋น ์ฑ์ ์ฌ์ฉํ๋ ์ฅ์น๋ง๋ค ๊ฐ๋ก๊ธธ์ด๊ฐ ์ฒ์ฐจ๋ง๋ณ์ด๋ค. ๊ทธ๋ฐ๋ฐ Flatlist์ columnNum์ 3์ผ๋ก๋ง ๊ณ ์ ํด๋์ผ๋ฉด, ์ด๋ค ํ๋ฉด์์๋ ํ ๋น ์ฐจ์งํ๋ ์ฌ์ง์ ํฌ๊ธฐ๊ฐ ํด ๊ฒ์ด๊ณ , ์ด๋ค ํ๋ฉด์์๋ ์์ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๋ ๋๋ฐ์ด์ค์ ํ๋ฉด ํฌ๊ธฐ๋ง๋ค ํ ํ์ ํ์๋๋ ์ฌ์ง ์๋ฅผ ๋ค๋ฅด๊ฒ ํด์, ์ฌ์ง ํ๋ ํ๋์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ง๊ฑฐ๋ ์์์ง์ง ์๋๋ก ํด๋ณผ ๊ฒ์ด๋ค. 1.๋ก์ง 2. ์ฝ๋๋ฆฌ๋ทฐ 3. ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ (1) Math.floor๋ ์ธ์์ ๋ด๋ฆผ ๊ฐ์ ๋ฐํํ๋ค. (2) Flatlist์ onLayout FlatList์ ๋๋น๋ฅผ ์๊ณ ์ถ์ ๋ onLayOut ์์ฑ์์ ํด๋น ํจ์๋ฅผ ์ด์ฉํ๋ค. e.nativeEvent.layout.width๋ฅผ ์ฐ์ด๋ณด๋ฉด flatlist์ ๋๋น๊ฐ ๋์จ๋ค. (3) ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๋ํ์ฌ..
2023.04.19
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
๊ฐค๋ฌ๋ฆฌ์ ์ ์ฅ๋ ์ด๋ฏธ์ง์ ์จ๋ฒ์ DB์ ๋ฃ๊ณ ๊ด๋ฆฌ
์ง๊ธ๊น์ง๋ ์ด๋ฏธ์ง ๋ฆฌ์คํธ์ ์จ๋ฒ ๋ฆฌ์คํธ๋ฅผ ์ํ๋ณ์์๋ง ์ ์ฅํ๊ณ ์ฌ์ฉํ๋ค. ๊ทธ๋์ ์ฑ์ ๊ป๋ค ํค๋ฉด ์ํ ๋ณ์์ ์ ์ฅํด๋์ ๋ฆฌ์คํธ๋ค์ด ๋ค ๋ ์๊ฐ๋ค. ์ํ๋ณ์์ ๋ฃ์ ๊ฐ์ ์ฑ์ ์ข
๋ฃํ ์ ์ ๋ถ ์ญ์ ๋์ด ์ด๊ธฐํ ๋จ์ผ๋ก, ์ฑ์ ์ข
๋ฃํด๋ ์ญ์ ๋์ง ์๋ DB์ ํด๋น ๊ฐ๋ค์ ๋ฃ์ด๋๊ณ , ์ฑ์ ์์ํ ๋ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํตํด ํด๋น ๊ฐ๋ค์ ๋ถ๋ฌ์ค๋ ์์
์ด ํ์ํ๋ค. 1. ๋ก์ง 2. ์ฝ๋๋ฆฌ๋ทฐ DB์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ฐ ํ์ํ ํค ๊ฐ์ ๋ฐ๋ก ๊ด๋ฆฌํ๋ค. ๋ฌผ๋ก "images", "albums"๋ก ์ธ ์๋ ์์ง๋ง, ์คํ ์ณ์ setItem์ ๋ค๋ฅธ ๊ฑธ๋ก ํด๋ฒ๋ฆฌ๋ ์๊ฐ ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์๋ฑํ๋ฐ ๋ค์ด๊ฐ์ ๋ชป ์ฐพ์ ์ ์๋ค. ํด๋น ๊ฒฝ์ฐ์ฒ๋ผ ๊ฐ์ฒด๋ก ์ฒ๋ฆฌํ๋ฉด ํธ์ถ ์ ์ ํ๊ธฐ๋ฒ์ด ์ํ๋ Key ๊ฐ์ ์๋์์ฑ์ผ๋ก ์จ์ฃผ๊ธฐ ๋๋ฌธ์, ์คํ ๋ด๋..
2023.04.18
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์ด๋ฏธ์ง ํฌ๊ฒ ๋ณด๋ ๋ชจ๋ฌ ์ข์ฐ๋ก
1. ๋ก์ง 2. ์ฝ๋๋ฆฌ๋ทฐ (1) ํ์ดํ์ Onpress ๊ธฐ๋ฅ ๋ด๋ถ ๊ตฌํ filteredImage ์ ์ธ ์ดํ์ ์ ์ด์ค์ผ ํ๋ค. ์๋ํ๋ฉด ์ปดํ์ผ์ ์์์๋ถํฐ ์์๋๋ก ์ฝ๊ธฐ ๋๋ฌธ์, ์ ์ธ๋ถ ๋ณด๋ค ํธ์ถ์ ๋จผ์ ํด์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ์ผ์ด๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ๋ด์ฉ์ ๋ณด๋ฉด previousImageIdx๋ nextImageIdx๊ฐ ๊ฐ๊ฐ 0๋ณด๋ค ์๊ฑฐ๋ ๋ฐฐ์ด ๋ ๊ฐ๋ณด๋ค ์ปค์ง๋ ๊ฒฝ์ฐ, -1์ด ๋๋ ๊ฒฝ์ฐ ํด๋น ๊ธฐ๋ฅ์์ ๋ ์ด์ ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ ๊ทธ๋ฅ ๋ฐํ ํ๋ผ๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ์ ์ด์ฃผ์๋ค. ๋ถ๋ช
๋ฐ์์๋ ํ ๊ฒ์ด์ง๋ง, ๋ฐฐ์ด์ ์ ๋์ผ๋ก ๊ฐ์ ๋, ํ์ดํ๋ฅผ ์ง์๋ฒ๋ฆฌ๋ ๋ก์ง์ ๋ฃ์ด์คฌ๋๋ฐ๋, ๋ฐฑ์๋์ ๋ถ๋ถ์์ ํ๋ฒ ๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์๋ค. ์ด๋ 2์ค ๋ณด์๊ณผ ๊ฐ์ด ์๊ธธ ์ ์๋ ์์ธ๋ฅผ ์์ฒ ์ฐจ๋จํ๊ธฐ ์ํจ์ด๋ค. nextImageIdx์์ ..
2023.04.18
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
ํฐ ์ด๋ฏธ์ง ๋ณด์ด๊ฒ ํ๋ Modal(ํ์
์ฐฝ) ๋ง๋ค๊ธฐ
1. ๋ก์ง 2. ์ฝ๋๋ฆฌ๋ทฐ (1) ์จ๋ฒ ๋ฆฌ์คํธ์์ ์จ๋ฒ ์ด๋ฆ์ ๊ธธ๊ฒ ๋๋ฅด๋ฉด ์ญ์ ๋๋ ๋ก์ง์ ๋ํ ์ฝ๋ ๋ฆฌ๋ทฐ use-gallery ์ดํ์๋ ํด๋น ๋ด์ฉ์ ๊ธฐ๋ฅ๊ณผ ๋ช
์ธ๋ฅผ ๋๋๊ณ ์ฎ๊ธฐ๋ ๊ฒ ๋ฟ์ด๋ผ ๋ฐ๋ก ์ค๋ช
ํ ๋ถ๋ถ์ ์๋ค. (2) ์ด๋ฏธ์ง๋ฅผ ์งง๊ฒ ๋๋ฅด๋ฉด ํด๋น ์ด๋ฏธ์ง์ ํฐ ๋ฒ์ ผ์ด ๋์ค๋ ๋ก์ง์ ๋ํ ์ฝ๋ ๋ฆฌ๋ทฐ a. flatlist์ ์์์ธ ์ด๋ฏธ์ง ํ๋๋ฅผ ๋๋ฅด๋ฉด modal์ด ์ด๋ฆฌ๋ ๋ก์ง ์์ ๋ณด๋ฉด item์ image๋ก ์ฌ๋ช
์นญ ํ๋ค. ์๋๋ item์ ๋ฐ๋ก id์ uri๋ก ๊ตฌ์กฐ๋ถํด ํด์ ๋ฐ์๋ค. ํ์ง๋ง OnpressImage๋ผ๋ ํจ์๊ฐ ์ด๋ฏธ์ง ๊ฐ์ฒด ์์ฒด (id์ uri๊ฐ ๋ฌถ์ฌ ์๋ ๊ฒ)๋ฅผ ๋ฐ์์ผ ํจ์ผ๋ก Image ์์ฒด๋ ํ์ํด์ก๋ค. ๋ฐ๋ผ์ item์ Image๋ก ์ฌ๋ช
์นญ ํ๊ณ ,id์ uri๋ ๋ค์ image๋ก๋ถํฐ ๊ตฌ์กฐ..
2023.04.17
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์จ๋ฒ ๋ณ๋ก ์ฌ์ง ์ถ๊ฐํ๊ธฐ ํ๋ฐ
1. ๋ก์ง 2. ์ฝ๋๋ฆฌ๋ทฐ (1) Modal์์ ํค๋ณด๋๋ก return ํค ๋๋ฅผ ์ ์จ๋ฒ ์ด๋ฆ์ด ์จ๋ฒList์ ์ถ๊ฐ๋๋ ๋ก์ง albumTitle์ ๋ชจ๋ฌ ์ TextInput์ onChangeText์ ์ํด ์ฌ์ฉ์๊ฐ ์ ์ ๊ฐ์ด ์ ํ๋ค. (2) ์๋จ ์จ๋ฒ ๋ช
ํด๋ฆญ ์ ์จ๋ฒ์ ๋ฆฌ์คํธ๋ฅผ ์ซ ๋ณด์ฌ์ฃผ๋ ๋ก์ง isDropdownOpen์ด ์ฐธ์ผ ๋๋ง ๋ณด์ด๋ View ํด๋น View๋ List ํํ์ด๋ฏ๋ก, ํ์ฌ ์ ํ๋ ์จ๋ฒ ์ ๋ชฉ๋ง ๋ณด์ฌ์คฌ๋ ์๋จ Bar์ ๋นํด ํฌ๊ธฐ๊ฐ ํฌ๋ค. ๊ทธ๋์ List๊ฐ ๋์ด์ง์๋ก ๋ถ๋ชจ TouchableOpacity์ ์๋ฆฌ๋ฅผ ์นจ๋ฒํ๋ ์ผ์ด ์๊ฒผ๋ค. ๊ทธ๋์ ํด๋น View๋ฅผ ์๋ฐ์์ ์์ ๋ก์ด absolute ํฌ์ง์
์ผ๋ก ๋ฐ๊พธ๊ณ , top์ headerHeight๋ก ์ค์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ํฌ๊ธฐ ๋งํผ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก ..
2023.04.16
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์จ๋ฒ ๋ณ๋ก ์ฌ์ง ์ถ๊ฐํ๊ธฐ ์ ๋ฐ
์ด๋ฒ ๊ฐ์์์ ํ ๊ฒ์, ๊ฐค๋ฌ๋ฆฌ ์๋จ ๋ถ์ ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ ์ํ ์จ๋ฒ ๋ช
+ ์จ๋ฒ ์ถ๊ฐ ํ๋ฉด ๋จ๋๋ก ๋ง๋ค๊ธฐ . ์จ๋ฒ ์ถ๊ฐ๋ ๋ฒํผ ๋๋ฅด๋ฉด ํ์
์ด ๋จ๋๋ก ํ๊ณ , ํด๋น ํ์
์ text input์ ๋์ด์ ์ฌ์ฉ์๊ฐ ์
๋ ฅ ํ ์ ์๊ฒ ํ๊ธฐ. ์์ง ์
๋ ฅ ๊ฐ์ด ์ ๋ฌ๋์ ์๋ก์ด ์จ๋ฒ์ด ๋ง๋ค์ด์ง๋ ๊ฒ์ ๊ตฌํ ํ์ง ์์๋ค. 1. ๋ก์ง 2. ์ฝ๋ ๋ฆฌ๋ทฐ (1) use-gallery (customHook ๋ถ๋ถ) ์ฐ์ผ ์ํ ๋ณ์ ๋ชจ์ selectedAlbum์ ํ์ฌ ์ ํ๋ ์จ๋ฒ์ ์ด๋ฆ์ ๋งํ๋ ๊ฒ์ด๊ณ , albumTitle์ ์ฌ์ฉ์๊ฐ ์ ๊ท ์
๋ ฅํ ์จ๋ฒ์ ์ด๋ฆ์ด ๋ค์ด๊ฐ๋ ๊ณณ์ด๋ค. albums๋ ํ์ฌ ์ ์ฅ๋ ์จ๋ฒ์ ๋ชฉ๋ก์ด๋ค. modalVisible์ ํ์
์ฐฝ on/off ์ฉ ์ํ๋ณ์์ด๋ค. ์ ๊ท ์ถ๊ฐ๋ ํจ์ : ๋ชจ๋ฌ์ด๋ผ๋ ํ์
์ฐฝ ์ผ๊ธฐ / ..
2023.04.14
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
๊ฐค๋ฌ๋ฆฌ ์ฑ ํด๋ก ์ฝ๋ฉ - ๊ฐค๋ฌ๋ฆฌ์ ์ฌ์ง ์ถ๊ฐํ๊ธฐ
1. Device ๋ด์ฅ ๊ฐค๋ฌ๋ฆฌ ์ ์ : expo์ imagePicker๋ผ๋ ๋ก์ง์ด์ฉ (1) ๋ก์ง (2) ์ฝ๋๋ฆฌ๋ทฐ ๋ด๋ถ ์ฝ๋๋ค์ธ๋ฐ async ํจ์, await ๋ฑ pickImage๋ฅผ ๊ตฌํํ๋ ๋ด๋ถ ๋ก์ง๋ค ์ค ๋ชจ๋ฅด๋ keyWord๋ค์ด ๋ง๋ค. ํด๋น ๋ด์ฉ๋ค์ ์๋ ค๋ฉด promise ๋ผ๋ ํค์๋ ๋ถํฐ ๊ณต๋ถํด์ผ ํ๋ค. ์ด๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ฏ๋ก, ๋จผ์ ์ด๋ฒ ๊ฐ์ ์ ๋ด์ฉ์ ๋น ๋ฅด๊ฒ ์ ๋ฆฌํ ํ ๋์์์ ๊ณต๋ถํ๋๋ก ํ๊ฒ ๋ค. (3) ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ - image Picker ๋ก์ง ๋ถํด๋ฅผ ํตํ์ฌ https://docs.expo.dev/versions/latest/sdk/imagepicker/ 2. imagePicker๊ฐ ํ๋์ ์ฌ์ง ๋ฟ๋ง ์๋๋ผ ์ฌ๋ฌ ๊ฐ์ ์ฌ์ง์ ๊ฐ์ง๊ณ ์์ ์ ์๋๋ก ์ปค์คํฐ๋ง์ด์ง + imagePicker..
2023.04.13
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์บ๋ฆฐ๋ ํด๋ก ์ฝ๋ฉ - todoList ์ ์ฅ๊ณ ์ ์ ์ฅํ๊ณ ๊บผ๋ด์ค๊ธฐ
์ฑ์ ๋์๋ค๊ฐ ๋ค์ ๋ค์ด๊ฐ๋ ๋ด๊ฐ ์ผ์ ์ ์ ์๋ todoList๋ ๊ทธ๋๋ก ์ ์ฅ๋์ด ์์ด์ผ ํ๋ค. ๊ทธ๊ฑธ ๊ตฌํํ๊ธฐ ์ํด Stroage๋ DB๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ด ๋๋๋ง ๋๊ณ ์๋ ์ํฉ์์ update ์ ๋ฐ๋ก DB์ update ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ์์ผ ์ฃผ๋๋กํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์ด ๋ค์ ์์๋ ๋, ํด๋น DB์์ ๋ด์ฉ๋ฌผ์ ๊บผ๋ด ์ค๋๋ก ํ๋ค. 1. ๋ก์ง 2. ์ฝ๋ ๋ฆฌ๋ทฐ AsyncStorage - Expo Documentation AsyncStorage Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React. docs.expo.dev ๋จผ์ ์ฌ๊ธฐ์ AsyncS..
2023.04.12
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก
์บ๋ฆฐ๋ ํด๋ก ์ฝ๋ฉ - toDo ์ ํ ๋ ์ง๋ ์ฐํ๊ฒ ํ์
1. ๋ก์ง 2. ์ฝ๋๋ฆฌ๋ทฐ 3. ์๋กญ๊ฒ ๋ฐฐ์ด ๊ฒ JS ์ Array ํจ์ ์ค ํ๋์ธ find find๋ ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๋ฐํํ๋ค. array = [5,12,23,45,13] const result = array.find(element => element > 10 ); console.log(result) // ๊ฒฐ๊ณผ๋ 12 ์๋ค์ํผ, 0์ด ์๋ ๋ชจ๋ ์ซ์๋ ์ฐธ ์ทจ๊ธ์ ๋ฐ๋๋ค. (๊ทธ๋์ ์์ ๋ก์ง์ ์ด๋ฅผ ์ด์ฉํด boolean ๊ฐ์ฒ๋ผ ์ด ๊ฒ์ด๋ค.) ๋ง์ฝ์ ์์ ํจ์์์ 10๋ณด๋ค ํฐ ์ซ์๊ฐ ์๋ฌด๊ฒ๋ ์์๋ค๋ฉด, find ํจ์๋ undefined๋ฅผ ๋ฐํํ๋ค.
2023.04.12
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ/React Native-์ด๋ก