lil todo vee two

logo173x173

I’m working v2 of lil todo, the to-do list app I wrote for Windows Phone 7 last year.

I wrote lil todo for two reasons:

  1. Provide myself with a good to-do app on Windows Phone. Most of the to-do list apps I tried were utter crap.
  2. Learn how to write Windows Phone apps using Silverlight.

Because it was my first attempt at Silverlight and my focus was to get an app up and running, it wasn’t designed very well. It’s not horrible, but the model code isn’t very portable and contains a lot of things specific to Silverlight.

After writing the app, I realized I really wanted a Windows, Mac, and iOS version so I could access it from my other devices. Unfortunately, the design made it hard to port, which leads me to v2…

To the cloud! (And more)

Now it’s time for v2 and I have a lot of ideas already. Here are my goals for v2:

  1. Move to the cloud. A lot of users complained that they couldn’t sync their data in v1.
  2. Support more platforms. It’s almost 2013; let’s support Windows RT, Mac, iOS, and … command line.
  3. Keep the core model code portable. I’ll write it in C++ this time to make it easier to keep it platform-agnostic.
  4. Write the absolute best-looking to-do app on Windows RT. Most Windows RT apps I’ve seen so far are generic and ugly—no taste. Let’s see if I can do better.
  5. Support live tiles on Windows Phone and WinRT. A lot of users requested this feature in v1.
  6. Add notifications. This is another missing v1 feature.

Command Line?

I’m serious about the command-line interface. I’ve always thought that the best way to ensure that you don’t write too specifically for one platform is to intentionally design your app to handle a text-based mode. If you can handle that as you are designing for a modern UI, your business logic code should be fairly platform-agnostic.

My first prototype, which is partially working already, will be written in Ruby. Ruby’s a great language for rapid prototyping, although I’ve never really used it for that. My plan is to hash out the overall design using Ruby and via a command-line interface. Everything will be done using CLI and will save to temporary storage (maybe not SkyDrive or Dropbox yet). However, the concepts should be absolutely the same as the final product, which I will write in C++ and overlay with a platform-specific UI (i.e. XAML stuff on Windows RT/Windows Phone, and Cocoa stuff on Mac/iOS).

Watch this space for updates during the holidays!

grinch-cindy-lou-who