Clone repo
git clone https://github.com/tanu31195/react-native-todos-app.git
After checking out run,
npm install
Then start expo,
npx expo start --clear
I successfully implemented a feature-rich to-do list application tailored to the specified requirements using React Native with TypeScript. Key functionalities include:
- Accordion UI: Tasks are neatly categorized into three statuses: To Do, In Progress, and Done, providing clear visibility and organization.
- Draggable Task List: Enhancing user interaction, tasks can be reordered based on priority across different statuses, with the updated order persisting across sessions.
- Swipeable Task Rows: Tasks can be easily deleted or have their status updated through intuitive swipe actions, complemented by smooth animations for a polished UX.
- Task Details Screen: Offers functionality to update and delete tasks, ensuring all details are easily accessible and modifiable.
- Haptic Feedback: Integrated haptic feedback when changing task statuses or during drag-and-drop actions to enrich the tactile user experience.
- Redux Toolkit and Redux Persist were utilized to manage application state and maintain state between sessions, ensuring a seamless user experience.
- I explored the integration of the react-native-dnd-board for drag-and-drop capabilities. However, due to the library's outdated status, further time is required to fully implement and optimize this feature.
- NativeWind was applied for styling basic components. My familiarity with NativeWind is growing, and I plan to extend its use to more complex components as I advance my expertise.
- The application architecture includes both a modal and a full-screen component for task creation, offering flexibility in user interaction.
- Code Refinement: There is potential to simplify and refactor the StatusTaskList component for enhanced maintainability and performance.
- UI Components: Developing a common component library for UI elements such as buttons could streamline development and ensure consistency across the app.
- Theming and Accessibility: Implementing theming options and enhancing accessibility features will make the app more versatile and user-friendly.
- Code Optimization: Some duplicated code has been identified that can be consolidated to reduce complexity and improve efficiency.
- The application has been primarily tested on iOS, ensuring reliability and responsiveness on this platform.