I was procrastinating on an essay. My brother recommended me to make a schedule, as I'd seen him do on paper. I listened and began making paper schedules to plan my day. It really let me see what was possible to get done in a day, and kept my free time accountable. However, I didn't even know how long I took for a bathroom break. I found myself constantly rewriting the start times of each item on the schedule. This led me to the idea I've created into an app today.
What it does
It is an app that lets you create schedules for your whole day in seconds, from a single screen. Each task can be edited, and rearranged through drag-and-drop, instantly, with the rest of the schedule automatically adapting. Nevertheless, you can still lock any task in place, keeping its start time constant.
How I built it
I wrote the app in Java using Android Studio, including the standard Android and Java libraries.
Challenges I ran into
I had never made an Android app before - in fact, I downloaded Android Studio only the night before. I ran into MANY bugs related to build settings and Android Studio. Besides that, I spent many hours trying to figure out the smallest details. I spent hours trying to polish a complex color animation, when ultimately my app looked better with a simpler color animation. Figuring out the algorithm to deal with locked tasks was also very challenging.
Accomplishments that I'm proud of
- Learning Android development in Android Studio despite my doubts.
- Having a product with an inventive and pleasant UI.
- Creating an app that I truly believe will improve users' lives.
What I learned
- You really need to build out a feature list and action plan beforehand, even if its just a short hackathon app with a few features, in order make sure you allocate your time wisely.
- Sometimes just hacking out a prototype instead of trying to get it perfect the first time is important.
What's next for Flux Schedule
Develop it into a full-featured app and release. This means with dealing with all edge-cases of user input, and polishing UX and UI. Additionally, there are many possible features to add. The certainties include schedule saving across multiple days and notifications. Also, I should make drag-and-dropping of tasks show the effect in real-time (rather than only after you drop), which is an algorithmically challenging task. Other possible features include recurring tasks and a widget.