Alan Quatermain

The Tumblog of one Jim Dovey, iOS Software Chief Architect at Kobo in Toronto, Ontario.
He Twitters, he has an , and can occasionally be found on LinkedIn or Facebook.
If you have a query, you can ask it here.

This blog contains personal opinions, and is not endorsed by any company.

5799906397

Regarding Objective-C & Copland 2010

Objective-C continues to evolve, and in directions I believe will be increasingly important in the future. I don’t believe we’re anywhere near the level of crisis that Apple hit with Classic Mac OS and I don’t believe that a total second-system re-write without a clear goal is the best prescription for the platform.

Guy English (via Neven Mrgan)

Fantastic article debunking some of the criticisms against Objective-C. Given the challenge that Objective-C isn’t high-level enough or doesn’t provide enough language-level handling for future computing paradigms, Guy sets out to show that the charges are largely inadequate, and succeeds.

For what it’s worth, I’m in complete agreement. Apple is clearly addressing all the points raised by Siracusa without performing a huge ground-up redesign of either the operating system or its chief UI programming language. They’re looking to the future already, and are doing everything possible to be prepared.

5390219087
BeamItDown Software and the iFlow Reader will cease operations as of May 31, 2011. We absolutely do not want to do this, but Apple has made it completely impossible for anyone but Apple to make a profit selling contemporary ebooks on any iOS device. We cannot survive selling books at a loss and so we are forced to go out of business. We bet everything on Apple and iOS and then Apple killed us by changing the rules in the middle of the game.

iFlow Reader Closes Up Shop

It begins.

5011793582
JavaScriptCore is a part of the open source WebKit project. Instead of using the private library that comes with iOS, you theoretically could compile your own version of this library and bundle it together with your App. Which is exactly what I did.

iOS and JavaScript - for Real this Time! - PhobosLab

This news has me very excited indeed. If Apple does indeed allow apps which bundle the source for an otherwise private library, this makes it much more likely that I’ll be able to create a customized epub layout engine based on WebCore. Which in turn makes support for epub v3 in Kobo ever more likely, albeit at a dramatically increased application size (WebCore+JavaScriptCore is somewhat large).

4782705589
You should encrypt your backups, if not for security reasons, for a big convenience gain: encrypted backups will include your email and Mobile Me passwords so you never need to re-enter them after a restore.
Love this little gem from Marco Arment, dropped casually while discussing the Guardian’s security-paranoiac news of the day.
4390382190
You should always use the NSLocalizedString[…] macros for every user interface string in your code.

Cocoa with Love

A-fucking-men. I tell this to people all the time. And I still see the occasional UI string value which isn’t wrapped in NSLocalizedString(). Sigh.

Read this. Learn it, live it, love it.

4160223156

iPhone Development: WWDC First Timer's Survival Guide, 2011 Edition

As always, Jeff posts the most comprehensive survival guide for WWDC. Worth every minute you spend reading it. DO IT NOW.

4044368554

Possible WWDC Dates

Edit: Okay, I suck. It wasn’t any of those dates. It’s June 6-11.

So now that I’m back at Kobo I’m already looking to the future. Specifically, getting the team sent to San Francisco for WWDC. That necessitates some hunting for potential bookings at the Moscone Center there (assuming it won’t move to somewhere larger—if there even is anywhere larger).

The conference usually shows up as a ‘Corporate Event’ before the announcement, so I figured I’d see if there was anything booked which appeared to match the usual Sunday-Friday dates, either booked for some anonymous corporate event or left open for Apple to grab later. Here’s all I could find:

  • June 5-9 is booked for a Corporate Event. That’s Sunday-Thursday.
  • July 3-8 is open.
  • July 10-15 is open.
  • August 22-26 is open. Sunday-Thursday only though.

Given that Apple usually starts decorating the convention centre a little in advance, I wouldn’t be surprised if their booking started on the previous Friday. That puts the most likely dates as:

Sunday July 10 – Friday July 15

Edit: I mis-read the site (or else it just changed). The event on July 12-14 actually uses all three convention halls, so that range is out. It’s possible then that July 3-8 is the one to go for, unless the June 5-9 grows by a day later on.

Set your calendars people.

3967381434

bbum's weblog-o-mat » iOS 4.3: imp_implementationWithBlock()

In iOS 4.3, there are 3 rather low level functions in the runtime that provide a new kind of bridge between Objective-C and Blocks with a specific goal of facilitating the dynamic generation of method implementations. Specifically:

IMP imp_implementationWithBlock(void *block);
void *imp_getBlock(IMP anImp);
BOOL imp_removeBlock(IMP anImp);

Okay, this is officially awesome. I hadn’t realised (or, thinking about it, I think I only forgot) that these were available in iOS 4.3. I discovered them in the Lion headers, and was planning on providing two-stage handling for 10.6/iOS4 vs. 10.7/iOSn in my awesome new open-source project. Now I can give 10.6 the finger and do it how I wanted to in the first place, woo!

3892342867

Talk to me

Apple’s Installer doesn’t do uninstallation. It could, since a certain amount of metadata is left around, but that could be extended to something truly useful and Apple-like in its simplicity.

I have an idea which I think will fill this gap in a really neat fashion, and which will have benefits for both end users and developers. I’m working on this idea right now (doing actual bona-fide unit tests for it too!) but I’d like some more data from the world at large. In that vein, I’d like to know what people are missing in the current uninstallation landscape on the Mac, both users and developers.

Some possible areas to consider:

For Users:

  • Ancillary files (plugins, templates, preferences, anything that’s not a document) hanging around, which are of no use without the application.
  • Temporary files or caches which might stay until the OS feels like making some space. etc.
  • Ideal user experience?
    • How much interaction overhead would you be willing to put up with?
    • Conversely, how automagical could the process be without giving you the ‘did it even do anything’ heebie-jeebies? To developers:

For Developers:

  • How interested would you be in something which could clean up all those ancillary bits?
  • How much work would you be prepared to put into describing these things?
  • If you could build the engine into your app directly (perhaps like Sparkle or Growl), what would it be worth to you, if anything?

Tumblr users can answer directly on your Dashboard, anyone else can ping @alanQuatermain.

There are more questions, and more concerns, and more wishes I’m sure. You know more of them than me, so let me know: what would you like to have?

3661319426
Kobo on the US app store’s books category.

Do you think Apple will notice us now…? ;o)

Kobo on the US app store’s books category.

Do you think Apple will notice us now…? ;o)