PostHeader

Before I start talking about the current version of Notify, I will first take a look at the “first” version of Notify, the version that only a few people got to see. The “first” Notify was actually my first venture into coding a serious Mac OS X application. I’d done some stupid little things beforehand, like writing a lame little number game, but nothing that actually prepared me for how hard it is to write a properly designed, well coded application. For those of you who don’t code, it is hard. You can write something that works quite well, but making it maintainable is another thing entirely. Jeff Atwood has an excellent article on technical debt, and what it means to software projects. Needless to say, the first Notify wasn’t exactly well coded, nor was it exactly well designed.

Menubar-Old-Preview

This was the menubar design I had originally come up with. It sort of improved upon the official Google Notifier, but not by much. It isn’t very unique, nor does it allow for much more than clicking on a message to open it.. so..

MainWindow-Old-Preview

I decided to make a separate app window that would work in conjunction with the menubar dropdown. This was an “ok” solution, but it wasn’t exactly optimal. It would confuse users. Where do they go to get to the preferences? Where do they go to see what account each message belongs to? Etc, etc.. The questions and confusion keep piling up. As well, the account icons I used in the main window were a big waste of space – they wasted a vertical 32px column of space along the left side of the message… not exactly optimal. I needed a better way to manage the different accounts.

Now, moving onto the Notify you all know…

At this point, development was pretty much put on hold for a few months. During that time, I decided that Notify would need to be completely rewritten, due to the technical debt that was mentioned earlier. Since it was being rewritten, why not take that time to also redesign the user interface? It seemed like a good idea, so I went forward with it.

While redesigning the UI, I took into consideration all of the problems that were mentioned earlier. A window based app didn’t seem like the right solution, but a simple menu app was far too limiting for my purposes, and they aren’t exactly pretty. Your application won’t have much of an identity if it looks like the other 10 or so menu apps people always have running. So a menu based app was out. I then started sketching out a few ideas that had popped into my head. The first one was a horrific, HUD style black Notify window. That one was out. So once again I was thinking back to a traditional window, but with a twist. Not quite sure where the tiny little “speech bubble” style triangle idea came from, but once a sketch had been made, it seemed like the perfect idea. Not a menubar app, but not a window based app – something in between. Something that was out of your way when you didn’t need it, but was easy to use when you did need it.

Sketch1

What you see above was the first sketch that I made for the “menubar window” app style that Notify now has. Although I liked this, there was still the issue of organizing different accounts. As it stood then, that sketch still contained all of the messages in one main table. What was a good way to organize them? A filter bar? I didn’t really like the idea of a filter bar, because filter bars are mainly used for searches. So, what else could be done? What about tabs? Tabs. I liked that idea, so some photoshop mockups where created. The first set of tabs the mockup had were sort of like the tabs you see in Firefox or Safari – they were on the bottom, closest to the window content. This was most familiar to people,  but it really wasted quite a bit of space – if you only had one or two accounts configured, all sort of space would be wasted right next to the tabs. Not good.

The next step was thinking of where else to move the tabs. Why not tabs on top? They worked extremely well in the Safari 4 beta. They used up all the dead space up in the very top of the window chrome, and they just looked nice. So I figured, why not implement tabs on top in Notify? Once again, a Photoshop mockup was created, and this time I was extremely pleased with the results. The mockup was passed around to a few friends, and I got quite a bit of positive feedback, as well as some suggested changes. I implemented the changes and the response was positive. Yay! We finally had an acceptable UI design. Time to move onto coding.

XCode

It was now time to move onto coding the new version of Notify. I once again, stupidly went on and started without putting much thought into the data structure. It was certainly a million times better than the last Notify, but it still wasn’t as awesome as it could be (This is why Notify 1.1 is getting a complete rewrite, to make it much easier to build onto in the future). Coding took place over about 8 days. Notify is by no means a large piece of programming – it only works out to about 2500 lines or so. The beta stage helped us iron out about 10 nasty bugs I somehow never found, and we went to public release.

The response to Notify has been, well, how do I put this. Insane. In the 10 days or so since it’s launched, it’s been downloaded over thirty thousand times. I don’t think I’ve ever even seen that many people at one time. Here’s some numbers.

  • Over 100 requests for Google Apps integration. (It’s coming!)
  • Over 200 other various feature requests
  • Notify has been featured on TUAW, DownloadSquad (although their commenters were rather grumpy!), and MinimalMac
  • Notify was on Apple.com’s downloads page for just about a week, and were the 13th most downloaded piece of software for about 4 days. Mindblowing.
  • We’ve been features on about 40 other various blogs
  • Our twitter account gained almost 300 followers in a matter of a week. Woo!
  • We’ve had over eighty thousand unique visitors to our website in the past 10 days.

To say the least, I am humbled. This kind of response was never expected, and I think everyone who helped spread the word. I was expecting maybe 1000-2000 downloads in a year. Not the 3000 we had in the first 24 hours.

Anyways, thanks for reading my abnormally long rant. I’ll try not do this stuff too often.