Expense Tracking App
๐ ๏ธerror fix
Expo๋ฅผ ์ฌ์ฉํ๋ฉด React Native ํ๋ก์ ํธ์์ ๋ชจ๋์ ์ค์นํ๊ณ ๊ตฌ์ฑํ๋ ๋ฐ ํ์ํ ์์
์ด ์๋์ผ๋ก ์ฒ๋ฆฌ๋๋ค. expo๊ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ ํ์ํ ๋ค์ดํฐ๋ธ ์ข
์์ฑ์ ๊ด๋ฆฌํ ์ ์๊ฒ ์คํํ ์ฑ๋ก ์ค์น ๋ช
๋ น์ด๋ฅผ ์คํํด์ผ ๋๋ฝ๋์ง ์๊ณ ์์ ์ ์ผ๋ก ์๋ํ๋ค.
Xcode simulator๋ settings-platforms์์ simulator ๋ฒ์ ์ ์ ํํด์ ๋ฐ๋ก installํด์ค์ผ ํจ
- ํ๋ก์ ํธ ์์ฑ ํ
npm install @react-navigation/native
- ์ถ๊ฐ ์์กด์ฑ ์ค์น
expo install react-native-screens react-native-safe-area-context
- ๋ค์ดํฐ๋ธ ์คํ ๋ด๋น๊ฒ์ด์
์ ๊ตฌํํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
expo install @react-navigation/native-stack
-
ํญ(Tap) ๋ด๋น๊ฒ์ดํฐ
npm install @react-navigation/bottom-tabs
-
stack : ํ ํ๋ฉด์์ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ์ด๋ํ ๋ ์ ํ๋ฉด์ด ์์ ์ถ๊ฐ๋๋ ๊ตฌ์กฐ.
๋ค๋ก๊ฐ๊ธฐ ํ์คํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. LIFO(Last In, First Out)๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ ๋ง์ง๋ง์ ์ถ๊ฐ๋ ํญ๋ชฉ์ด ๊ฐ์ฅ ๋จผ์ ์ ๊ฑฐ๋๋ ํน์ง์ด ์์ -
payload : ํน์ ๋์์ด๋ ์์ ์ ์ํํ๊ธฐ ์ํด ์ ๋ฌ๋๋ ๋ฐ์ดํฐ
switch (action.type)
: action.type์ Redux๋ useReducer์ ๊ฐ์ ์ํ ๊ด๋ฆฌ์์ ๋ง์ด ์ฌ์ฉ๋๋ฉฐ, ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํ ์ก์ ์ ์ข ๋ฅ๋ฅผ ๋ํ๋ธ๋ค. switch (action.type)๋ action.type์ ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝ๋๋ฅผ ์คํํ๊ฒ ๋๋ค.
Handling User Input (Fetching & Validating User Input)
Sending HTTP Requests
- ๋ชจ๋ฐ์ผ ์ฑ์ ๊ตฌ์ถ ์ค์ด๋ฏ๋ก ๋ฐ์ดํฐ ๊ตํ๊ณผ ๊ด๋ จ๋ API๊ฐ ํ์
Firebase
- ๋๋ฏธ ๋ฐฑ์๋๋ก ์ฌ์ฉํด์ ์์ฒด ๋ฐฑ์๋ ๊ตฌ์ถํ ํ์๊ฐ ์์(ํ์ง๋ง Node๋ PHP๋ฑ ๋์ค์ ๋ค๋ฅธ ๋ฐฑ์๋์์๋ ํ์ฉ ๊ฐ๋ฅํจ)
- ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๊ธฐ๋ง ํ๋ฉด ๋จ(graphAPI๋ REST API๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ)
- ํ๋ก์ ํธ ์์ฑ ํ Realtime Database : ์ฌ์ฉํ๊ธฐ๊ฐ ์๋์ ์ผ๋ก ์ข ๋ ์ฝ๊ณ REST API๋ฅผ ์ ๊ณต
- ์ฐ๋ฆฌ์๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ API์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ด๋ฉฐ Google Firebase๊ฐ ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒญ์ผ๋ก ๋ณํํ๋ค.
- Location setting : ๊ธฐ๋ณธ๊ฐ์ผ๋ก
- security๋ team mode๋ก ์์ํด์ผ ์ธ์ฆ ์์ด ์ฝ๊ธฐ์ ์ฐ๊ธฐ๋ฅผ ํ ์ ์๋ค.
Axios ์ค์น
- API : ๋ ์์คํ ๊ฐ์ ์ค๊ฐ์ ์ญํ (์ : ์๋ฒ, ํด๋ผ์ด์ธํธ)
- Axios : HTTP ํด๋ผ์ด์ธํธ (์ : ๋ธ๋ผ์ฐ์ , ์๋ฒ ๊ฐ์ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ์ ์๋๋ก ๋์์ค)
- fetch API๋ฅผ ์ฌ์ฉ
- Axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง์ด ์ : ํ๋ก๋ฏธ์ค ๊ธฐ๋ฐ์ HTTP ํด๋ผ์ด์ธํธ๋ก ๋ธ๋ผ์ฐ์ ์ React Native์์ ์ฌ์ฉํ ์ ์๋ค.
npm install axios
์ค์น- ์ฝ๋ URL ๋์ ์ธ๊ทธ๋จผํธ + .json
- Firebase์์๋ ๋์ .json์ ๋ถ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ ๋ ธ๋๋ฅผ ๋์์ผ๋ก ํ๋ค๋ ๊ฒ์ ์๋ ค์ค์ผ ํจ
- ์ธ๊ทธ๋จผํธ๋ ๋ ธ๋๋ ํด๋๋ก ์ ํ๋๋ค.
- ๊ณ ์ ID๋ Firebase๊ฐ ์๋์ผ๋ก ์์ฑํด์ค