Category Archives: iOS

WWDC: The First Time

Since tickets to WWDC sold out in less than two minutes last Thursday, a flurry of angry tweets and blog entries has flooded the Cocoa community. Overwhelmingly, the voices of long-time Mac developers are saying that changes to WWDC are badly needed. Many hold the opinion that Apple is ignoring a problem, and some have even called for Apple to simply end the conference and find a different way to engage developers. While Apple’s platforms have gotten wildly popular, the makeup of their flagship conference has remained largely unchanged.

One voice that has been noticeably absent from these discussions is that of the first-timer. The popular commentaries are from veteran Mac and iOS 1 developers. These developers have lost a perspective that makes building Mac and iOS software wonderful: the magic of getting started.

On Thursday, I was fortunate enough to secure my first WWDC ticket. It’s been a dream of mine to attend for the past few years. I’ve previously watched the excitement and energy as other developers bought tickets, booked travel, and then actually attended in San Francisco, but always from the window of Twitter. This is the first year I’m in a position to attend the conference, even though I’ve been building apps since the SDK was released.

How I Got Started

I bought my iPhone 3G the day they came out. I was unsuccessful waiting in line early that morning, so I had to patiently wait for my phone to be shipped to my local AT&T store. Hours after receiving it, I knew I wanted to start building software for what was obviously a huge leap forward in mobile technology. I was working for a rugged handheld computer manufacturer whose devices ran Windows Mobile and CE,2 and even at that point it was obvious Microsoft was in serious trouble. The iPhone was unlike anything else.

At that point, I’d been a Mac user for just over three years, and had dabbled in Objective-C and AppKit. Becoming familiar with the iOS APIs and a screen full of brackets were my biggest hurdles; I was already comfortable with C and C++, so the basics were already in place. By day, I was building embedded RFID reader software on Linux, and by night I was building my first iPhone app.

I did a lot of things right. I found an idea, executed on it quickly, and was first to market. I created a Twitter account for my products, started marketing the app just as it was about to launch. I created some good buzz and had a group of people excited to see my app on the store. I launched with a $4.99 productivity app, and made a few hundred dollars the first day. My 1.0 was awful. I never shipped a 1.1; I jumped immediately to a rewrite and versioned it 2.0. I required iOS 3.0, and took advantage of Core Data. The app grew to a few thousand users, and I couldn’t have been more excited.

Growing Excitement

Since that first app, I’ve build three other apps, given talks at my local meetup, worked as a moonlighting contractor, and am now building iOS and Mac software full time. I shared a screenshot last Thursday that contained two goals I’ve been tracking since I first started my iOS hobbies.

Making the jump from hobby to real job has been an absolute delight. In addition to being a dream job, it’s also finally afforded me the chance to attend WWDC. I’ve feverishly watched Twitter and ADN for news, written scripts to monitor the Developer Portal for news, and sat perched at my computer Thursday morning in hopes of snagging a ticket.

Beyond attending the conference, talking to Apple engineers, listening to the keynote and hearing about what’s coming in iOS and OS X, I’m eager for the chance to meet some of the people I’ve gotten to know over the years through Twitter. I’m excited to hang out with people I’ve admired and let them know what their work has meant to me. I’m psyched to be spending a week in San Francisco, one of the technological hubs of our country. I’m proud to be representing a great company with an amazing product.

I’m disheartened that some of the people I admire have forgotten how exciting this conference is, especially when looking from the outside. I’m frustrated some people think it should end, before so many have had a chance to enjoy it. I’m disenchanted by the arrogance that because it’s different now, it’s not as good. 3

Losing Sight

My guess is that these dissatisfied developers have simply grown bored with WWDC. They attend annually because it’s what they’ve done since Apple was recruiting people and paying their way. I would wager they don’t gain much from the talks and attend labs to chat with people they’ve met over the years who are now insiders. It’s not as magical as it used to be to them. They still enjoy attending, but it’s different now. Annoyed that it’s so difficult to get a ticket, it seems like a good time to voice a demand for the conference to change.

It’s incredibly frustrating to want a ticket to WWDC and not be able to get one. I’ve been in that seat for the past three years. If WWDC isn’t what it used to be for you, simply opt out and let another hopeful developer have a turn. Try and be sensitive to the fact that WWDC is bigger than a small group of rebels building software for the Macintosh now. It’s capturing the imaginations of people slogging away at a 9-to-5 and encouraging them to keep hustling on their ideas. In June, they’ll be reading tweets tagged at Moscone West, nearby coffee shops or bars, and thinking about how great it would be to be there too.

  1. Veteran in iOS is four or five years, which hardly constitutes a veteran. I technically fall in that group
  2. The company was primarily building handhelds, but I was in a small group building rugged RFID readers on Linux
  3. As if the introduction of thousands of new faces in the community has diluted it

Shipping Is Hard

Almost two months ago, my wife and I were discussing a noise generator app we’d used while our first child was very young. As we recalled the app and remembered how ugly and simple it was, I decided that it wouldn’t be very difficult to improve upon. A few minutes after our discussion, I tweeted:

Wife: “that’s a cool idea.” Me: “CHALLENGE ACCEPTED”

The first proof-of-concept for the app took me just over eight hours. I was able to loop static noises, and had some very basic remote control support in place. It worked, but was hideous. So I spent the next week or so considering some ideas and implementing a few of them. I collected some new beta testers, and started showing people what I was working on.

About a week before I planned to submit the app to Apple, I realized the design was still hideous. I scrapped the UI, and started fresh. The result was something much more satisfying, and I’ve sworn the beta testers who saw the first stuff to never reveal how awful it was.

Static 1.0, connected to a remote device

Static is a noise generator that can be remotely controlled from other instances of the app.

In the end, this weekend app took almost two months to build. Even after writing software professionally for years, it still amazes me how hard the last 20% of a project is.

Static is currently submitted for review with Apple. Once available, I hope you’ll check it out. The app is free to try, with unlimited use of one sound (including full remote control capabilities). Additional sounds and future features can be unlocked with an in-app-purchase.

The Aged 3GS

Apple formally announced iOS 6 yesterday at the World Wide Developers Conference. There are an incredible number of new features, including many surprises. Among the biggest surprises has to be that Apple will continue to support the iPhone 3GS.

When the iPhone 4GS was released last fall, Apple opted to continue the life if the 3GS. AT&T gave it away with a two-year contract (it is now $.99 I believe). Apple is usually quick to end a product, even if there is a little demand for it. It must have been too difficult to ignore the demand for a low-cost iPhone, and the demand is apparently unchanged.

The iPhone 3GS is one week away from it’s third public birthday – an incredible milestone for a mobile phone these days, especially in the smartphone market. The fact that it still has the attention of Apple has to mean they’re serious about flooding the phone market with iOS. Unfortunately for developers, it means that they’ll have to continue designing interfaces for phones at both 1x and 2x (Retina) resolutions. Many (myself included) hoped that iOS 6 would be the chance to return to single-scale UI support.