What I really want is recurring tasks (couldn't this be done locally?), but in lieu (or in addition), what about autocomplete for tasks you create frequently? It could just remember the tasks you've created previously.
So the problem is that there is no recurring tasks. As a workaround you are completing&deleting tasks an then later on create them anew.
First, I'm hesitant to add recurring tasks in GeeTasks for a couple of reasons:
- Google doesn't support recurring tasks so if I were to somehow mark tasks as "recurring" there is nothing stopping you from deleting those tasks using web site, and there is nothing I can do about that. The end result would be unreliable recurrence which is worse than none at all. Alternatively I could create all future versions of this task for a year ahead, but that might be a lot of tasks if you have something that need to be done e.g. daily or weekly. You may have trouble wandering through what essentially multiple copies of the same task.
- At some point Google might add recurring tasks, so then whatever I have done will likely be in conflict. This is not a reason to avoid it, but it's a reason for me to put this item after all other items on my plate.
Now that I think of it I could probably create, say, 30 days worth of recurring tasks into the future each time the app starts, so that there is never too many copies but yet there is some resilience against you accidentally deleting one of the tasks…
Another approach, which is a lot easier for me to implement, is to make it so that completed tasks, when purged. are not deleted but instead moved to a special list of your choice. That way you can go through that list and re-create the tasks in it at the start of each week.
Closer to your request would be to allow "template" tasks - make it so that a task from a designated list could serve as a template when crating new tasks.
Or simpler yet, when looking at task details allow you to make a copy of that task. Thus you will be able to have a collection of tasks from which you can create new copies as needed. This option is trivially easy to implement.
What do you think of all these options?
Is there a way for Geetasks to create a recurring task that once completed spawns the next task. That way there is only one task event in the series showing at any time. Once you deal with it, it simply replaces itself, notes included, with the new date.
I thought about that, however what happens if user deletes or clears that task using web site?
If you're careful you won't get into this situation, but most people aren't careful most of the time and it would be bad design to assume otherwise.
Kurt's idea below to spawn new tasks as time goes by (e.g. two weeks before that task is due to be completed) is a bit more tolerable - it is less likely that one would delete a task that's still weeks out.
If the user deletes the task outside of geetasks I can't see the problem. Each time geetasks starts it would check if there is an existing task in the sequence and if not create a task that is a forward task in the sequence (ie one that geetasks hasn't previously created which could have been deleted). If the next task is in the past you'd have to make a decision whether to create a single task in the past, a sequence up to the present or a single future task.
For that to work GeeTasks would have to somehow store the information "hey, I need to make sure there is a series of tasks called Check Mail Box each Monday starting April of 2010" (the proto-task).
There are two options where to store this information: inside the Google Account (e.g. as another "special" tasks) or simply inside the GeeTasks app on the iPhone. Nice thing about the first option is that you could lose your iPhone or delete GeeTasks and you don't lose any of the data, which is why I think this is a better approach than storing it within the app only on the iPhone. However once the data is stored as a separate task it would be possible for the user to modify or delete such task. I know you wouldn't do this, but some people will and then they will send angry support requests "where's my recurring task? I can't TRUST this app anymore!!!". I can't afford this kind of stuff given the price the app is selling at - it has to just work, or else I will spend my entire life answering support requests. Worse yet, many will not send support requests but will leave bad reviews for the app. It's very hard to make people leave positive reviews in the store to counter the negative ones, so I have to be extra cautious.
Now that I spelled all of this out, it seems that I need to find a way to store the proto-task some place outside the app, but in such a way that the user couldn't get to it… hm… Maybe I could simply store it on my own server? Now there's an idea…
Thanks for nudging me, James, Krut & friends - I might come up with something based on this.
Well, what I was imagining was when you start typing a task, it would give auto-complete-like suggestions based on tasks you have previously created. So, you type, "Take " and it shows "Take out the trash" and you can just select that instead of finishing typing. I'm not sure how easily that would be implemented from a UI perspective on the iPhone, especially with the new date-picker, which I love. This sort of thing would be a partial solution for regularly recurring tasks, but would also be helpful for recurring but not regular tasks.
The template idea would probably help with this, though it seems potentially like overkill. But it would allow you to limit the number of "suggestions," which could be a problem with my idea. I'm starting to like it, especially if you could pick it from the main screen in the app, instead of typing in the New Task box.
As for recurring tasks: I see what you're saying about not being able to control deletions from outside GeeTasks. But what if the creation of a recurring task wasn't triggered by the deletion of the last one? What if it was just triggered by a certain date proximity? Maybe that would have to be an option ("Create new task x days before its due date").
Thanks very much for your feedback! Great app!
Kurt
Ok, I think I understand what you're after. I'll keep this discussion in mind.
Right now it seems that the most immediate solution is to allow creating copies of existing tasks, that way you can create your own "template" list and make copies from tasks in it as need arises.
Once this is implemented we should get back and see if it was satisfactory or if more work is needed.
Thanks again for the feedback. I look forward to seeing what you come up with.