My old manager at Apple sent me this video from David Pogue about screenshots on the iPhone and I have a bit more background on it to share

1/8

Back in early 2007 the iPhone had been announced but not yet released. The phone was under strict lockdown and we weren’t even allowed to use them on Apple campus outside of the few small lockdown areas. Steve Jobs of course started carrying his everywhere not long after the MacWorld announcement, and other execs followed not long after.

2/8

They quickly found all kinds of problems with things like wifi, and they realized that the phone would benefit from a lot more real world testing. They started a “carry list” of people with permissions to take iPhones outside of the lockdown areas. It started with the VPs and top level managers on the project but eventually spread to most all of the engineers working on the iPhone.

3/8

One day in spring 2007 it was my turn to get carry permissions. I was allowed to take an iPhone home for the first time and I was really excited. I remember going home and using my iPhone and then quickly finding a UI bug in the weather app.

4/8

In the office I would have connected my phone to my work desktop and run an internal tool to grab a screenshot (which is what Pogue is talking about) but at home I had no way to grab a screenshot. I was allowed to carry the phone but I couldn’t bring code or development tools outside the lockdown so I had no way to capture this bug.

5/8

The next day I went in to work, pulled the source code for SpringBoard, and wrote some code to grab a screenshot on the phone. I needed a way to trigger the screenshot that wouldn’t happen by accident so I picked a home button press and a ringer switch change happening at the same time. I saved the photo to the camera roll and I think I triggered the camera shutter noise for fun.

6/8

I didn't work on SpringBoard but it was essentially just one guy writing it, so I messaged him about it. I wrote a Radar and attached my patch, and I think it was merged into the iPhone builds within a week (things moved incredibly fast back then!) Since screenshots were just for engineers to do bug reports (and because I knew almost nothing about SpringBoard or UI code) I put all my code inside a compiler flag for internal builds only.

7/8

The screenshot functionality was there since before 1.0, but only on internal builds. SpringBoard took ownership after my original patch so I'm not familiar with the rest of the story until Pogue managed to get screenshots enabled in the public builds. Before they added it to a public release they changed the gesture from home+ringer switch to home+volume up button.

8/8

I just realized @modenaboy is on here, but he probably doesn’t check this account. Thanks for letting me know about this video!
@jacob I thought it was home + lock when it first shipped to the public
@timonus you’re right! It used to be home + lock
@jacob that’s a cliffhanger !
@jacob Why didn't you just take a picture with your phone? Typical engineer, always looking to solve problems with code.
@enhancedscurry hahaha I remember that being my exact thought when I first saw the bug
@jacob
Great story - thank you for sharing!
@jacob “Where the windows were positioned”…? In 2007 the iPhone couldn’t show multiple windows, could it?

@gadgetgav @jacob

I believe there may have been? Well not in the way you are thinking. More than one app could be open without relaunching. But I think navigation was hitting the home button, then the springboard icon

This wasn’t as nice as the card shuffling metaphor PalmOS for its touchscreen smartphone. Which Apple adapted later after their elegant attempt was lost in the marketplace.

@Chancerubbage @gadgetgav @jacob On the original iPhone OS, an application was force-quit every time you switched away from it, and restarted every time you tapped it. Which was why saving and restoring state was not only a nice feature, it was an absolute necessity.
@ahltorp @Chancerubbage @gadgetgav @jacob Yes exactly. This kept being a thing for both the original iPhone, iPhone 3G and the early iPod Touch models (1st gen and 2nd gen). I still have the iPhone 3G and 2nd-gen iPod Touch and they both can’t run iOS versions newer than iOS 4.2.1. Neither handles real multitasking: force-quit with UserDefaults save and restore code is a must. Done properly, the user will *think* it’s multitasking.
@jacob And in what year did the action become opposite buttons? I don’t doubt that having to make screenshots for Pogue had some part in it becoming a publically accessible feature, but he’s mis-stating history in his supposedly historical story.
@gadgetgav @jacob Home and Lock were at the top and bottom of the phone, so you could reasonably call them opposites. But I think he just misremembered the current button arrangement as the original.
@gadgetgav @jacob
Well, when the Home button was removed, something had to done….