The TodoList application is a React Native-based mobile application that allows users to efficiently manage their tasks. It provides features such as adding, editing, deleting, and marking tasks as completed. The UI is minimalistic, focusing on functionality and logic, ensuring a seamless user experience.
- Task Management:
- Add new tasks.
- Edit existing tasks.
- Delete tasks.
- Mark tasks as completed.
- Data Persistence:
- Tasks are stored locally using AsyncStorage to ensure data is preserved between sessions.
- Categorization:
- Fetch and display priority tasks.
- View all tasks or specific categories.
- @react-native-async-storage/async-storage:
- Used for persistent local storage of tasks.
- react-native-wind:
- Utility-first CSS styling for React Native components.
- react-native-ui-datepicker:
- Provides an easy-to-use date picker for setting task deadlines.
- react-native-heroicons:
- Provides icons for better visual representation.
- @react-navigation/stack & @react-navigation/native:
- Implements stack-based navigation between screens.
- react-native-screens:
- Optimizes performance by using native screens.
- react-native-safe-area-context:
- Ensures the app layout respects device safe areas.
- react-native-rename:
- Helps in renaming the app during development.
- Onboarding:
- Introduces users to the app’s features and functionality.
- Home:
- Displays an overview of tasks, categorized into priority, completed, and pending tasks.
- Create Task:
- Provides a form to add a new task, including fields for title, description, deadline, and priority.
- View Tasks:
- Displays a detailed list of tasks using a FlatList component.
- Edit Task:
- Allows users to modify task details.
- Open Sans: Used for all textual content, ensuring readability and consistency.
- addTask: Adds a new task to AsyncStorage.
- editTask: Updates an existing task in AsyncStorage.
- deleteTask: Removes a task from AsyncStorage.
- fetchTask: Retrieves a specific task based on its ID.
- fetchAllTasks: Fetches all tasks stored in AsyncStorage.
- fetchPriorityTasks: Fetches tasks marked with high priority.
- toggleStatusTask: Toggles the completion status of a task.
- Task Operations:
- Users can perform CRUD (Create, Read, Update, Delete) operations on tasks.
- Components Used:
- FlatList: Displays lists of tasks efficiently.
- TextInput: Provides input fields for adding and editing tasks.
- TouchableOpacity: Handles button-like interactions.
- State Management:
- useState: Manages component-level states like task data.
- useContext: Shares state across different components efficiently.
- Navigation between screens is managed using React Navigation with a stack-based approach for a clean transition.
- Clone the repository.
- Run
npm installto install all dependencies. - Start the Metro bundler using
npm start. - Run the application:
- For Android:
npm run android - For iOS:
npm run ios
- For Android:
- Cloud Sync: Integrate Firebase or another backend service for cloud-based task storage.
- User Authentication: Add user accounts to allow personalized task lists.
- Notifications: Implement reminders for upcoming deadlines.
- Advanced Filtering: Enable filtering by tags, priorities, or completion status.
The TodoList application offers a robust and user-friendly solution for task management. With its minimalistic design and powerful functionality, it is a handy tool for users seeking to organize their tasks efficiently.