JapanTravelTipsApp

πŸ‡―πŸ‡΅ Tips for Japan

A React Native (Expo) app with essential travel tips for Japan, featuring swipeable category cards, dark mode, and offline support.

Tech Stack

Project Structure

japan-tips-app/
β”œβ”€β”€ App.tsx                       # Entry point
β”œβ”€β”€ app.json                      # Expo config
β”œβ”€β”€ eas.json                      # EAS Build & Submit config
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── src/
    β”œβ”€β”€ components/
    β”‚   β”œβ”€β”€ CategoryCard.tsx       # Grid card on home screen
    β”‚   β”œβ”€β”€ TipCard.tsx            # Swipeable tip detail card
    β”‚   └── SwipeIndicator.tsx     # Dot pagination
    β”œβ”€β”€ data/
    β”‚   └── tips.json              # All tips data (edit this to add content!)
    β”œβ”€β”€ hooks/
    β”‚   └── useTips.ts             # TanStack Query hooks
    β”œβ”€β”€ navigation/
    β”‚   β”œβ”€β”€ AppNavigator.tsx       # Stack navigator
    β”‚   └── types.ts               # Navigation param types
    β”œβ”€β”€ screens/
    β”‚   β”œβ”€β”€ HomeScreen.tsx         # Category grid
    β”‚   └── CategoryScreen.tsx     # Swipeable tips within a category
    β”œβ”€β”€ theme/
    β”‚   └── index.ts               # Light/Dark theme system
    └── types/
        └── index.ts               # TypeScript interfaces

Getting Started

Prerequisites

Install & Run

cd japan-tips-app
npm install
npx expo start

Scan the QR code with Expo Go (Android) or Camera app (iOS).

Adding New Tips

Edit src/data/tips.json. Each category follows this structure:

{
  "id": "unique-slug",
  "title": "Category Name",
  "icon": "🎌",
  "color": "#HEX",
  "tips": [
    {
      "id": "tip-slug",
      "title": "Tip Title",
      "emoji": "πŸ’‘",
      "content": "Tip description text..."
    }
  ]
}

That’s it β€” no code changes needed when adding tips!

Building for App Store & Play Store

1. Configure your identifiers

In app.json, update:

In eas.json, update:

2. Build

# iOS
eas build --platform ios --profile production

# Android
eas build --platform android --profile production

3. Submit

# iOS β†’ App Store Connect
eas submit --platform ios

# Android β†’ Google Play Console
eas submit --platform android

Features

Future Enhancements