Code Collector and Code Collector Pro were both updated today to fix a small bug we found in Leopard testing. When Friday comes your code snippets should run on the new cat without a hitch. Minim 1.1.3 has a few minor UI issues but these don’t affect usability too much and will be fixed in the upcoming 1.2 update. Of course not having the final build that everyone has means we can’t guarantee 100% compatibility yet, but hopefully Apple won’t have changed much between the last build we developer received and the version we’ll all be installing on Friday.
Last week I saw the finishing line and this week I’ve been able to almost touch it. Yesterday I managed to get my to-do list for Minim 1.2 finished. I built the first internal beta version (1.2b1) and have started using it to access my main library (I actually started using it a while ago when I accidentally built a release version and opened it, thereby updating my 1.1 library). Of course now I’m using Minim 1.2 properly I’m noticing quite a few bugs I’ve missed.
And while we’re on bugs, it might be worth outlining my testing method: I don’t write any automated tests. Yes it may be worth it to some people, but unless I’m writing a framework I do not see the point in writing code to test code. The best way to test an application is to actually use it. It takes time but it tries to break the application in ways users will break the application. Only write code to test stuff that people will write code to interface with. If I was adding AppleScript support then yes I’d build a bunch of AppleScripts I can run.
That said, the Leopard feature list on Apple’s website highlighted a feature I’ve missed in my use of Leopard: Automator UI recording. I’m going to be experimenting with this to build up a UI test suite for Minim 1.2. While I don’t like the idea of writing automated tests for a piece of software, I’m all for having a way I can automate the testing of my app based on using it as a user.
Most of the remaining work centres around the UI (mostly icons) and a few bugs I’ve found. I’m pretty confident of having an early November release for 1.2 but this all depends on how long it takes to do the marketing and distribution side of things, specifically the screencasts.
I’ve included some screenshots of 1.2 below to liven up this otherwise text filled post. And just a note, there may not be a post next week as I’ll be heading over to the Apple Store for the Leopard launch. Unfortunately my ADC account expires on the 25th and so I have to pay for my final copy of Leopard. Don’t worry though, we’re testing all our apps against Leopard already so we’ll be Leopard compatible when the big cat ships next week.


I don’t think there has been a better time to be a Cocoa developer, or a better time to start if you aren’t one already. In the past week we have heard how Apple has managed to take the #3 computer vendor spot in the US, that Leopard is being released to the public in just over a week and that in February there will be an SDK available for developing for the iPhone and iPod touch.
Leopard offers many opportunities, not only with the cool new technologies for developers to use, but also in the growth potential. I’m going to be queuing up outside my local Apple Store next Friday with two friends, one a switcher last year looking to upgrade and one who has been waiting for Leopard to switch to the Mac. And this is only two out of the many who I have seen switch in the past year or with plans to switch (most of which centre around Leopard being released). The market for Mac software is expanding and Leopard can only help accelerate that.
But a possibly more significant release will be that of the iPhone/iPod touch SDK. This will open up Cocoa developers to many potential customers who they could never have accessed before. I have another friend to use as an example. He thinks Macs are pretty cool, but would never buy one. He prefers tinkering with his hardware and is happy with Windows. Though his reaction when he saw the iPod touch released was the same as mine, “Gimmie!”. There now is a potential customer who I would never have had access to before. Yes, a lot of iPhones and iPod touches will be going to Mac users but a lot more will be going to non-Mac users.
With the mobile version of OS X using Cocoa, Apple can tap into the large Cocoa developer community out there. Because we’ll be the first on there (not including Apple) then we can help dictate the terms of 3rd party development. Of course Apple will have the overall say, they own the platform after all. But there will be a large number of developers who already sell high quality software for relatively low prices over the internet who will be getting into this new market, with a head start over those moving from other platforms. This will allow the culture around mobile OS X applications to be jump-started with the same culture around Mac OS X applications. This culture is what makes the Mac so great, both for users and as a development platform. Allowing users from other platforms to experience this culture will be as great as selling tool as any marketing campaign Apple can put forward. It will also help the iPhone and iPod touch become the thing that most people have wanted for a long time: a low cost Mac.
It may be a week and a day late but at least this post is worth it. To start with, being a developer and a student is hard, but ultimately it is likely the safest place to start from. Not only does it offer you a safety net for several years that lets you fail several times, but if you can master the skill of juggling your school/university workload, your development/support workload and your personal life then you’ll be ready for most of what life will throw at you in the future. That said I’m still learning to do that, hence the lack of a blog post last week.
That’s not to say that no work got done. In fact the past 2 weeks have seen Minim 1.2 really take shape and for the first time I can see the finish line. SimpleChord integration is working fine, all file management features are finished, searching works as well as I could have hoped and the integration with GarageBand is up and running. In fact I’m down to 4 tickets in my issue tracker, most of which is taking code or experience from Code Collector Pro and applying it to Minim.
I can now say that I hope to have the first beta version of Minim 1.2 finished by then end of next week if not much sooner. I’m wanting to have a decent few weeks to test it both on Tiger and Leopard and also prepare marketing materials. Unfortunately getting to beta is like getting to the top of a hill only to turn the corner and see you have the steepest bit left to go. Much of the development is done but there is still updating the website, preparing new graphics, updating documentation and screenshots and writing press releases and other marketing material.
One thing that I am hoping to get out prior to the release of 1.2 are some screencasts. I haven’t done a huge amount of planning for them but I’m looking at 3 screencasts at the moment: What’s New in 1.2, Minim for Musicians, Minim for Podcasters. The first is pretty self explanatory, but the latter two will both address one of the biggest non-application based weaknesses and push Minim into a whole new market.
While I wouldn’t say I’ve done a bad job of marketing Minim, I have failed at one particularly big issue. Many times other developers have said to me, “Minim seems like a very niche application,” yet every time I simply reply, “my target market is anyone using a Mac to make music”. That’s a lot of people, yet the fact that people question who it’s aimed at is a big problem. It’s a sign that people don’t really know what Minim is for and how it would be useful to them. There are some who instantly see the benefit of it, but for others it may not be clear to them. This is what I’m hoping to get around with the first screencast.
A while ago I was talking to someone on the #macsb IRC channel and they were looking at Minim and pointed out that it would be great for podcasters. Looking at it from a podcasters perspective I can see what he meant. Podcasts often require lots of material stored with them, to see when those who may be working on the podcast are online, show notes, etc. With a few minor features Minim suddenly becomes a podcast management tool. The other plus is that podcasters are like bloggers: write an application they love and they will tell everyone how much they love it. This has worked so far with Code Collector Pro on developer blogs, hopefully it can also work for Minim on podcasts.
Of course one other side effect of seeing the finishing line of Minim 1.2 is that I’m starting to look ahead again, towards Code Collector Pro 1.1. I’m hoping for this to be a relatively quick, yet highly useful update. There are some large parts of the code that I’m not very happy with and looking to re-write (*cough*syntax colouring*cough*) which will filter down to Code Collector in a bug fix, but for the most part I’m looking at adding Pro only features, with the emphasis being on faster access to your snippets. This way I can get the version numbers of Pro and standard in sync with the update after that.
There is also another secret project in development though I doubt I’ll have anything to show (or even time to work on it) until the new year. I do believe I have enough on my plate at the moment, don’t you?