The Road to 2.0

Matt Patenaude

Today, we're announcing the official release of Bowtie 1.4, exclusively on the Bowtie website. This release fixes Spotify support and adds a small bit of polish missing from the 1.4 beta. Go on, head on over and grab yourself a copy. You can also check out the release notes if you're interested.

Moving On

Bowtie is my baby. It's been in development in some form or another for the past three-and-a-bit years, and it was the first Cocoa project I started from scratch with the intention of being a real, honest-to-goodness product. Over the years, I've watched it grow and mature into a wonderful application with a user base that looks as though it may exceed 100,000 active users, and an active theming community that has collectively produced literally hundreds of themes. Of those themes, over 140 are available on Bowcase and Bowcase for Bowtie, Bowtie's built-in theme browser, and since its launch almost exactly one year ago, those themes have been downloaded over 400,000 times. The numbers put me in awe every time.

But now the time has come to move on. While it's still effectively the love of my life so far, Bowtie has taken on a different priority, and it's fitting that its development goals adjust to fit.

Bowtie 2.0: A Roadmap

Changes in my work environment, school environment, and the burdens associated with the two have made it such that I can no longer dedicate long stretches of active development time to Bowtie. As such, I've got more or less just one big push left in me, and then the reins get turned over to the rest of the {13bold} staff, who prefers to remain anonymous. This isn't a problem, though, predominately for one big reason: Bowtie is nearly "done".

Now granted, nothing is ever truly "done" in the software world, but Bowtie has reached a state where it's more or less feature-complete, if only because adding more features would make the app too complex. For that reason, Bowtie 2.0 will be less about adding new features, and more about taking what's already there, and polishing it to a sparkly sheen.

Effective immediately (with the release of 1.4 today), in order to keep Bowtie a sharply-focused product, we're dropping support for the iPhone and Windows apps. Following along this new, sharper heading, Bowtie 2.0's development efforts will be divided into three primary targets.

Performance

A lot of improvement can be made in Bowtie's performance space, particularly when it comes to memory usage. In Bowtie 2.0, we'll be inverting the process model, merging the iTunes/music player control code back onto the main Bowtie process, but then splitting the Bowlet off onto its own process. In this way, we can make the theme renderer considerably more generic, and periodically kill off the Bowlet to reclaim lots of memory that is ultimately lost to WebKit. This, along with various time-keeping improvements to reduce music player chatter will help Bowtie 2.0 be a better performer than its predecessor.

Music Player Support

For a long while, Bowtie was a great companion to iTunes. Nowadays, however, people listen to their music with tons of different apps and services. Bowtie can't continue just to be an iTunes companion, it needs to be a music companion. To that end, Bowtie 2.0 will be considerably easier to extend to work with other music players. The current Objective-C/Cocoa source model will be switched out with a much simpler AppleScript-based model, with support for performance-enhancing heuristics, so that anyone can easily provide their own source plug-ins.

Distribution

Just because I'm no longer able to dedicate large quantities of time to working on Bowtie doesn't mean that there aren't people who are! To that end, we've decided to clean up and restructure the code, and then ultimately open source Bowtie 2.0 on our GitHub page. In this way, the already-active Bowtie community can participate in its evolution, and although we are no longer maintaining Bowtie for the Mac App Store (starting today with 1.4), if someone else would like to take on the job, you can get in touch with us when Bowtie 2.0 comes out and we'll give you everything you need to know!

When Will It Be Ready?

There's still a lot of work to be done in order to make Bowtie 2.0 a highly-polished product. Our current release target for Bowtie 2.0 is early summer, though it might slip a bit. Keep watching @bowtieapp for updates!

And with that, enjoy Bowtie 1.4, and get pumped for Bowtie 2.0!