Skip to main content
This guide covers the complete installation process, project structure, and configuration options for NearYou.

System Requirements

Before installing NearYou, ensure your system meets these requirements:
  • macOS (for iOS development)
  • Windows 10/11 (for Android development)
  • Linux (for Android and web development)
  • Node.js: Version 16 or higher
  • npm: Version 7+ (comes with Node.js)
  • Git: For version control
  • Expo CLI: Installed automatically with the project
  • Xcode: For iOS development (macOS only)
  • Android Studio: For Android development (all platforms)
  • Expo Go: Mobile app for testing (iOS | Android)

Installation Steps

1

Clone the repository

Clone the NearYou repository from GitHub:
git clone https://github.com/your-username/nearyou.git
cd nearyou
2

Install dependencies

Install all project dependencies:
npm install
This installs the following key packages:
  • expo (~54.0.20) - The Expo SDK
  • react (19.1.0) - React library
  • react-native (0.81.5) - React Native framework
3

Verify installation

Verify that everything is installed correctly:
npx expo --version
You should see the Expo CLI version printed to the console.

Project Structure

NearYou follows the Expo Router file-based routing structure:
nearyou/
├── src/
│   ├── app/                    # File-based routing directory
│   │   ├── (tabs)/            # Tab-based navigation group
│   │   │   ├── _layout.tsx    # Tab navigator layout
│   │   │   ├── index.tsx      # Home screen
│   │   │   └── explore.tsx    # Explore screen
│   │   ├── _layout.tsx        # Root layout
│   │   └── modal.tsx          # Modal screen example
│   ├── components/            # Reusable components
│   │   ├── ui/               # UI components
│   │   │   ├── icon-symbol.tsx
│   │   │   └── collapsible.tsx
│   │   ├── themed-text.tsx
│   │   ├── themed-view.tsx
│   │   ├── parallax-scroll-view.tsx
│   │   ├── hello-wave.tsx
│   │   ├── haptic-tab.tsx
│   │   └── external-link.tsx
│   ├── constants/            # App constants
│   │   └── theme.ts         # Theme configuration
│   └── hooks/               # Custom React hooks
│       ├── use-color-scheme.ts
│       ├── use-color-scheme.web.ts
│       └── use-theme-color.ts
├── assets/                  # Static assets
│   ├── images/             # Images and icons
│   └── screenshots/        # App screenshots
├── app.json               # Expo configuration
├── package.json          # Dependencies and scripts
└── tsconfig.json        # TypeScript configuration

Configuration

App Configuration (app.json)

The app.json file contains core app settings:
app.json
{
  "expo": {
    "name": "nearyou",
    "slug": "nearyou",
    "version": "1.0.0",
    "orientation": "portrait",
    "scheme": "nearyou",
    "userInterfaceStyle": "automatic",
    "newArchEnabled": true
  }
}
name
string
required
The display name of your app
slug
string
required
URL-friendly name used in Expo Go and updates
scheme
string
Deep linking URL scheme (e.g., nearyou://)
newArchEnabled
boolean
default:false
Enables React Native’s new architecture for improved performance

Platform-Specific Settings

app.json
"ios": {
  "supportsTablet": true
}
The app supports both iPhone and iPad devices.

Expo Plugins

NearYou uses the following Expo plugins:
"plugins": [
  "expo-router"
]

Experimental Features

NearYou enables cutting-edge React and Expo features:
app.json
"experiments": {
  "typedRoutes": true,
  "reactCompiler": true
}
  • typedRoutes: Provides TypeScript types for your routes
  • reactCompiler: Enables the new React Compiler for automatic optimization

TypeScript Configuration

The project uses TypeScript with path aliases configured in tsconfig.json:
Example import
import { ThemedText } from '@/components/themed-text';
import { useThemeColor } from '@/hooks/use-theme-color';
The @/ alias points to the src/ directory for cleaner imports.

Development Server

Start the development server with:
npx expo start
The development server provides hot reloading, allowing you to see changes instantly without restarting the app.

Available Options

When the dev server is running, you can use these keyboard shortcuts:
KeyAction
aOpen on Android
iOpen on iOS simulator
wOpen in web browser
rReload app
mToggle menu
jOpen debugger

Environment Setup

iOS Development

1

Install Xcode

Download Xcode from the Mac App Store (macOS only).
2

Install Command Line Tools

xcode-select --install
3

Install iOS Simulator

Open Xcode, go to Preferences > Components, and install an iOS simulator.

Android Development

1

Install Android Studio

Download and install Android Studio.
2

Configure Android SDK

Open Android Studio, go to Settings > Android SDK, and install:
  • Android SDK Platform
  • Android SDK Build-Tools
  • Android Emulator
3

Set environment variables

Add to your shell profile (.bashrc, .zshrc, etc.):
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
4

Create an emulator

Open Android Studio > Device Manager > Create Device, and select a device profile.

Troubleshooting

Try clearing the cache:
npx expo start --clear
Delete node_modules and lockfile, then reinstall:
rm -rf node_modules package-lock.json
npm install
Ensure Xcode Command Line Tools are set correctly:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Verify Android SDK environment variables are set and emulator is running:
adb devices

Next Steps

Start developing

Learn about the codebase structure and start building features

Customize theming

Configure colors, fonts, and UI components

Add navigation

Create new screens and navigation flows

Deploy your app

Build and publish to iOS and Android

Build docs developers (and LLMs) love