James Montgomerie’s World Wide Web Log

Sparrow, Promise, and Feelings of Betrayal

Google has acquired the development team that produces the excellent Mac and iPhone email app Sparrow. Development of the app is being stopped so that the developers can “[join] the Gmail team to accomplish a bigger vision.”

I Believe in Sherlock Holmes

Like many, I find this news disappointing. I bought both the iPhone and Mac versions of Sparrow. I use it daily on my iPhone, and intermittently on my Mac. It’s a great app on both platforms. I’ve been very happy with my purchase so far, but I have to admit I felt a little betrayed when I heard the news of the …


Easy Xcode Static Library Subprojects and Submodules

In which a method is presented for reliably building static libraries with subprojects in Xcode, and it is suggested that this method, combined with Git submodules or other similar mechanisms, provides the best way to share libraries, frameworks, or other code between projects.

I’m sure I don’t need to tell you that it’s a useful thing to be able to share code between projects. On the small end of the scale, you might have created some nice views, or text processing classes, and want to be able to include them in multiple apps. On the larger end, perhaps you produce …


On Frequent, Intense Mature and Suggestive Themes

Marco Arment has written a provoking article about Apple App store ratings. I haven’t really looked at the situation since my original (and, at the time, infamous) brush with the Apple law over the rating of Eucalyptus. As you may remember, it’s rated, at Apple’s request, 17+ for “Frequent/Intense Mature/Suggestive Themes”, because users can access Victorian textual translations of, for example, the Kama Sutra from it. How are other book reading apps rated? I took a sample of the popular ones:

  • iBooks: 4+
  • Kindle: 4+
  • Blio: 4+
  • Nook: 4+
  • Stanza: 4+
  • Wattpad: 9+
  • Kobo: 12+

In case you’re …


Slides From "An iOS Developer's OpenGL Primer"

In October 2011 I gave a talk at the inaugural NSScotland conference in Edinburgh entitled “An iOS Developer’s OpenGL Primer”. It was an attempt to introduce iOS developers to the world of OpenGL by starting with what must be happening - pixels being displayed on screen - and working up through the layers of abstraction to UIKit. I wanted not to “teach OpenGL” (that could take up a lecture series…), but to make OpenGL seem understandable by explaining away the magic.

I promised then to put the slides online and, almost half a year - and one iOS release - …


Thoughts on iOS Content Purchase

I’d like to take a moment to talk about Apple’s new policy on paid ‘content’ in iOS applications. If you don’t live in the Apple bubble I live in, let me explain: Esentially, all apps that allow users to comsume pay-for content (magazines, music, books etc.) must allow the user to buy access to that content in-app, using their iTunes account. For this, Apple will take 30% of the retail price of the content. Content can also be sold outside of the app, via whatever means you can think of (books on your web site, an newspaper subscription bought via…


Webmoco Go!

A couple of the guys I worked with via Missing Ink Studios on the first apps to use the Eucalyptus reading engine (including the Hitchhikers’s Guide To The Galaxy and Peter James apps) have started up their own web and mobile development company, “Webmoco”.

I found them great to work with, so if you’re looking for a development team, check out their site, which includes a showcase of the great apps they’ve been involved with in the past.


Using the Mac or iPhone's Built In Regex Routines

In which a convenient method of using POSIX regular expressions from Objective-C is presented.

It’s a common complaint that the Mac and iPhone platforms don’t have native support for regular expressions, but that’s not entirely true. If you drop down to the UNIX core, there’s an implementation of the old (and only partially busted) POSIX regular expression interfaces. Here, I’ll show a simple Objective-C wrapper class for them that lets you use them conveniently in Mac or iPhone apps.

Before I start, some preemptive remarks: There’s a lot wrong with POSIX regexes to modern eyes. Firstly, and most glaringly, the …