Created on 26th August 2024
•
Managing daily tasks can be overwhelming, leading to missed deadlines, unorganized schedules, and a lack of clarity on what has been accomplished. Traditional task management methods, such as sticky notes or generic apps, often lack the ability to easily track progress, leaving users feeling disorganized and inefficient.
iTask simplifies task management by providing an intuitive interface that allows users to:
By focusing on simplicity and efficiency, iTask helps users manage their tasks more effectively, reducing stress and improving productivity.
Building iTask came with its fair share of challenges, particularly around state management and ensuring a seamless user experience. Here are the two main hurdles I faced:
One of the toughest challenges was designing the edit button functionality. The issue was how to bring the existing task array back into the input fields without losing any data. Initially, this seemed complicated because any changes needed to be reflected in real-time without confusing the user.
Solution:
I solved this by taking the array back into the data entry field and deleting the previous entry, creating the illusion of an update. This approach allowed the user to see the data in the input fields as if it were being edited directly, making the edit process intuitive and smooth.
Another problem arose when empty arrays were being stored in the application's storage whenever the "Add Task" button was clicked, even without any input. This cluttered the storage with unnecessary empty entries.
Solution:
To address this, I implemented a minimum character requirement for adding a task. The "Add" button only becomes active and highlighted once the minimum character requirement is met. If the input doesn’t meet this threshold, the button remains pale, preventing users from adding empty tasks. This not only solved the issue of empty arrays but also improved the user interface by making the app more interactive and user-friendly.
These challenges were significant learning experiences, teaching me the importance of thoughtful state management and user-centric design in application development.
Technologies used