GoDo is a different kind of todo list for Android. It's designed for scalable simplicity and context-dependency. Scalable simplicity means that a task can be as simple (down to just a task name with nothing else) or as complicated (with multiple due dates, notification options, contexts, repetition rules) as you want to make it. Context dependency means that GoDo doesn't ever show you a task if it can know that you can't do it right now.
�I wrote GoDo because I couldn't find a todo list program that wasn't either way too complicated, or way too simple. GoDo lets you get as crazy complicated as you like, but doesn't require you to be any more complicated than you want to. At its simplest, just click the plus button, type a description, and you're done. On the main view, click the checkbox to mark a task as completed, or anywhere else on the line to edit it. It's as easy as that.
For more complicated uses, there are a few different things you can do. The heart of GoDo is that all tasks are always shown unless there's a reason it knows of it hide them from you. So most of the extras are ways to tell it about what you can't do yet, so that it only shows you the things you can do now.
With that in mind, there are three optional dates on every task. The "Start Date" is the date before which you can't start on the task. GoDo hides the task completely before the Start Date. You can't do your income taxes until January 1, so don't show them to me. You can't pay a bill until the first of the month. Etc. The "Due Date" is like a due date in most todo list programs. It's the date that you need to have the task done by. Taxes are due April 15th. Often, in order to finish a task on time, you'd like to actually start it sometime before it's really due. That's what the "Plan Date" is for. That's the date you've decided, for your own purposes, you actually intend to do the thing. A task that's visible but has a plan date in the future will be shown in your main list in gray, to tell you that you could be working on it, but you've already scheduled it for the future, so you don't need to be thinking about it now. Any task can have any combination of Start, Plan, and/or Due dates, and many tasks won't have any. Anything with a date set can also have a time on that day (if they don't, then they act like midnight at the beginning of that day for Start and Plan, and midnight at the end of the day for Due, so that they're not overdue all day of the due date).
Another way to hide tasks that aren't relevant now is with Contexts. A context is something that's required to be true for you to be able to do the task. A task can have as many contexts as you want (or none at all), and all of them must be "active" for the task to be shown. A task with no contexts is always shown (it doesn't have any inactive contexts, so all its contexts are active, so it's available). Contexts I use include "Work" and "Home", as physical locations, set by Tasker. I'd use a context of Home for something that can only be done when I'm at home (like cleaning the bathroom), not something for the home that can be done anywhere (like planning, or calling someone, or errands). Other contexts I use: "Workday" and "Non-workday" (set by Tasker for weekdays and weekends, but overridable; today is a non-workday). It's not enough to be at home to be able to rake leaves; I need to be home all day before I'm going to try. Also times of day, "Morning", "Lunchtime", "Afternoon", "Evening" (again, all set automatically through Tasker). So if I need to take something to work, it goes in with all of Morning, Home, and Workday contexts.
You can set which contexts are active from the Contexts button on the main screen (the one that looks like a price tag), and add and remove contexts from a task with the Contexts button on the Task screen.
You can also set what level of notification you want for a task, both when it's due, and when it becomes active (active being when start and planned date, if any, are both past, and when all contexts are active). Options are Silent (just put up a notification in your notifications center), Vibrate (same, but vibrate the phone), Noisy (same, but also beep), and Spoken (actually speak the name of the task, as well as do the notification).
In the Task screen, you can also set up repetition rules for a task. A task can be set to Never repeat (the default; when it's done it's done), Repeat on completion (when you mark the task complete, a new one is created), or repeat Manually (it becomes a template task; more on that below). A task can have various rules for how the Start, Plan, and Due dates are set based on the old task's Start, Plan, and Due dates, as well as the date when the new task is created (the completion date of the old one). Add a new rule with the plus icon in the top right corner of the Repetitions tab and try it out. All the rules are executed in order, so you can pretty much make it as complicated or simple as you like.
If you set a task as repeating manually, then it won't automatically repeat, but it will be available to recreate from the main screen (the New from Template button, second button on the main screen, that looks like a list). I use that for things like the aforementioned "Take stuff to work" (so I don't need to recreate it will all those contexts each time I need to remind myself to take something with me to work). Template tasks can also have repetition rules, so you could make one that's due 5 days after it's created, for instance.
Now that we've covered task repetitions, the "Task notes" and "Instance notes" on the Task screen will make more sense. When a task repeats, all repetitions of the task have the same "Task notes", but each will have its own Instance notes. So the "Take stuff to work" task doesn't have any task notes, but each time I create it, I give it instance notes for what needs to be taken this time. For something like a "Change Oil in my car", you could have a task note for how often ("Every 6k miles", or whatever) and instance notes for when ("Last changed at odometer 37,452"). That sort of thing. The History tab for a task shows all the repetitions of the task, with the instance notes for each, as well as the various dates, so you can trace when it's been done in the past.
Finally, there are task dependencies. Often, a task isn't just a single thing you need to do; instead, it's a whole bunch of interrelated things. "Do taxes" looks fine, until you actually start, and then you realize that it's actually "Get W2", "Get interest statement from back", "Get 1040 form", "Fill out 1040 form", "Mail taxes", and a dozen more steps. I found that having a big task on my todo list was demoralizing; I could work and work on it, but I could never check it off, so it's just sitting there taunting me. Or I could put all the different steps on the list, but then I have a dozen things I'm supposed to be doing, and almost none of them can be done now.
So task dependencies: for any task on the main list, you can long-press it, and from the menu, choose "Create prerequisite" or "Create next step". (Those are opposites: every dependency is between one task as prerequisite and one as "next step"). A task isn't shown if it has any prerequisites that aren't completed yet. Once a task is done, then its prerequisites are available (as long as they aren't blocked for another reason, like another prerequisite, or a context, or date). You can create new tasks directly from the "Create prerequisite" or "Create next step" options, or you can create both tasks, and then link them from the Prerequisites or Next Steps tabs from either of the tasks.
I think that's it. If it all works, then you can add a task really, really easily, but you can also (with a little more work, but hopefully not too much) limit your view to only the things that you can actually do now.
Oh, one final final thing: GoDo has a widget that you can add to one of your homescreens, if you want. You'll probably want to resize it to be able to see much at once.