A fun, offline-first React Native mobile application built with Expo SDK 52 that generates random numbers and picks random names from user-provided lists. Perfect for decision-making, games, and random selections!
- Generate random numbers within custom ranges (1-100)
- Set your own minimum and maximum values
- Real-time validation with helpful error messages
- Reset to default range (1-100) with one tap
- Animated number generation with loading spinner
- Enter multiple names separated by commas
- Randomly select one name from the list
- Perfect for choosing who goes first, picking teams, or making decisions
- Clear all names with one tap
- Animated name selection with loading spinner
- Dual Tab Interface: Switch between Number Generator and Name Picker
- Smooth Animations: Tab indicator slides smoothly between sections
- Custom Modals: Branded alert dialogs and result displays
- Consistent Design: Orange primary theme with navy blue accents
- Responsive Layout: Works perfectly on all screen sizes
- Loading States: Inline spinners for better user experience
- 100% Offline: No internet connection required
- No Data Collection: Zero personal information stored
- Local Processing: All random generation happens on your device
- No Analytics: No tracking or usage monitoring
- Node.js (v16 or higher)
- npm or yarn
- Expo Go app on your mobile device
-
Clone the repository
git clone <repository-url> cd tagdafun
-
Install dependencies
npm install
-
Start the development server
npm start or npx expo start --tunnel
-
Run on your device
- Scan the QR code with Expo Go (Android) or Camera app (iOS)
- Or press
afor Android emulator orifor iOS simulator
tagdafun/
βββ App.tsx # Main app entry point with navigation
βββ screens/
β βββ HomeScreen.tsx # Main screen with Number & Name features
β βββ PrivacyScreen.tsx # Privacy policy display
βββ components/
β βββ CustomModal.tsx # Alert and warning modals
β βββ ResultModal.tsx # Result display modal
βββ types/
β βββ index.ts # TypeScript type definitions
β βββ images.d.ts # Image module declarations
βββ assets/
β βββ tagdafun-main-logo.png # App logo and icons
βββ app.json # Expo configuration
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ babel.config.js # Babel configuration with path aliases
βββ README.md # This file
βββ PRIVACY_POLICY.md # Privacy policy document
- Tap the "π² Number" tab
- Enter your desired minimum and maximum values
- Tap "Generate Number" to get a random number
- View the result in a beautiful modal
- Use "Reset to Default" to return to 1-100 range
- Tap the "π₯ Names" tab
- Enter names separated by commas (e.g., "John, Jane, Mike, Sarah")
- Tap "Pick a Name" to randomly select one
- View the chosen name in a beautiful modal
- Use "Clear All Names" to start fresh
- Primary:
#FF6B00(Orange) - Secondary:
#002244(Navy Blue) - Background:
#FFFFFF(White) - Surface:
#F8F9FA(Light Gray) - Text:
#1A1A1A(Dark Gray)
- Headers: Bold, 24-32px
- Body: Regular, 16px
- Captions: Regular, 14px
- Buttons: Bold, 18px
- Type Safety: Catch errors at compile time
- Better IntelliSense: Enhanced code completion
- Refactoring Support: Safe code modifications
- Documentation: Types serve as inline documentation
The project uses custom path aliases for cleaner imports:
@/β Root directory@assets/β Assets directory@screens/β Screen components@components/β Reusable components@types/β TypeScript definitions
npm start # Start Expo development server
npm run android # Run on Android emulator
npm run ios # Run on iOS simulator
npm run web # Run in web browser
npm run ts:check # TypeScript type checking- Clean tab navigation with animated indicator
- Input fields for custom range (1-100)
- Generate button with inline loading spinner
- Reset to default functionality
- Multi-line text input for names
- Comma-separated name entry
- Pick button with inline loading spinner
- Clear all names functionality
- Beautiful animated result display
- Different styles for numbers vs names
- Action buttons (Awesome!, Try Again)
- Badge showing range or name count
- Branded modal design
- Different types: Error, Warning, Info
- Smooth animations
- Consistent with app theme
- Privacy policy included
- No data collection
- Offline functionality
- Professional UI/UX
- TypeScript for maintainability
# For production build
npx expo build:android
npx expo build:ios
# For EAS Build (recommended)
npx eas build --platform android
npx eas build --platform ios- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
For questions or support, please refer to the privacy policy contact information in PRIVACY_POLICY.md.
Tagda Fun - Making random decisions fun and easy! π²β¨