I love Macs, but in my younger and more hot-blooded days I took it a step beyond that. During the 1990s, the days of ubiquitous “Beleaguered Apple” headlines, I counted myself among the evangelists, hungrily reading Guy Kawasaki’s weekly newsletters to the troops. You can only imagine my joy at landing my first out-of-college job, working retail at an unlikely independent Mac specialty shop in Bangor, Maine. So, yes — I used to do my best to literally sell Macs to people, and would cheerfully accept their credit cards for immediate swiping when successful.

I relate this anecdote to provide a bit of contrast with an email I just wrote to a friend, and which I shall share below for fun. My friend wished to experiment with iOS development, a field in which I am known to tinker myself, and they knew that one needed a Macintosh computer of some variety to get started. With a set of assumptions that — to anyone familiar with bespoke-PC culture but not so much with Mac culture — actually count as quite reasonable, my friend asked if they could get themselves set up from scratch with a budget of $300.

My reply:


Alas you’ll probably need to spend more than twice your target on this project, if you spend a dollar. I’d realistically budget closer to $1,000, if not more.

You’re very unlikely to find a suitable Mac for $300. If you have a spare display lying around, for $600 you can march into any Apple Store and get a new, lowest-end Mac Mini (though you might need a display adapter too, which Amazon can sell you for like $3). (http://www.apple.com/mac-mini/) You might be able to find some of these used or refurbished if you’re lucky, and do feel free to look, but I wouldn’t bank on it.

“I’ll just run a really old Mac OS and an old version of Xcode” might not actually get you very far, because Xcode < 5 won’t deploy apps that take advantage of iOS 7 features. Xcode 5 requires Mountain Lion (released mid-2012) to run. So you’ll need to find one of these Macs, at the very minimum: http://support.apple.com/kb/HT5444?viewlocale=en_US&locale=en_US

Small Dog Electronics is a great source for used and refurb Apple stuff, but right now they have all of two Macs in stock. (http://www.smalldog.com/macs-refurbished/) One of them is indeed an iMac for $300, but it’s like eight years old. You could in theory run an older version of Xcode on it. But I’ve never done that, and I would be wary of doing it even if you could get it to work. Beyond the inability to ship iOS 7 apps, you’d also be stuck with older programming paradigms, so I’d be afraid of e.g. running into documentation describing stuff you don’t have.

And beyond that, if you run Xcode versions from before 2012 or so, you’re getting into a language so lacking in features (e.g. automatic reference counting) that to use it today is to willfully and permanently take on a great deal of extra pain and work-overhead just to save a few hundred dollars. I cannot recommend that.

Keep in mind you’ll also need $100 to sign up for the dev program if you actually want to run an app on hardware, versus just on the simulator. Yes, even if it’s just your own phone, without ever touching the App Store. (And then $100 / year after that if you want to stay in.)

This all may seem a little strange, especially if you’re coming from an open-source or enterprise programming environment, where programming culture is either community-policed and free, or committee-designed and very slow to change, respectively. But Apple programming culture is both not-free and changes so rapidly it tends towards the capricious, coming as it does from a single corporate source which answers to nobody.

(Speaking of whims.)

All this said, I quite enjoy developing for iOS. But I have also stopped banking on making any money selling apps of my own design, for the foreseeable future. I just develop using other people’s money now. :)

How to respond to this post.


Next post: A letter about a creepshotter

Previous post: A letter about ‘Culture Fit’

Loading responses...

Share a response

To share a response that links to this page from somewhere else on the web, paste its URL here.