A cross-platform React Native mobile application designed for flexible learning experiences. This app uses TypeScript and adheres to a modular, scalable architecture to ensure maintainability and ease of collaboration.
FLEARNING-APP/
│
├── .vscode/ # VSCode configuration (extensions, launch settings, etc.)
├── assets/ # Static resources
│ ├── font/ # Custom fonts
│ └── images/ # App images and icons
│
├── node_modules/ # Project dependencies (auto-generated)
│
├── src/ # Main source code
│ ├── components/ # Reusable UI components
│ ├── constants/ # Common constants (colors, API endpoints, etc.)
│ ├── contexts/ # React Contexts for global state
│ ├── hooks/ # Custom React hooks
│ ├── navigation/ # Navigation setup (React Navigation stacks, tab nav, etc.)
│ ├── screens/ # App screens (Home, Login, Profile, etc.)
│ ├── services/ # External service logic (e.g., API requests)
│ ├── store/ # Global state management (Redux/Zustand slices or stores)
│ ├── types/ # TypeScript type definitions and interfaces
│ └── utils/ # Utility/helper functions
│
├── .env # Environment variables
├── .gitignore # Git ignored files/folders
├── app.json # App configuration (used by Expo or React Native CLI)
├── App.tsx # App entry point (typically wraps NavigationProvider)
├── index.ts # Entry file for React Native (registered via `AppRegistry`)
├── package.json # Project metadata and dependencies
├── package-lock.json # Exact version lockfile
└── tsconfig.json # TypeScript compiler configuration
- React Native: Core framework
- TypeScript: Static typing for better code quality
- React Navigation: Navigation between screens
- Context API / Redux / Zustand: (Based on actual implementation) for state management
- Axios / Fetch: For API service integration
- Custom Hooks: Encapsulate reusable logic
- ESLint & Prettier: Linting and formatting
-
Install dependencies
npm install # or yarn -
Configure environment variables
Create a.envfile based on the.env.exampletemplate (if provided). -
Run on device or simulator
npx react-native run-android npx react-native run-ios
npm start # Start Metro bundler
npm run android # Run Android app
npm run ios # Run iOS app (macOS only)
npm run lint # Lint the code
npm run format # Format with PrettierThis project is licensed under the MIT License (or replace with your actual license).
Feel free to contribute by submitting a PR or creating an issue!