๐ป ํ๋ก ํธ์๋19 React Native์ React ์ปดํฌ๋ํธ ์ฐจ์ด ๊ธฐ๋ณธ์ ์ผ๋ก React Native๋ React์ ๋น์ทํ์ง๋ง ๋ผ์ฐํ ๊ณผ ์ปดํฌ๋ํธ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค ์ฌ๊ธฐ์๋ ์ปดํฌ๋ํธ ์ฐจ์ด์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. React์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋ ์๋งจํฑ ํ๊ทธ๋ฅผ ์ด์ฉํ๋ ๋ฐ๋ฉด React Native์์๋ ์ ๊ณต๋๋ ์ปดํฌ๋ํธ๋ค์ ์ฌ์ฉํด์ผ ํฉ๋๋ค ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฃผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ๋ค์ ๋๋ค div = View div์ ๋ค๋ฅด๊ฒ View์๋ ํ ์คํธ๊ฐ ๋ค์ด๊ฐ ์ ์์ต๋๋ค input(type="text") = TextInput button = Button or TouchableOpacity TouchableOpacity๊ฐ ์คํ์ผ๋ง์ด ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ ๋ณดํต TouchableOpacity๋ฅผ ์ฌ์ฉํฉ๋๋ค span = Text ๋ชจ๋ ํ ์คํธ๋ค์ Text ์ปดํฌ๋ํธ ์์ ์์ฑ๋์ด์ผ .. 2024. 1. 8. CSS ์ ๋๋ฉ์ด์ ์ฑ๋ฅ ๊ฐ์ โ๏ธ๋ฌธ์ ์ํฉ 2๊ฐ์ง ์๊ตฌ์ฌํญ์ ์ํํ ๋ ์ ๋๋ฉ์ด์ ํจ๊ณผ๊ฐ ๋งค๋๋ฝ์ง ๋ชปํจ 1. ์คํฌ๋กค ์์น๊ฐ ํน์ ์น์ ์ ๋๋ฌํ๋ฉด ํ๋ฉด์ ๊ณ ์ ์ํค๊ณ ์นด๋๋ง ๊ฐ๋ก๋ก ์ด๋ํด์ผ ํจ(left๋ก ์์น๋ฅผ ๋ณ๊ฒฝํ์) 2. ์นด๋๊ฐ ์ด๋ํ๋ฉด ๋ฐฐ๊ฒฝ์ ์ด๋ฏธ์ง๋ ๊ฐ์ด๋ฐ ์์นํ๋ ์นด๋์ ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝ๋์ด์ผ ํจ(background-image๋ฅผ ๋ณ๊ฒฝํ์) โ ํด๊ฒฐ ๋ฏธ๋ฆฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ๋ ๋๋ง ํด๋์ ์ํ์์ opacity๋ง transition์ ์ฃผ๊ณ ์นด๋์ ์์น๋ transform์ translateX์์ฑ์ ์ฌ์ฉํ์ฌ ์ ๋๋ฉ์ด์ ์ต์ ํํจ ์์ฑ์ ๋ฐ๊พธ๋ ๊ฒ๋ง์ผ๋ก ์ต์ ํ๊ฐ ๊ฐ๋ฅํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? ์ด์ ์ ๋ํด ์ค๋ช ํ๊ธฐ ์ํด์๋ ์ฐ์ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค. ๐ ๊ฐ๋ตํ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ 1. HTML๊ณผ CSS ๋ฑ ๋ฆฌ์์ค๋ฅผ .. 2024. 1. 8. [React Native] ํฐํธ ์ค์ ์ด ๋ฐฉ๋ฒ์ ๋ฒ์ 0.70์ด์๋ง ๊ฐ๋ฅํ ๊ฑธ๋ก ์๊ณ ์์ต๋๋ค ๋ ๋ฎ์ ๋ฒ์ ์ ์ฌ์ฉ ์ค์ด์ ๋ถ๋ค์ ์ง์ ios์ ์๋๋ก์ด๋ ํด๋์์ ์ค์ ์ ํด์ฃผ์ ์ผ ํฉ๋๋ค ํ๋ก์ ํธ ๋ฃจํธ ๊ฒฝ๋ก์ react-native.config.js ํ์ผ์ ๋ง๋ค๊ณ ํฐํธ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์ module.exports = { assets: ['./assets/fonts'], }; react-native-asset ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค npx react-native-asset ํน์๋ผ๋ ios์์ ๋น๋๊ฐ ์คํจํ๋ค๋ฉด ios/Fonts์ ํฐํธ ํ์ผ์ ๋ฃ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค! 2024. 1. 5. [React Native] ๋ฅ๋งํฌ ์ค์ ํ๊ธฐ React Navigation ๊ณต์๋ฌธ์์์ ํด๋น ๋ด์ฉ์ ํ์ธํ์ค ์ ์์ต๋๋ค https://reactnavigation.org/docs/deep-linking/ ์๋๋ก์ด๋ android > app > src > main > AndroidManifest.xml activity ์์๋ค๊ฐ ํด๋น ์ฝ๋๋ฅผ ๋ฃ์ด์ค๋๋ค IOS ios๋ 2๊ฐ์ง๋ฅผ ์ค์ ํด์ค์ผ ํฉ๋๋ค 1. ios > ํ๋ก์ ํธ ์ด๋ฆ ํด๋ > AppDelegate.mm ํด๋น ์ฝ๋๋ฅผ ๋ฃ์ด์ค๋๋ค #import - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { return [RCTLinkingManager application:ap.. 2024. 1. 4. [React Native] Path alias ์ค์ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. 1. tsconfig + package.json tsconfig ํ์ผ์ ์ค์ ํด์ฃผ๊ณ path alias๋ฅผ ์ค์ ํ ๋ชจ๋ ํด๋์ package.json ํ์ผ์ ๋ง๋ค์ด์ค๋๋ค. ๋ชจ๋ ํด๋์ package.json ํ์ผ์ ๋ง๋ค์ด์ผ ํด์ ๋ฒ๊ฑฐ๋กญ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. //tsconfig.json { "extends": "@tsconfig/react-native/tsconfig.json", "compilerOptions": { "baseUrl": "./src", "paths": { "@components/*": ["components/*"], "@hooks/*": ["hooks/*"], "@pages/*": ["pages/*"], "@routes/*": ["routes/*"], "@types/.. 2024. 1. 3. Vitest & MSW๋ฅผ ์ฌ์ฉํ ํ ์คํธ ์ฝ๋ ์ ์ฉ vite๋ฅผ ์ฌ์ฉํ๋ฉด์ jest๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ผ๋ msw์์ ์๋ฌ๊ฐ ๋ฐ์ํด์ vitest๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํจํค์ง ์ค์น ์ฐ์ ํ์ํ ํจํค์ง๋ค์ ๋ชจ๋ ์ค์นํด์ฃผ์ธ์ ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์๋์ฒ๋ผ ์ค์นํ๋๋ฐ ํน์ ์ ๊ฐ ๋น ํธ๋ฆฐ๊ฒ ์์ ์๋ ์์ด์ ๋น ์ง ๋ถ๋ถ์ ํ์ธํด์ ์ถ๊ฐํด์ฃผ์ธ์ yarn add --dev vitest @testing-library/jest-dom @testing-library/react @testing-library/user-event msw jsdom MSW ์ค์ MSW๋ฅผ ์ฌ์ฉํ์๋ ค๋ ๋ถ๋ค์ ์ฐ์ ๊ณต์ ๋ฌธ์๋ฅผ ํ์ธํด์ฃผ์ธ์ ์ ๋ ์๋น์ค์์ปค๋ก ๋ฐ์ดํฐ ๋ชจํนํ๋ ๊ฒ์ ์ฌ์ฉํ์ง ์๊ณ ํ ์คํธ๋ฅผ ์ํด์ msw๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค api ๊ฐ๋ฐ์ด ์๋ฃ๋์ง ์์์ ํ๋ก ํธ ๊ฐ๋ฐ ์ค์ mock๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์.. 2023. 12. 29. ์ด์ 1 2 3 4 ๋ค์