Technology stack
The mobile application uses modern React Native technologies:- Expo 54 with Expo Router for file-based routing
- React Native 0.81 with New Architecture enabled
- React 19 with React Compiler enabled
- NativeWind 4 for Tailwind utility classes in React Native
- TypeScript for type safety
- React Navigation for navigation primitives
- Expo Image for optimized image loading
- Reanimated for smooth animations
- Gesture Handler for touch interactions
Key features
Commerce flows
Complete e-commerce functionality with native UX:- Home merchandising with featured and trending products
- Product listing with search, filtering, and sorting
- Product detail pages with image gallery
- Shopping cart with quantity controls
- Multi-step checkout with payment selection
- User authentication and account management
- Order history and tracking
- Wishlist functionality
UI components
Shadcn-style component library built with class-variance-authority:Buttonwith multiple variantsCardfor content containersInputfor form fieldsBadgefor status indicators- Themed text and view components
Navigation
Expo Router provides type-safe, file-based routing:- Tab-based navigation for main sections
- Stack navigation for detailed flows
- Deep linking support
- Typed routes for compile-time safety
Platform features
Native capabilities and optimizations:- Haptic feedback on interactions
- Optimized image loading with Expo Image
- Safe area handling for notches and home indicators
- Status bar customization
- Splash screen integration
Project structure
The application uses Expo Router’s file-based routing:Getting started
Available scripts
Demo credentials
For testing authentication:- Email:
[email protected] - Password:
demo123
Configuration
Expo configuration
The application is configured inapp.json:
- New Architecture: Improved performance and capabilities
- Typed Routes: Compile-time route validation
- React Compiler: Automatic optimization
Platform-specific settings
iOS: Supports tablets with
supportsTablet: trueAndroid: Edge-to-edge enabled with adaptive icon supportWeb: Static output for deploymentNativeWind setup
Tailwind classes work in React Native through NativeWind:- Import in components:
import { View, Text } from 'react-native' - Use className prop:
<View className="flex-1 items-center"> - Configure in
tailwind.config.js - Type declarations in
nativewind-env.d.ts
Development workflow
File-based routing
Expo Router uses the file system for routing:app/index.tsx→/(home screen)app/product/[id].tsx→/product/:id(dynamic route)app/(tabs)/cart.tsx→/cart(tab route)app/checkout/success/index.tsx→/checkout/success
Styling with NativeWind
Use Tailwind utility classes directly:Component architecture
Build reusable components with class-variance-authority:Building for production
iOS build
Android build
Web export
For production builds, you’ll need to configure EAS (Expo Application Services) with
eas.json.Platform considerations
- Navigation: Tab bar automatically adapts to platform conventions
- Safe Areas: Use
SafeAreaViewfromreact-native-safe-area-context - Images: Expo Image provides automatic optimization and caching
- Gestures: Use
GestureHandlerRootViewat app root - Animations: Reanimated provides 60 FPS animations