ToDoListReactNativeApp is a mobile application built with React Native and Expo. It allows users to manage their to-do lists with functionalities such as adding, editing, deleting tasks, marking tasks as completed, and filtering tasks by status. The app supports both dark and light modes, providing a simple and intuitive user interface with basic animations.
- Add Tasks: Easily add new tasks to your to-do list.
- Edit Tasks: Modify the text of existing tasks.
- Delete Tasks: Remove tasks that are no longer needed.
- Mark Tasks as Completed: Toggle tasks between completed and not completed states.
- Filter Tasks: View tasks based on their completion status (all, done, not done).
- Dark/Light Mode: Switch between dark and light themes for better visibility and aesthetics.
- Animations: Smooth animations for task addition, deletion, and state changes.
- React Native: For building the cross-platform mobile application.
- Expo: For a streamlined development process and easier build management.
- TypeScript: For static type checking and improved code quality.
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/itsarraj/todo-reactnative.git cd todo-reactnative
-
Install dependencies:
npm install
-
Start the application:
- For Android:
npm run android
- For iOS:
npm run ios
- For Web:
npm run web
- For Android:
To run the application on different platforms, use the following commands:
-
Start the application:
npm start
-
Run on Android:
npm run android
-
Run on iOS:
npm run ios
-
Run on Web:
npm run web
-
Run tests:
npm test
.
├── App.tsx
├── assets
│ ├── adaptive-icon.png
│ ├── favicon.png
│ ├── icon.png
│ └── splash.png
├── babel.config.js
├── Documentation.md
├── eas.json
├── package.json
├── package-lock.json
├── src
│ ├── AppMain.tsx
│ └── components
│ ├── Filters.tsx
│ ├── TaskItem.tsx
│ ├── TaskList.tsx
│ └── __tests__
│ ├── Filters.test.tsx
│ ├── TaskItem.test.tsx
│ ├── TaskList.test.tsx
│ └── AppMain.test.tsx
└── tsconfig.json
To run this project, ensure you have the following installed:
- Node.js (>=14.x)
- npm (>=6.x)
- Expo CLI (>=5.x)