The Plan to Develop a ToodleDo Desktop Application
I’ve been thinking about writing a ToodleDo Desktop Application ever since I switched to the online service as my primary means of task management. Before ToodleDo I had been using OmniFocus and before that I had been using a Sony Clie Palm Pilot (which was great, by the way). Now I use an iPhone and a Mac, and I just never got to liking OmniFocus. I am not sure why, but I really tend to think in ‘day centric’ approaches as opposed to ‘project centric’, and the ToodleDo ‘hotlist’ just seemed to work for me.
As all ToodleDo users know, having your data with you in any web browser is great, and the iPhone app is also pretty nice. The sync mechanism is perfect and fast. But working with the website day in and day out is a hassle, and once you disconnect from the Internet, you can’t do anything on your computer (the iPhone app continues to operate offline). The missing link is a ToodleDo desktop application that caches your tasks and then syncs with the server when a connection is available. The user interface of a native desktop app could also be more user friendly and faster than the web version and various tie-ins to the operating system become possible (like notifications, dock icons, and so on).
So I looked around and was surprised to find no options, or very few options. I turned up:
- A now defunct script to synchronize OmniFocus with ToodleDo – worked ok, but was slow and the two apps don’t have the same fields, so some data was ‘lost in translation’. Plus Omnifocus costs $80! (yes I bought it myself when I started using it, along with the $20 iPhone app…)
- A Windows only desktop app called TaskAngel that is in beta – seems to work ok, but has a bit of a clunky UI
- Some talk of a script to sync The Hit List with Toodledo – although I suspect the same ‘lost in translation’ will occur, as would solutions that sync to Outlook, and other desktop apps
I started a survey to see if there was any interest in a ToodleDo only desktop app and was not surprised to find a lot of folks like me. To date, there have been about 160 responses, with the breakdown between Mac and Windows users almost split equally (Windows has a slight edge). This presents a small problem: developing for both platforms can be pretty costly unless you use a cross-platform development tool.
For the past couple of months I have been investigating development options, with a high priority given to rapid development on multiple platforms. The choices I’ve found are:
- Write native apps for each platform using .Net/C# for Windows and Cocoa/Objective-C for Mac. This produces the best final results with totally native applications for each platform, but is the most costly and time consuming option. I’ve developed extensively for Windows, but would be relatively new to Cocoa. Bonus: tools are free on the Mac, and I’ve already got Visual Studio for Windows.
- Use a web-based cross-platform offline tool, such as Adobe Air or Microsoft Silverlight. This produces a desktop application that runs on both platforms. I’ve used Air applications before and the UI just never looks right to me on *either* platform. It reminds me of desktop Java applications from the early 2000s – all the UI elements just seem out of place and wrong. Bonus: still thinking of one.
- Use a cross-platform development toolkit, such as WXWidgets or QT, along with a nice language such as Ruby. This produces native desktop applications with the right widgets, but it can be time consuming to lay out the UI with a visual editor, plus you don’t get an IDE with debugger. Bonus: Ruby – great language!
- Use RealBasic (now Real Studio) – a cross platform visual basic like language with a nice visual UI editor. This is similar to #3, except laying out the UI would be faster. Granted, I have to use the RealBasic language instead of Ruby, but I’ve used both before. Bonus: quick compile to Windows and Mac and a vibrant community.
In the end, I am opting for Real Studio, even though I didn’t own the development tools and had to buy them, and they are proprietary (unlike some of the options in #3, which are open source).
Anyway, the first step is done – I’ve selected the tools, and even done some very basic prototyping. Now, I’ve just to find the time to code in between my other projects: working on the Encyclopedia of Life project, with NASA on education and outreach, and fatherhood.
Stay tuned for future developments as I begin working in earnest on V1 of the ToodleDo Desktop Application.
Hey Pete, wonderful to see You getting into gears with the toodledo desktop- if You need localization help to germany just drop a line!
keep up the spirit!
cheers, mat
Have you considered the Eclipse RCP platform? It’s a great Software developpement platform which is based on SWT. It produce multiplatform softwares which use native widget of each OS.
really pleased about this – thanks for doing this Peter
@Nicolas Lambert Interesting – I haven’t looked into Eclipse RCP but I will check it out now. Thanks for the suggestion.
Let us know when your app is ready for testing. Sounds good!
Just came across your blog. Would love to see this app.
Still working on this? Am very interested.
Sort of — there is not currently active coding going on. Instead we are trying to figure out exactly what/how it should work. The market for productivity applications is very saturated, I’m not sure it makes sense to build another full-fledged app, which makes me lean towards something very lean that focuses on the core aspect of having ToodleDo tasks offline. Best bet is to subscribe to the email list which I’ll use to let folks when if/when something is released:
http://www.mangiafico.org/mailman/listinfo/toodledodesktopapp_cappuccinoware.com
Great project, that link is really missing. Hurry up!