A production-ready React Native app built with Expo for truck drivers to manage moving and storage orders.
- Driver Authentication: Mock login with AsyncStorage session persistence
- Order Dashboard: List view of all assigned orders with status indicators
- Order Details: Complete order information including customer, locations, and inventory
- Status Management: Update orders through workflow (Pending → In Transit → Delivered)
- Proof of Delivery: Camera integration for capturing delivery photos
- Settings: Driver profile, app info, and account management
- Trucker-Friendly Design: High contrast colors, large fonts (18pt+), and touch targets (48px+)
- Status-Coded: Color-coded badges (Yellow=Pending, Blue=In Transit, Green=Delivered)
- Responsive: Works on all screen sizes (phones and tablets)
- TypeScript: Full type safety with complete data schema
- Framework: React Native with Expo SDK 54
- Routing: Expo Router (file-based routing)
- State Management: React Context + AsyncStorage
- Styling: StyleSheet with design system
- Permissions: Camera, Photo Library, Location
- TypeScript: Full type safety
- Node.js 18+
- npm or yarn
- Expo account (for building)
- EAS CLI (for deployment)
# Install dependencies
npm install# Start the development server
npm start
# Run on device
# - Press 'i' for iOS simulator
# - Press 'a' for Android emulator
# - Scan QR code with Expo Go appLogin with any email and password (minimum 4 characters).
Example:
- Email:
driver@test.com - Password:
test1234
The app includes 4 sample orders with different statuses:
- Order #12345: Pending (LA to San Francisco)
- Order #12346: In Transit (San Diego to Phoenix)
- Order #12347: Delivered (Las Vegas to Reno)
- Order #12348: Pending (Oakland to Sacramento)
{
orderId: string;
orderNumber: string;
pickup: LocationData;
dropoff: LocationData;
inventory: InventoryItem[];
customer: CustomerInfo;
status: 'pending' | 'in_transit' | 'delivered' | 'cancelled';
proofOfDelivery?: ProofData;
assignedDriverId: string;
createdAt: string;
updatedAt: string;
}See src/types/index.ts for complete schema
- Create Expo account: https://expo.dev
- Install EAS CLI:
npm install -g eas-cli - Login:
eas login - Configure:
eas build:configure
Preview (Internal Testing):
eas build --platform all --profile previewProduction (App Stores):
eas build --platform all --profile productionFor preview builds, register devices:
eas device:createSee DEPLOYMENT_GUIDE.md for complete instructions
minimal-rn-app/
├── app/
│ ├── (auth)/
│ │ ├── login.tsx # Login screen
│ │ └── _layout.tsx
│ ├── (tabs)/
│ │ ├── index.tsx # Dashboard (order list)
│ │ ├── settings.tsx # Settings screen
│ │ └── _layout.tsx # Tab navigation
│ ├── order/
│ │ ├── [id].tsx # Order detail screen
│ │ └── _layout.tsx
│ ├── _layout.tsx # Root layout with auth guard
│ └── +not-found.tsx
├── src/
│ ├── components/
│ │ ├── OrderCard.tsx # Order list item
│ │ └── StatusBadge.tsx # Status indicator
│ ├── context/
│ │ └── AuthContext.tsx # Authentication provider
│ ├── services/
│ │ ├── mockData.ts # Sample orders
│ │ └── orderService.ts # Order CRUD operations
│ ├── theme/
│ │ └── colors.ts # Design system
│ └── types/
│ └── index.ts # TypeScript interfaces
├── eas.json # EAS Build configuration
├── app.json # Expo configuration
├── DEPLOYMENT_GUIDE.md # Complete deployment instructions
└── README.md # This file
- iOS:
com.movingstorage.driverapp - Android:
com.movingstorage.driverapp
- Apple Developer: $99/year (https://developer.apple.com)
- Google Play Console: $25 one-time (https://play.google.com/console)
- App icon: 1024x1024 PNG
- Screenshots: iPhone 6.7" and Android
- Privacy Policy URL
- App description
Run tests:
npm testRun with coverage:
npm run test:coveragenpm start # Start Expo dev server
npm run android # Run on Android
npm run ios # Run on iOS
npm run web # Run in browser
npm test # Run tests# Clear cache
npx expo start -c# Clear EAS cache
eas build --platform [ios|android] --clear-cacheEnsure permissions are granted in device settings:
- iOS: Settings → [App Name] → Camera
- Android: Settings → Apps → [App Name] → Permissions
This app meets Apple App Store Guideline 4.2 (Minimum Functionality) requirements:
- Persistent login/logout
- Data display (order list)
- Interactive features (status updates, photo capture)
- Settings and account management
- Clear user value (order management for drivers)
Proprietary - All rights reserved
Version: 1.0.0 Last Updated: December 2025 Expo SDK: 54.0.0