A modern, beautiful React Native Expo app for learning and practicing sign language with AI-powered gesture recognition.
- Learn AβZ Signs: Master the sign language alphabet with visual guides
- Text to Sign: Convert any text into sign language representations
- Photo to Text: Recognize sign language gestures from images
- Camera Prediction: Real-time AI-powered sign language recognition
- Beautiful UI: Modern design with smooth animations and gradients
- Dark/Light Mode: Automatic theme support
- Responsive Design: Works perfectly on all screen sizes
- Vibrant gradient cards inspired by modern app design
- Smooth animations using React Native Reanimated
- Clean, minimal interface with generous spacing
- Rounded corners and soft shadows throughout
- Professional typography and color palette
- Optimized for both iOS and Android
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI:
npm install -g expo-cli - iOS Simulator (for Mac) or Android Studio (for Android development)
-
Navigate to the project directory:
cd SignLanguageApp -
Install dependencies:
npm install
-
Start the development server:
npm start
-
Run on your device:
- Scan the QR code with Expo Go app (iOS/Android)
- Press
ifor iOS simulator - Press
afor Android emulator - Press
wfor web browser
SignLanguageApp/
βββ App.js # Main app entry point
βββ app.json # Expo configuration
βββ package.json # Dependencies
βββ babel.config.js # Babel configuration
β
βββ assets/ # Static assets
β βββ fonts/ # Custom fonts
β βββ icons/ # App icons
β βββ images/ # Images
β βββ signs/ # Sign language images
β
βββ src/
βββ api/ # API integration
β βββ client.js # Axios client
β βββ authApi.js # Authentication API
β βββ textPredictApi.js # Text prediction API
β βββ photoPredictApi.js # Photo prediction API
β βββ cameraPredictApi.js # Camera prediction API
β
βββ components/
β βββ ui/ # Reusable UI components
β β βββ ButtonPrimary.jsx
β β βββ InputField.jsx
β β βββ Card.jsx
β β βββ Loader.jsx
β β βββ GradientBackground.jsx
β βββ layout/ # Layout components
β β βββ Header.jsx
β β βββ ScreenWrapper.jsx
β βββ predict/ # Prediction components
β βββ SignCard.jsx
β βββ LetterCard.jsx
β
βββ navigation/ # Navigation setup
β βββ AppNavigator.jsx
β βββ AuthNavigator.jsx
β βββ MainNavigator.jsx
β
βββ screens/ # App screens
β βββ Splash/
β β βββ SplashScreen.jsx
β βββ Auth/
β β βββ LoginScreen.jsx
β β βββ RegisterScreen.jsx
β βββ Home/
β β βββ HomeScreen.jsx
β βββ Learn/
β β βββ LearnScreen.jsx
β β βββ LetterDetailScreen.jsx
β βββ Predict/
β βββ TextPredictScreen.jsx
β βββ ImagePredictScreen.jsx
β βββ CameraPredictScreen.jsx
β
βββ context/ # React Context
β βββ AuthContext.jsx
β βββ AppContext.jsx
β
βββ styles/ # Design system
β βββ colors.js
β βββ typography.js
β βββ spacing.js
β βββ shadows.js
β
βββ utils/ # Utility functions
β βββ helpers.js
β βββ validators.js
β βββ constants.js
β
βββ config/ # Configuration
βββ env.js
βββ routes.js
-
Primary Colors:
- Blue:
#5B9FFF - Purple:
#A78BFA - Pink:
#F472B6 - Green:
#34D399 - Yellow:
#FBBF24
- Blue:
-
Gradients:
- Blue:
['#5B9FFF', '#3B82F6'] - Purple:
['#A78BFA', '#8B5CF6'] - Pink:
['#F472B6', '#EC4899'] - Green:
['#34D399', '#10B981']
- Blue:
- Font Sizes: 12px - 48px
- Weights: Regular (400), Medium (500), Semibold (600), Bold (700)
- System Fonts: iOS System / Android Roboto
- Base Unit: 4px
- Scale: 4, 8, 16, 24, 32, 40, 48, 64, 80px
- Border Radius: 4, 8, 12, 16, 20, 24, 28px
To connect your backend API:
- Open
src/config/env.js - Update
API_BASE_URLwith your backend URL - Uncomment actual API calls in API files
- Remove mock implementations
Permissions are configured in app.json:
- Camera permission for real-time prediction
- Photo library access for image uploads
- Animated app logo and title
- Smooth wave animations
- Auto-navigation to Login
- Email and password inputs
- Gradient background with floating shapes
- Link to registration
- Name, email, and password fields
- Beautiful onboarding-style header
- Smooth fade-in animations
- Welcome message with user name
- 4 colorful feature cards:
- Learn AβZ Signs
- Text β Sign Photo
- Photo β Text Converter
- Camera Prediction
- Animated card entrance
- Grid of 26 letter cards (A-Z)
- Color-coded gradient cards
- Tap to view detail
- Large sign language image
- Letter badge
- Practice tips
- Beautiful gradient card
- Text input field
- Convert button
- Animated result cards showing sign sequence
- Grid layout for multiple signs
- Image picker interface
- Upload preview
- Prediction result with confidence score
- Alternative predictions
- Full-screen camera view
- Animated scanning frame
- Real-time prediction display
- Confidence indicator
- Instructions overlay
All screens feature smooth animations:
- Fade In/Out: Screen transitions
- Scale: Button press feedback
- Slide: Card entrance animations
- Spring: Bouncy card interactions
- Pulse: Loading indicators
Current implementation uses mock authentication. To integrate real authentication:
- Update
src/api/authApi.js - Implement token storage (AsyncStorage)
- Add token refresh logic
- Update API client interceptors
iOS:
expo build:iosAndroid:
expo build:androideas build --platform ios
eas build --platform android- Connect to real backend API
- Implement actual ML model for predictions
- Add video tutorials for each sign
- Progress tracking and achievements
- Social features (share progress)
- Multiple language support
- Voice-to-sign conversion
- Practice mode with feedback
- Offline mode support
- Cloud sync for progress
Issue: Metro bundler won't start
expo start -cIssue: Dependencies not installing
rm -rf node_modules
npm installIssue: iOS simulator not showing
expo start --iosIssue: Camera not working
- Check permissions in
app.json - Ensure device has camera access enabled
This project is created by MiniMax Agent for educational purposes.
MiniMax Agent
Made with β€οΈ using React Native Expo