Ole Begemann

iOS Development

Best iOS and Mac development-related links: March 2011

Update April 4, 2011: I forgot to include some links when I first published this article. Late additions are marked as updates just as this paragraph.

Here is my summary of the past month in links:

Inside Apple

Bertrand Serlet, longtime colleague of Steve Jobs and one of the most important engineers on NeXTSTEP and OS X, leaves Apple.

So I typed in “Bertrand Serlet” into the search, and the first thing that popped up? malloc.c.

Seriously! The rest of the list was equally impressive including the original implementation of NSObject, a bunch of CoreFoundation, and on, and on. Avi Tevanian often gets credit for the work that he did on Mach, but Bertrand was most of the brains behind Cocoa.

WWDC 2011 got announced and sold out within 10 hours! For those lucky enough to get a ticket, be sure to read Jeff LaMarche’s WWDC First Timer’s Survival Guide and also Borkware’s very funny First-Timer’s Guide to WWDC:

The labs where you can chat with Apple engineers are an invaluable resource. It is a scarce, shared resource, so treat it like you would computationaly: pretend to be a mutex. You walk into the lab you want and shout “I AM ATTEMPTING TO OBTAIN A LOCK ON THE MEDIA PLAYER FRAMEWORK ENGINEERS”. If an engineer is free, you’ll hear “LOCK SUCCEDED” from the back, and you can go to the engineer who just shouted and ask your questions.

Xcode 4 and a new OS X Lion Build

Apple released Xcode 4.0 at the beginning of the month, and the first bugfix release came out a few weeks later in the form of Xcode 4.0.1. I’ve been using Xcode 4 exclusively for nearly 3 months now and despite giving the impression that it’s not quite as finished and stable as a version 1.0 should be, I find it’s definitely an improvement over Xcode 3.2.

A few days ago, Apple released the second developer preview of Mac OS X 10.7 Lion. To upgrade from the first developer seed, be sure to run Software Update first, which contains a small update that enables you to download the new build from the Mac App Store. TechCrunch claims that internally, Apple considers this build to be a “GM1”, indicating that Lion is nearing release quality.

Programming

Software development is about dealing with those edge cases gracefully and ensuring that an app has a fairly decent experience for a person who has 24 files and someone who has 2,400. It is our job to hate our code and find every which way to break it.

Late Additions

UI Design

It’s useful to conceive of our [touchscreen] designs as infant-ready interfaces. Let your toddler lead the way. … Buttons are a hack.

The app wall means that for every app in, one must go out. … If you’re not designing an app that is meant to be on the homescreen of every iPhone or Android phone out there, you’re not aiming high enough.

The argument that multitasking on computers is bad because humans can’t multitask is flawed. It uses the word “multitasking” in two different ways, but implies that the two kinds of multitasking are somehow the same thing. They’re not: a task (or an app) on a computer, and a task performed by a human don’t map to each other one-to-one.

The App Store

Apple can try to be a good platform owner and ensure that popular apps like Kindle and Netflix thrive on iOS, and it can also try to advance its own competing services, but both efforts cannot succeed to their fullest potential.

We take for granted now that much of the App Store’s success is because of free apps, but I’m not sure it had to be that way. The iTunes Music Store launched with a full paid catalog of music. Many of the hits in the App Store, like Angry Birds and Doodle Jump, have never been free. … Apple can’t accept a future in which too many apps are technically free — something that has already happened on Android — unless they are also taking a cut when money changes hands outside of app download.

Here is a tip for all the non-developers out there. When you email your favorite developer with a feature request or bug report never, ever, ever use the word useless to describe their product. Useless is kryptonite to developers and puts us on the defensive instantly.

The Indie Community

Finally, I love this post by Ben Zotto, creator of Penultimate for the iPad: Designing A Software Atelier. I think the way Ben wants to grow his business is what many indie developers can identify with.

Here’s my goal: I’d like to create a high-quality, high-design mobile software “atelier”. Picture a small number of great developers, designers and others working together to create software on the platforms that are on the verge of taking over the world. Smart, interesting people who appreciate design and craftsmanship in software (and probably outside software as well), and who demand to work with others who value that.