Skip to content

eveiljuice/swipe-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’• SWIPE - Modern Dating App

Version Expo React Native TypeScript License

A beautiful, modern dating app built with React Native and Expo. Swipe through profiles, match with people, and start meaningful conversations.

Features โ€ข Installation โ€ข Usage โ€ข Project Structure โ€ข Troubleshooting


โœจ Features

  • ๐ŸŽฏ Swipe Interface - Intuitive card-based swiping with smooth animations
  • ๐Ÿ’ฌ Real-time Chat - Chat with your matches instantly
  • ๐Ÿ‘ค User Profiles - Beautiful profile cards with photos and information
  • ๐ŸŽจ Modern UI/UX - Glassmorphism design with gradient backgrounds
  • ๐Ÿ“ฑ Cross-platform - Works on iOS, Android, and Web
  • ๐Ÿ”” Match Notifications - Get notified when you have a mutual match
  • ๐Ÿ“ Location-based - Discover people nearby
  • ๐ŸŽญ Onboarding Flow - Smooth user onboarding experience

๐Ÿ“‹ Prerequisites

Before you begin, ensure you have the following installed:

๐Ÿš€ Installation

Step 1: Clone the Repository

git clone https://github.com/YOUR_USERNAME/swipe-app.git
cd swipe-app/SwipeApp

Step 2: Install Dependencies

npm install

This will install all required packages including:

  • React Native and Expo SDK
  • Navigation libraries
  • Gesture handlers
  • Image picker and location services
  • And more...

Step 3: Install Expo CLI Globally (if not already installed)

npm install -g @expo/cli

๐ŸŽฎ Usage

Development Mode

Start the Expo development server:

npm start

This will:

  • Start the Metro bundler
  • Display a QR code in your terminal
  • Open Expo DevTools in your browser

Running on Different Platforms

๐ŸŒ Web Browser

npm run web

The app will automatically open in your default browser at http://localhost:19006

๐Ÿ“ฑ iOS Simulator (macOS only)

npm run ios

Note: Requires Xcode and iOS Simulator to be installed.

๐Ÿค– Android Emulator

npm run android

Note: Requires Android Studio and an Android emulator to be set up.

๐Ÿ“ฒ Physical Device

  1. Start the development server: npm start
  2. Install Expo Go on your device:
  3. Scan the QR code:
    • iOS: Use the Camera app
    • Android: Use the Expo Go app to scan
  4. Make sure your device and computer are on the same Wi-Fi network

Using Tunnel Mode (if QR code doesn't work)

If you're having trouble connecting, try tunnel mode:

npx expo start --tunnel

๐Ÿ“ Project Structure

SwipeApp/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/          # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ UserCard.tsx     # Profile card component
โ”‚   โ”‚   โ”œโ”€โ”€ MatchModal.tsx   # Match notification modal
โ”‚   โ”‚   โ”œโ”€โ”€ Button.tsx       # Custom button component
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ screens/             # App screens
โ”‚   โ”‚   โ”œโ”€โ”€ AuthScreen.tsx   # Login/Registration
โ”‚   โ”‚   โ”œโ”€โ”€ SwipeScreen.tsx  # Main swiping interface
โ”‚   โ”‚   โ”œโ”€โ”€ ChatScreen.tsx   # Chat interface
โ”‚   โ”‚   โ”œโ”€โ”€ ProfileScreen.tsx # User profile
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ navigation/          # Navigation configuration
โ”‚   โ”‚   โ””โ”€โ”€ AppNavigator.tsx
โ”‚   โ”œโ”€โ”€ context/             # React Context for state management
โ”‚   โ”‚   โ””โ”€โ”€ AppContext.tsx
โ”‚   โ”œโ”€โ”€ utils/               # Utility functions
โ”‚   โ”‚   โ”œโ”€โ”€ colors.ts        # Color scheme
โ”‚   โ”‚   โ”œโ”€โ”€ responsive.ts    # Responsive design helpers
โ”‚   โ”‚   โ””โ”€โ”€ storage.ts       # AsyncStorage helpers
โ”‚   โ””โ”€โ”€ data/                # Mock data
โ”‚       โ””โ”€โ”€ mockData.ts
โ”œโ”€โ”€ assets/                  # Images, icons, fonts
โ”œโ”€โ”€ App.tsx                  # Root component
โ”œโ”€โ”€ app.json                 # Expo configuration
โ”œโ”€โ”€ package.json             # Dependencies
โ””โ”€โ”€ tsconfig.json           # TypeScript configuration

๐ŸŽจ Key Features Explained

Swipe Functionality

  • Swipe Right (Like): Tap the heart icon or swipe right on a card
  • Swipe Left (Pass): Tap the X icon or swipe left on a card
  • View Profile: Tap on the card to see more details
  • Smooth Animations: Cards animate smoothly with rotation and opacity effects

Matching System

  • When you swipe right on someone who also swiped right on you, you get a match!
  • Match notifications appear as a beautiful modal with celebration effects
  • Matched users appear in your chat list

Chat Features

  • Real-time messaging interface
  • Chat list shows all your matches
  • Clean, modern chat UI

๐Ÿ”ง Configuration

App Configuration (app.json)

The app is configured with:

  • App Name: SWIPE
  • Slug: swipe-app
  • Orientation: Portrait only
  • Permissions: Camera, Photo Library, Location

Environment Variables

Currently, the app uses mock data. To connect to a backend:

  1. Create a .env file in the SwipeApp directory
  2. Add your API endpoints:
API_URL=your_api_url_here

๐Ÿ› Troubleshooting

Common Issues

โŒ "npm: command not found"

Solution:

  • Install Node.js from nodejs.org
  • Restart your terminal/command prompt
  • Verify installation: node --version and npm --version

โŒ "expo: command not found"

Solution:

npm install -g @expo/cli

โŒ QR Code won't scan

Solutions:

  1. Ensure your phone and computer are on the same Wi-Fi network
  2. Try tunnel mode: npx expo start --tunnel
  3. Manually enter the connection URL in Expo Go app

โŒ App won't load on device

Solutions:

  1. Close and reopen Expo Go app
  2. Restart the development server: npm start
  3. Clear Expo cache: npx expo start -c
  4. Check your internet connection

โŒ Metro bundler errors

Solution:

# Clear cache and reinstall
rm -rf node_modules
npm install
npx expo start -c

โŒ TypeScript errors

Solution:

# Reinstall TypeScript dependencies
npm install --save-dev typescript @types/react @types/react-native

Platform-Specific Issues

iOS

  • Ensure Xcode Command Line Tools are installed: xcode-select --install
  • For physical devices, ensure your Apple Developer account is configured

Android

  • Ensure Android SDK is properly installed
  • Set up Android emulator in Android Studio
  • Check that ANDROID_HOME environment variable is set

๐Ÿ“ฑ Building for Production

iOS Build

npx expo build:ios

Android Build

npx expo build:android

For more details, see Expo's build documentation.

๐Ÿ›  Available Scripts

Command Description
npm start Start Expo development server
npm run web Run app in web browser
npm run ios Run app in iOS simulator
npm run android Run app in Android emulator

๐Ÿ“š Technologies Used

  • React Native - Mobile framework
  • Expo - Development platform and toolchain
  • TypeScript - Type-safe JavaScript
  • React Navigation - Navigation library
  • React Native Gesture Handler - Gesture recognition
  • React Native Reanimated - Smooth animations
  • Expo Image Picker - Image selection
  • Expo Location - Location services
  • AsyncStorage - Local data persistence

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License.

๐Ÿ‘ค Author

Your Name

๐Ÿ™ Acknowledgments

  • Expo team for the amazing development platform
  • React Native community
  • All contributors and users

Made with โค๏ธ using React Native and Expo

โญ Star this repo if you find it helpful!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published