The honeymoon with my Droid is over and now it is time to get crackin’ on some sweet code. The idea struck me as I was hard at work completely forgetting to do something I said I would do once I got home. I want to make an app that reminds me of something when I reach a specific location. At home – find a good, free Windows C Compiler; at the brewstore – by a non metal spoon; in Phoenix – stop by Total Wine and find some booze not available in Vegas. I know there are similar things out there and I could just tag along and help their stuff, but this project is all about the learnin’. So here is the outline for Droid App #1 – remind@home.
Also – if anyone likes the concept and wishes they could try it out now, go get Astrid. It does a lot of what I want to do, and best of all, it already exists. So once again, this project is for my own educational purposes. I know apps like this already exist, but alas, my education does not.
remind@home – A Droid application that allows a user to set short text reminders for the next time he is in a specified location. IIt will be a Locale plugin and use Locale’s ability to trigger events in locations and notify the user of all messages tagged with that location.
I will build the system in 5 phases. Each phase corresponds to a beta version number (0.1 – 0.5) and upon stabilizing 0.5, I will release remind@home as version 1.0.
Phase 1
- Create locale plugin to act as a bridge between Locale and remind@home. The locale plugin simple adds a setting where you tell remind@home which tags fire off in this situation.
- Make an interface for adding a note to a tag.
- When locale triggers remind@home, display all reminder notes for this tag.
Phase 2
- Provide option for notes to have delay timers, so they notify a certain amount of time after Locale triggers the tag.
Phase 3
- When a note is displayed, allow options for handling the note. ‘Dismiss’ would delete permanently, ‘Store’ would keep the note in the notification bar until dismissed, ‘Snooze’ would hide the note for 15 minutes, ‘Repeat’ would put the note in queue for the next time the tag triggers.
Phase 4
- Allow one user to send a reminder to another user who has authenticated him.
Phase 5
- Create a system to request another user’s tags who has authenticated him.
- Allow tags to be marked as public and private.