Project: Outside Tasks

When I was an undergrad at Trent University I used Google Tasks to organize my to dos including my assignments, quizzes, and exams. Since then, I read Getting Things Done (non-referral) by David Allen which I really liked and I started following the philosophy in organizing my to dos. I also followed the official Evernote for Mac Setup Guide and used Evernote for my to do for years.

Recently, I started looking for a more sophisticated solution for my to dos. In particular, one that is compatible with the Getting Things Done® (GTD®) system, one that has task dependencies, and one that allows me to check tasks off through a Today widget on my iPhone.

I explored multiple options including OmniFocus, Nirvana, and Asana. Sadly, each one had something missing from my requirements list. Either they don’t support task dependencies, or they don’t have a Today widget, or they had everything but they looked terrible and had a really bad UX. That is why I set out to build my own simple to do iOS app!

Before discussing what the app does, here’s a simple introduction to the GTD system. It’s very simple, at least how I use it.

Getting Things Done® (GTD®)

To start with GTD, try to think of everything you have in the back of your mind, if it is something you can act on and it’s something that you can do in less than 2 minutes, then do it right now. If it would take longer than 2 minutes, then either delegate it to someone else and it goes in a Waiting For list, or you defer it. If you defer it then it’s either something you schedule for later (just use your calendar), or you put it in a Next Actions list that can be organized by context (phone call, computer, home, office, etc…) so that whenever you have time to get some things done you go to the context that applies to you now and perform some of the actions that are under that context. You can also stash things in a Someday/Maybe list for things that you want to do someday but are not immediately relevant. Finally, you can store things in the Reference list for things that you simply want to store for later.

You can also organize actions into projects. Projects are outcomes that require multiple actions to complete. GTD recommends reviewing things periodically and updating projects with the next applicable action. I would like to avoid having to do that by planning a project ahead and enqueuing tasks by deferring them until a prerequisite task is done.

Outside Tasks

Here’s my vision for Outside Tasks for now:

  • Data should persist across sessions (duh!).
  • Tasks will be used for actions..
  • Projects will simply be tasks that have been marked as projects and/or tasks that have subtasks in them.
  • Contexts will be tags on tasks.
  • Tasks can be deferred until a certain date.
  • Dependent tasks will be implemented by allowing for tasks to be deferred until another task is complete.
  • The Today widget will show all tasks that are currently actionable.
  • Tasks can be checked off through the Today widget.

Bonus feature:

  • Tasks can be linked to Evernote notes.

Here’s the kicker: I’ve already put all my to dos in OmniFocus before realizing it doesn’t support task dependencies and my free trial expires in 7 days which means that I have 7 days to get this app to a usable state!

Next steps: I have to finish reading Start Developing iOS Apps (Swift). Right now I’m on Implement a Custom Control.