To bundle or not to bundle. My everlovin’ question. Amarok 2 RC1 will be released soon and we here on the mac team have been working at near break neck speed to bring our users the best possible all around experience. This starts from the moment the installer is downloaded, to the second the play button is press, to the instant the menus are navigated. We tried to get a lot of things right. We’ve largely failed, but as I’ve said before that’s KDE’s fault :-) There’s a lot to be said that this works at all however, so kudos to all involved.
While KDE entered
hard freeze on Monday; no doubt in mental preparation for the drudgery of bug fixing to come, Amarok’s mac team instead kicked it into high gear. As noted previously a number of long standing, major bugs have been taken care of. That gave me the motivation to finish something I’d been dragging out for a while: post-beta packages with a working collection. The aforementioned mac-team (I find this to be an absolutely hilarious in-joke btw) helped me to figure out what the problem was and so I went to work. And while I was at work, I went to packaging. It’s not like the bacteria were going anywhere…
When last we spoke I started out with an almost usable bundle at 217 MB. Currently I have a package that installs 230 MB of software (debugging turned off everywhere_, except for Amarok). It would seem that this is a losing battle, and it is, but then: serendipity! (No, not serenity. Yes, I miss it too.)
As the screenshots above show, the size of the packages, despite bundling Qt + kdelibs + kdebase, is surprisingly small. This happens for two reasons. First, PackageMaker.app compresses stuff. It compresses it but good. Second, I cheated. I went in and hacked out everything in Qt, kdelibs and kdebase-runtime that seemed unnecessary for Amarok. I also saved a little more space when I threw the whole thing into a disk image. In a slightly related note: to the person who decided it would be a good idea to split up kdebase into bitesized, logical little morsels: THANK YOU. I owe you something. Make it reasonable and it might actually show up at your door.
All this got me well within my
dream weight of 99.9 MB. I actually broke the 90 MB barrier (300 MB uncompressed) on Thursday and whittled it down, ever so slightly to 68 MB. Amarok wasn’t compiled with debugging enabled though :-). So 71 MB. Not bad, not bad at all. iTunes is 57.8 MB though. What if I hadn’t bundled Qt? Which brings us back to our initial question; To bundle or not to bundle.
As you’ve guessed, I chose to bundle. While ditching Qt and telling people to get it from another source would have resulted in a smaller footprint for the Amarok installer, it would also have made it harder to get to. Ultimately being able to say
Smaller than iTunes and yet more featureful loses out to ease of use for the target audience. Us mac users are a spoilt bunch and the barrier to entry needs to be pretty low if anyone’s to care about you. Click, click, password, enter, enter. So that’s what we did. Just hope they work. It’s not like I tested them or anything; that’s for wusses. ;-)
If there’s anything you, the aspiring cross-platform-developer-targeting-the-macintosh-platform-using-the-KDE-framework should take home from this, it’s this: don’t be afraid to (ab)use the system. Use the tools that have been given to you to make life easier for your users.
Oh, still looking for someone to tell me how to start nepomuk manually. That
.desktop autostart file reeks of utter FAIL over here.