nextjs,tailwindcss,vercel

Expo Routerλ₯Ό μ‚¬μš©ν•˜λŠ” 파일 기반 λΌμš°νŒ… μ‹œμŠ€ν…œ ꡬ쑰

주영 🐱 2024. 11. 4. 13:05
728x90
λ°˜μ‘ν˜•

Next js와 λΉ„μŠ·ν•œ Expo Router

 Expo Routerλ₯Ό μ‚¬μš©ν•˜λŠ” 파일 기반 λΌμš°νŒ… μ‹œμŠ€ν…œμ€ Next.js와 λΉ„μŠ·ν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€. 전체적인 ꡬ쑰λ₯Ό μ„€λͺ…ν•΄λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€:
app/
β”œβ”€β”€ _layout.tsx          # λͺ¨λ“  λΌμš°νŠΈμ— μ μš©λ˜λŠ” κ³΅ν†΅ λ ˆμ΄μ•„웃
β”œβ”€β”€ index.tsx           # λ©”인 ν™ˆ ν™”λ©΄ (/)
β”œβ”€β”€ calculator/
β”‚   β”œβ”€β”€ _layout.tsx     # κ³„μ‚°κΈ° κ΄€λ ¨ ν™”λ©΄λ“€μ˜ κ³΅ν†΅ λ ˆμ΄μ•„웃
β”‚   β”œβ”€β”€ index.tsx       # κ³„μ‚°κΈ° λ©”인 ν™”λ©΄ (/calculator)
β”‚   β””── history.tsx     # κ³„μ‚° νžˆμŠ€ν† λ¦¬ ν™”λ©΄ (/calculator/history)
β”œβ”€β”€ settings/
β”‚   β””── index.tsx       # μ„€μ • ν™”λ©΄ (/settings)
└── modal/
    β””── index.tsx       # λͺ¨λ‹¬ ν™”λ©΄

 

MyApp/
β”œβ”€β”€ App.tsx                      # μ•±μ˜ λ©”인 μ§„μž…μ 
β”œβ”€β”€ app.json                     # Expo μ„€μ • νŒŒμΌ
β”œβ”€β”€ babel.config.js              # Babel μ„€μ •
β”œβ”€β”€ package.json                 # ν”„λ‘œμ νŠΈ μ˜μ‘΄μ„±
β”œβ”€β”€ tsconfig.json               # TypeScript μ„€μ •
β”œβ”€β”€ assets/                     # μ΄λ―Έμ§€, ν°νŠΈ λ“± μ •적 νŒŒμΌ
β”‚   β”œβ”€β”€ icon.png
β”‚   β””── splash.png
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/             # μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ AdBanner.tsx       # λ°°λ„ˆ κ΄‘κ³  μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β””── InterstitialAd.tsx # μ „λ©΄ κ΄‘κ³  μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ screens/               # ν™”λ©΄ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ HomeScreen.tsx     # ν™ˆ ν™”λ©΄
β”‚   β”‚   β”œβ”€β”€ DividendCalculatorScreen.tsx  # λ°°λ‹Ήκ³„μ‚°κΈ° ν™”λ©΄
β”‚   β”‚   β””── ETFListScreen.tsx  # ETF λͺ©λ‘ ν™”λ©΄
β”‚   β”œβ”€β”€ constants/             # μƒμˆ˜ μ •μ˜
β”‚   β”‚   β””── adUnitIds.ts      # κ΄‘κ³  ID κ΄€λ¦¬
β”‚   β””── utils/                 # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
β”‚       β””── adHelpers.ts       # κ΄‘κ³  κ΄€λ ¨ ν—¬νΌ ν•¨μˆ˜
└── android/                   # Android λ„€μ΄ν‹°λΈŒ μ½”λ“œ
    β””── app/
        β””── src/
            β””── main/
                β””── AndroidManifest.xml  # κ΄‘κ³  ID μ„€μ • 

 

이런 앱을 expo router둜 λ°”κΎΈλ©΄

 

MyApp/
β”œβ”€β”€ app.json
β”œβ”€β”€ babel.config.js
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ icon.png
β”‚   β””── splash.png
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ _layout.tsx      # λ£¨νŠΈ λ ˆμ΄μ•„웃
β”‚   β”œβ”€β”€ index.tsx        # ν™ˆ μŠ€ν¬λ¦° (/)
β”‚   β”œβ”€β”€ dividend/
β”‚   β”‚   β”œβ”€β”€ _layout.tsx  # λ°°λ‹Ή κ΄€λ ¨ λ ˆμ΄μ•„웃
β”‚   β”‚   β””── index.tsx    # λ°°λ‹Ήκ³„μ‚°κΈ° ν™”λ©΄ (/dividend)
β”‚   β””── etf/
β”‚       β”œβ”€β”€ _layout.tsx  # ETF κ΄€λ ¨ λ ˆμ΄μ•„웃
β”‚       β””── index.tsx    # ETF λͺ©λ‘ ν™”λ©΄ (/etf)
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ads/
β”‚   β”‚   β”‚   β”œβ”€β”€ AdBanner.tsx
β”‚   β”‚   β”‚   β””── InterstitialAd.tsx
β”‚   β”‚   β””── common/
β”‚   β”‚       β””── Header.tsx
β”‚   β”œβ”€β”€ constants/
β”‚   β”‚   β””── adUnitIds.ts
β”‚   β””── utils/
β”‚       β””── adHelpers.ts
└── android/
    β””── app/
        β””── src/
            β””── main/
                β””── AndroidManifest.xml

 

μ΄λŸ°μ‹μœΌλ‘œ λœλ‹€

λ°˜μ‘ν˜•