Check out SlouchDB

For my apps Lil Todo, ForeverList/Nested Notes, and Little Phrase Book, I created a simple database system that can be synced easily across multiple devices using a cloud store like Dropbox. Well, I’m happy to announce that I’ve been working on generalizing the database/sync engine for those apps and have opened sourced it.

Check out my new Swift-based SlouchDB. It’s a decentralized, syncable journal-based database meant for single-user, multi-client scenarios like the apps mentioned above. You can use it for Mac and iOS apps! It’s available as a CocoaPod, so you can easily consume it that way as well.

My Windows Phone App Download Stats After Two Years

Two years ago, around April 2011, I wrote a Windows Phone app called lil todo. How’s it doing today?

Before we get to the numbers, some context is useful. lil todo was written for fun and a bit of necessity. I had a Windows Phone and was curious to learn how to write an app for it. I also found there weren’t any good GTD-style to-do apps in the market for the platform, so I wrote my own.

It wasn’t written to make money (it’s free!), so I didn’t do any marketing. It’s been updated a couple of times to fix bugs or add minor features, but for the most part the app you download today is the same one released two years ago. In summary, it’s a neat little app that most people have never heard of, unless they do a search in the Marketplace for it.

LilTodoAmongstTheCompetition

With that out of the way, how popular is the app? Two weeks after release, the app was downloaded 218 times. One month after release, the app was downloaded 342 times. For the first few months, the average daily download was around 5-10. After a year, the downloads eventually plateaued to around 2-3 a day. After one year in the market, the app was downloaded about 1400 times.

Let’s skip ahead to two years. Here’s what we see today:

Screen Shot 2013-05-23 at 8.03.06 AM

There are a lot of interesting things going on in this graph:

  • Today, the app has been downloaded over 5800 times.
  • The cumulative downloads slope is getting steeper. Today the app is downloaded roughly 10 times a day.
  • Each change in slope is preceded by a spike in daily downloads. I suspect these are when either a new phone is released or the platform is made available to new markets.
  • There was a huge spike in downloads in February, 2013. What the heck happened then? (A major new market was added? Bad data?)
  • Not on the graph: Total number of reviews for the US market is 19. That’s pretty low in comparison to a lot of other, more popular to-do apps.
  • Not on the graph: Total US downloads: 1500. Total India downloads: 1400. That means about half the downloads are coming from the US and Indian markets. The next biggest downloads are from Germany, Colombia, Chile, and Finland (around 300, 260, 230, and 230, respectively).

So there you have it. Even an app that was never localized to non-English locales and is barely updated is still getting downloads.

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