

Google Tasks API Released - nikosdimopoulos
http://code.google.com/apis/tasks/index.html

======
tejaswiy
Why are so many people using Google tasks ? Give alternatives like Workflowy a
chance? Evernote works much better than GTasks even if it's not designed for
it.

~~~
abraham
It is simple and minimalist. Keyboard shortcut in Gmail to create a task out
of an email. Tasks with dates show up on Google Calendar.

~~~
tejaswiy
Didn't know about the Calendar. That's pretty cool.

------
DenisM
Bummer. I've been enjoying my competition-free life for the last 18 month
since I've launched my iPhone app GeeTasks, but this was not meant to last, it
seems.

~~~
shii
Wow, you made GeeTasks? Thanks for the killer app man, better than all the
rest in the AppStore by far imo. I love the offline feature and the quick and
easy sync.

My only gripe with it is the icon/logo of the app. A little garishly and too-
brightly colored. Amazing app otherwise.

~~~
DenisM
Yes I did. The sync took _a lot_ of work, and I am glad that people appreciate
it (many do). :) The icon needs to change, I agree. I am planning to run a
99-design contest and then have users (such as you) vote on the best option.

The poll will be announced within the app itself, so just keep installing the
updates and you will not miss it.

~~~
flashgordon
Interesting you mentioned that the sync took a lot of work. Would love to know
how you did it and some pointers. A writeup or a blog post perhaps?

~~~
DenisM
The general problem of sync is just too large for a comment, a blog post, or
even a research paper. One who wants to pursue this route should buckle up and
start here: <http://www.ysaito.com/survey.pdf>

If you tell me your specific problem I might be able to help. Shoot me an
email via support page on geetasks.com

If your problem is specific to Google Tasks API I will not help you. Sorry,
business is business. :)

~~~
6ren
Great response, and I think you're right.

But I wonder... lets say you show how to solve some problems with Google
Tasks, you get a higher page rank, and people with a problem with Google Tasks
arrive at your page... where you incidentally note problems that your solution
solves better than Google Tasks (which will be true, since they are mass
market and general, and you can be happy with a smaller, more specific niche).

When your competitor has made larger market share than you, this can work. It
can be help that is applicable to every product, even advising where your
competitor is a better solution.

But I guess this mightn't work for a developer API, if they want the platform
with the largest install base.

 _disclaimer: I'm not seriously suggesting this - just thinking aloud._

~~~
DenisM
That kind of post can only attract a small number of developers, and
developers are not my target users. The only thing I can get from it is SEO
juice, but I have better ways of getting that.

------
evangineer
The APIs are restful, client libraries are provided for .NET, PHP, Python,
Ruby and Java.

<https://code.google.com/apis/tasks/libraries.html>

------
doublerebel
Took long enough, there are already so many competing task managers with more
features on the market. Will we see collaborative task lists? I'd like to see
them in the same way that Google Calendars are sharable, that would be the
killer feature.

Honestly the GTasks app for Android (which was written before the API) is the
only reason I use GTasks.

~~~
steve_b
Taskforce does collaborative tasks really well. It's already integrated
tightly into gmail. Soon I think they'll have gcal integration and phone apps.

------
rocco
Finally, after 2 year: <http://code.google.com/p/gdata-
issues/issues/detail?id=987>

------
gregschlom
Anyone knows what's the name of the algorithm / strategy that they use to
allocate tasks position numbers?

I've created a new list and added 4 tasks a, b, c and d, and later added a2
after a.

Here's what they are doing:

    
    
    		Position:
    	a	01111111111111111111111111111111	
    	b	10111111111111111111111111111111	
    	c	11011111111111111111111111111111	
    	d	11100111111111111111111111111111
    	a2	10011111111111111111111111111111	
    

So it seems a clever way of allocating the position numbers without having to
change them all everytime a task is moved, but I'd love to read more about it.

~~~
6ren
That is clever, it's like a binary version of the old BASIC convention of
numbering lines 10, 20, 30 etc, to leave space in case you want to add lines
in between.

But why number them at all - why not just use the order in the list as the
ordering? I haven't studied their API, so there may be a good reason.

~~~
gregschlom
Because the 'order in the list' usually is the creation order of the items. If
you want to change the tasks order, you need to save the position numbers in
the database.

This is not specific to Google tasks. If you tried to display a list of items
that your users could reorder, you'd run into the same problem.

~~~
6ren
Thanks. You could also recreate the list with the new ordering; or record the
changes in list order and replay them on server (e.g. insert the 5th one after
the 2nd one), perhaps even reducing it to the simplest change if the user
played around with the order a lot.

But I guess for RDB (and other DB?), the "physical" order isn't meant to be
used as a "logical" order, and it might not even be reliable - so you need
some other ordering mechanism, like position numbers. Also, not good if
anything in the system depends on that physical ordering.

\not a DB programmer

------
6ren
What do you think of JSON for documenting data structures in this project?
<http://code.google.com/apis/tasks/v1/using.html> (scroll down for the
"Protocol" sections; there are about 10)

They're using JSON to describe sets of possible JSON instances, using
conventions of "..." to represent other items in a list; and italics to
represent variables (though not always: example text such as "My Task" is used
for some variables).

Perhaps a shell-style convention, like $taskListID and ${My Task} would be
clearer? It's going outside the JSON syntax, but so is "..." - and obviously
extra-linguistic constructs help alert the reader that it _isn't_ part of the
instance syntax (like italics).

I've looked at some "JSON schema" proposals, but they take the same meta-
approach as XML Schema, which somehow seems even worse applied to JSON.

Regarding the actual format, they the _kind_ attribute (
_kind="tasks#taskList"_ ) like a class. Since it defines the type of the
message, maybe it would be clearer if it were distinguished in some way (like
XML tags: <tasks#taskList> \- invalid, I know).

disclaimer: I don't mean to rag on these guys - their focus is Google Tasks,
not a schema for JSON. It's just that it's very well documented, and so it's a
clear example of using JSON as a schema. This issue will become more important
over time.

------
tybris
This is the first thing from Google I/O that has me truly excited.

------
dorian-graph
It being in my GMail account is handy. Like, if I sync my x@gmail.com
depending on the software I'm using all my contacts, calendars, tasks, etc are
synced.

I do feel like a whore of the 'tasks' world going from one solution to
another. Recently, it was teuxdeux > todoist > thinkery (My current 'lover').
I wish someone could combine them all -- that's actually a 'sometime in the
future' personal project of mine.

------
eddieplan9
This is so overdue. Good to finally have it.

------
dabeeeenster
_PLEASE_ someone make a Notational Velocity equivalent for GTasks. I would pay
for that.

~~~
25thhour
+1 I use NV like a boss every day. Syncing with Dropbox/Simplenote is by far
the best note taking workflow I've ever used. Zero barrier to fast fluid
input.

Which is probably why I love TaskPaper for GTD. Plain text but with smart
data-detection.

------
arc_of_descent
Been looking for something like this. Any way I can store metadata about the
tasks. Or rather more data. Say I would like a "budget" field for a task.

------
tectonic
Mavenlink.com just rolled out task integration using the Google Tasks API and
it was pretty straight forward to build.

~~~
cfarmstrong
Here is an example of it in action:
[http://www.mavenlink.com/community/tutorials/134-google-
task...](http://www.mavenlink.com/community/tutorials/134-google-tasks-api-
integration)

------
orofino
Anyone working on a command line client? I suppose I should get to it.

~~~
DenisM
What's your scenario?

