Archive for the Category Cocoa

 
 

My SecondConf Blitz Talk: The Idea Factory

It’s with great relief that I stand on the other side of this Blitz Talk presentation for SecondConf 2011. I’ve done lots of presentations for larger groups, but nothing has been as challenging as those five minutes! There’s no margin for error if you have 15 seconds per slide, so I had to do a lot of practice.

The execution was marred with errors, but the worst part was that my slides were very dense with information, and most of the room wasn’t able to see them! So here is my slide deck with my speaking notes. Enjoy, and thanks for a warm reception.

Here are the slides for the presentation

The TekSavvy Nightmare Scenario

About three months ago, I switched my Internet service from Rogers to TekSavvy. While the quality of my service with Rogers was just fine, it was an easy decision to make: TekSavvy leases Rogers’ cable lines, and offers dramatically higher monthly bandwidth (300GB vs 95), for a lower price.

The switchover to the new service took about five weeks, owing primarily to the fact that I owned my cable modem (Rogers required you to buy a modem for their “Extreme” service a few years back). Once the switch was complete, Rogers could take anywhere from 20 minutes to 48 hours to release their hold on my cable modem, and let TekSavvy assign me an IP address. Yes, of course it ended up being 48 hours, without Internet.

Last Tuesday, my Internet went down. I called TekSavvy and was told that Rogers’ local DHCP server for TekSavvy users was having a problem, and several other users in my area were also down. My ticket was filed, and I was told that Rogers could take up to 48 hours to respond. Two full days.

So I waited till Thursday before calling them back. Right away I was greeted with an automated response: cable service was down for Pickering, Ajax and Whitby. Most of Durham Region, for TekSavvy anyway, was without service.

As it happened, I was going away for the weekend to New York City. But while I was there, I continued to check on my network remotely. By my calculations, it didn’t come back online until sometime Sunday afternoon. A good six days without Internet.

Now, this may come off as sounding like the lead headline in First World Problems Magazine (featuring “OMG! I Broke a Nail!” and “They Ran Out Of Mayo And My Club Sandwich Sucks!), but as a work-and-live-at-home hermit, the Interwebz are important to me. So bear with me here.

My first question here is, who’s to blame?

TekSavvy called me today and asked if my Internet was okay. That was kind, and it was good to speak to someone, as I was planning to call them myself tomorrow for an explanation. The woman who called had no information other than what I’d already been told, and that it was essentially Rogers’ fault. Also, my account will be credited for the time I didn’t have the Internet.

But assuming we take them at their word (and I’ve no reason not to), am I satisfied to leave it at this? Apparently not. Because while this may be Rogers’ fault, there’s clearly something deeply broken here. In the ten-plus years I’ve been a Rogers customer, I can count my total downtime in hours, not days. And now, in the first months of my time with TekSavvy, I’m down for most of a week. It might be an unfortunate coincidence, but to date I’m not at all convinced that this won’t happen again.

Aside from a followup call from TekSavvy, I have no information from the company as to what happened, and what is being done to assure me that future incidents will not occur. They have no blog, no Twitter presence, in fact little to no outreach to their general customers at all, from what I can see.

All the nerds I know in the Toronto area are big TekSavvy fans. But when things go wrong, what can the company do about it? They seem to be at the mercy of Rogers. And I can’t help but think that Rogers is going to no effort to help us out.

I don’t know about the nature of Rogers’ agreement with TekSavvy, but it clearly doesn’t put support very high on the list. And while I would love to stay with TekSavvy, if this turns out to be the start of a trend, I’m going to have no choice but to return to Rogers, where having the Internet is more important than having meager bandwidth caps.

So if you’re out there, TekSavvy, this message is for you: figure out your problems with Rogers, yes. But also be more open to your customers about what’s going on. Internet isn’t a “nice to have”; it’s a utility that I rely on. Start acting like it, because I’m another outage away from switching back.

Tablets as Demo Pieces

I finally had an opportunity to play with a couple of the recent arrivals in the tablet space: the RIM Blackberry Playbook and the Motorola Xoom. Having read the reviews and evaluated the specs, I was looking to compare my Internet-provided conceptions with actual experience. The results were surprising.

Given the market superiority of the iPad, a potential competitor must carefully tailor their product offering to not merely match, but exceed the capabilities of the incumbent. And the well-established problems with these competitors is that, by the most important measures, these competitors have failed to match the iPad on two important vectors: features and price.

So it was with these thoughts in mind that I fondled a Playbook and Xoom at my local Future Shop this weekend. And while I have a ton of impressions about the hardware and the software offerings of each device, I found myself struck much more by the statements they made as physical artifacts. In other words, leaving aside what each tablet actually does when you get it home, how do they stack up against each other in the store? What impression does one get when these things sit side-by-side in a retail environment?

My impression is that RIM and Google have very consciously designed their primary interfaces to demo well.

The iPad is Boring There, I said it. I’m as big an Apple fanboy as you’re likely to find, but if you’re like me, you have to admit there was a tiny part of you that deflated when Steve unveiled the iPad. You were hoping the Springboard would have a little more in common with a traditional computer. But instead, we got iPhone-Plus:

Official iPad Springboard

It’s functionally identical to the iPhone UI. And while we have few complaints about how well it works, I think we can all agree it’s more Pravda than, say, Village Voice. But it gets the job done, dammit, and we’re there for the apps, not how it looks when you’re not actually using it.

Conversely, I think the Xoom and the Playbook are at their best when they’re not being used. Consider their standard interfaces:

Motorola_XOOM

playbook_navigator_508

There’s no denying it: these tablets look more interesting than the iPad. The Playbook in particular is a very sweet-looking OS, with lots of cool things going on. An application dock on the bottom, and a live preview of your running apps in the main view.

If you’ve seen the reviews of the Playbook, you’ll know one of its marquee features is its multitasking capability. The QNX real-time operating system at the heart of the Playbook can play multiple videos simultaneously and without dropping frames. So I tested this myself: I pulled up a gorgeous nature video featuring sharks and dolphins and grass blowing in the breeze. My 7-year-old daughter enjoyed the animals. But when I swiped into multitasking mode to play another video, she stopped me with “hey, I was watching that!”

Has nobody else asked why anyone would want to keep a video running while you go to another application? That strikes me as a cool feature to demo, but once you get the thing home, remains utterly unused.

The Xoom is similar in this regard. Its home screen features a giant clock, and its ability to embed so-called “widgets” on the home screen seem like a really great idea while you’re standing in the store. But overall, I found so many things going on with this device, it felt like a total mess: controls crammed in every corner, uncertain spatial positioning of individual screens of either widgets or apps, and that typical feeling of Android’s lack of polish, which ultimately hampers your interaction every time you pick it up.

But it looks cool!

Like a good movie, I think the iPad has succeeded based on the positive reviews of the first users. The Springboard is nothing to write home about, but the overall experience is so compelling that it doesn’t matter. But these new tablets may stand a chance when they sit beside the iPad. I think the ultimate test will be when those tablets get home and people have to live with them every day.

From what I’ve seen, I don’t like their chances.

Twitter killed my app.

You couldn’t say the warning signs weren’t there. But I doubt anyone would have guessed that the end would come so abruptly.

Twitter did it today: they killed my app.

It’s kind of a joke among developers to say that you’re working on a Twitter client. Let’s face it, there’s no shortage, right? Well now there’s probably gonna be. Go read the article for the details, but the nut is this: Twitter really only wants you using their apps to access the service. If you want to develop on their platform, it better be in a way that doesn’t interest them.

I wish them luck with that approach. But right now, it’s just put a bullet in the head of a project I’ve been working on for the past couple months. And since it’s dead now, there’s no harm in talking about it. I give you TweetStrip:

TweetStrip-lg

Click to see the full-sized image.

I’m not going to spend a lot of time discussing this. You can see that it’s radically different than the Tweeties, Echofons, Twitterifics and Hibaris of the world. I was so sick of that vertical list of tweets that I wanted to make something different. Something that took advantage of all those widescreen displays out there.

It’s almost entirely keyboard-driven. Use the arrows to move along the strip. But go up to reveal a minimized tweet strip, or down to pull out a larger detail on the currently-selected tweet.

I know I don’t have a chance to break the world with an app like this. It hasn’t been refined yet in the caring hands of a top-flight designer. But I felt that this app would have found a loving home on many a Mac desktop.

I guess that’s the point of this post. What Twitter has done today is ended the conversation on how Twitter should be used. As if we’ve all been coming up with new ideas, and mid-way through the debate, Daddy walked in, slammed down his whiskey glass, and bellowed “enough!”

It’ll be interesting to see what kind of kids we turn out to be. The kind that obediently scurry back to our rooms and play nice. Or the kind that get devious, and turn to other alternatives.

But for my part, I’m going to archive TweetStrip, and start working on something else. And my love of Twitter, once unblemished, now takes on a hint of resentment.

Here is the Love

I’m working on a new Mac app. At this stage in the game, I’m too embarrassed to tell you much about it. But in my long, agonizing quest to become a Cocoa Master, this is another stage in the journey, one I hope brings me measurably closer to my goal.

This past weekend, I had the opportunity to give that app my full attention. I took the lovely @erinlthomas for a writing retreat in the middle of winter-locked Prince Edward County, where we had nothing to do but focus on our projects. While she made brilliant progress, I found myself stuck, banging my head against Core Animation. Having read the documentation and poring over code samples, I couldn’t figure out what I was doing wrong. And despite my relentless pushing against the documentation and Build & Run, I wasn’t getting anywhere. It was deeply frustrating, and forced me to question myself (again).

Fortunately, last night was also one of our quarterly Tacow (Toronto Area Cocoa and WebObjects) group meetings. There, I received many encouraging words from my fellow Cocoa-heads. David Leber reminded me again of a great quote from Aaron Hillegass:

"Yes, this is hard. No, you are not stupid."

So it’s time to take a deep breath, revisit my assumptions, and rush once more unto the breach. This project is back on.

It was with thoughts of last night, that I reacted to this tweet tonight:

Screen shot 2011-01-19 at 8.48.56 PM

Of course I nodded my head at that one right away, but I also immediately grasped why that is. Unlike so many other development environments, Cocoa is adopted by people who share a very common purpose. It’s not to become rich. It’s not because our employer made us. It’s not because it’ll get us laid (unless, I suppose, you’re Wil Shipley). It’s because we fell in love with the platform that we’re developing for. We fell in love with the Mac and with the iPhone, and now we want to contribute to that platform.

And it turns out that it’s really hard to do. You can’t take a night course to learn Cocoa, and no university’s computer science department (with rare exceptions) is going to spend much time on Objective-C. There’s nothing (yet) mainstream about Cocoa, compared to the enterprise dominance of, say, Java and Windows. And to my unending dismay, there’s only a couple places you can really get training (Big Nerd Ranch and Pragmatic Studio are the ones I’ve found).

Ultimately, the only way to learn this stuff is to teach yourself. And it’s really, really hard. For many people, even experienced developers have a devil of a time figuring out how to work this thing. There are paradigms at work that are unique to Apple’s development environment — good things, to be sure, but damned different. Learning Objective-C, while not a total cake-walk, was the easy part. Learning about design patterns, delegates, KVC, memory management, Core Data… the entire Cocoa framework. Not easy. Take it from someone who has been trying to learn for years.

But for those who have learned, there’s a common bond. These are the people who have demonstrated a remarkable mental acuity: an ability to stay motivated, and to stay on task. To ship. They’ve learned something because they wanted to, dammit. They felt it was the right thing to learn. They value elegance in both code and in interface design. They understand the beauty of computing, and they want to bring a small piece of it to life on their own computer.

So what Steve Streza is expressing, is this community of autodidactic, aesthetically-minded, highly driven people, who have something quite rare in common: this platform, this mountain that we’ve all been climbing. And without doubt, we help each other up that mountain, and that breeds a community that actually works, and that engenders mutual respect.

So that’s why. And now, in poor imitation of the best of those people, I will attempt to join them on that mountain, one misguided line of code at a time.

Insert Obligatory Year in Review Post Here

I’ve been feeling more contemplative than usual in the hours approaching the flip to the new year. Perhaps it’s the combination of my various Twitter homies making year-end observations, and the fact that so much is in flux right now for me. So I’m going to bloviate a bit over what happened in 2010, as much to help me make sense of it all and to put myself on track for next year.

The Business Angle
On the face of it, my web development business did extremely well in 2010. The year before had been difficult, though it ended well enough. But after several years of no growth, sales this year went up quite a bit in 2010, mostly owing to a simple action: I asked for more money for my work, and I got it. That’s a good takeaway for anyone in this business. If you’re not getting mass complaint about your rates, you’re leaving money on the table.

Screen shot 2010-12-31 at 3.10.56 PM

The extra cash didn’t seem to come in as handy, though, owing to a larger and more systemic issue: I just haven’t been getting paid on time. Clients in 2009 and 2010 had far less trouble holding out on me than in previous years, and it’s been grating at me more than anything else in my work. Programming requires focus more than anything, and it’s been consistently difficult when you have to worry about whether you can pay the mortgage. And I truly did spend hours and sleepless nights wondering how I could extract the cash from these reticent clients.

It got to the point where I was seriously considering a career change. The stress of having to manage the business was starting to overwhelm the incredible benefits of working from home and flexibility. It got to the point where I started looking at job postings. Maybe, just maybe, there’d be something that would both let me continue to enjoy the freedom of my current life, while providing a steady income.

I found such an opportunity. I can’t really talk about it yet, because it’s a startup, but I’ll say this about it: I’m now employed with them full-time, I work from home exclusively, and I’ve arranged to maintain my existing business. That latter move was made possible by the acquisition of a contractor, who has proven to be absolutely amazing: very skilled, very talented, and moreover, totally reliable. I can’t enthuse enough about what a difference it makes to have this kind of talent at my disposal. My business will almost certainly shrink in 2011, but this beats shutting it down altogether. Best of all, my clients haven’t noticed a difference, except for the mentions I make in our emails about my “team”. That’s not a bad feeling to have.

Personal Goals
I’ve always been burdened by what I call “crazy ideas” — those business ideas that end up going nowhere. I try to find projects that combine my strong web development powers, with my long-term goal of becoming a Mac/iOS developer, with a desire to become unnaturally wealthy.

As it turns out, I’ve got a long way to go.

I began last year with this great idea for a backup and versioning service for writers. Called PageSquirrel, it was essentially a web-based service that died almost as soon as it got into the testers’ hands. Dropbox was just becoming well-known at that point, so it seemed I’d been a little late to the party, and so I let it go.

I also joined one of my clients in creating a group-buying site (like Groupon) called WebPiggy. In the year that’s been around, it has done very modestly, while Groupon and others have literally exploded in size and reach. While we get by with modest resources, it seems unlikely to take off in a big way without a change in direction and commitment.

I wrote a book! It was a ton of work to produce Web Development with the Mac for Wiley, but seeing an actual box of real books arrive was a thrill, and one I’ll remember for the rest of my life. But the fact is, sales have been miserable and it looks like this book will join the legion of technology books that sink into obscurity, forever part of the Long Tail. So the book is bittersweet.

In the same vein, I met another personal goal at about the same time as the book launch: I wrote and published my first iPhone app. Code for iPhone and iPad lets you view the source code of any web page. It was a great moment, having published iOS software. And while I wrote the app with no expectation of reward, I was still disappointed by the extremely poor sales. Let’s face it: there’s not a big market for web page source code viewers. An early request from the enormously popular John Gruber to see the app could have led to a huge breakout win for the app. But his silence after getting a promo code said everything about the quality of my software. The pennies I’ve made on it haven’t inspired much confidence in my ability to make money on the app store, but the experience was worthwhile.

A few months ago, I started thinking seriously about another project. It’s a Mac app that I plan on pushing out to the Mac App Store. This plan addresses the weaknesses that I found in my first project, so it’s with my usual (naive? idiotic?) hope that I proceed with this new plan.

Looking Forward
So 2010 was a funny year: I ostensibly met a lot of long-term goals (best sales ever, book published, app produced), but it netted me so little that I wonder what the effort was for.

At the same time, I have new opportunities, both with a brilliant new startup, and with my own ideas in my spare time. As with any of our lives, stay tuned to see how this crap turns out.

The Conundrum

Apple announced the new MacBook Air this week, and as of today, they appeared in my nearest (albeit not quite local, per se) Apple Store. As someone long fascinated by the MBA, and who also will be upgrading his 2-year-old 15-inch MacBook Pro in January, I decided to have a look.

The new Air comes in an 11- and 13-inch version, and as I walked into the store, it was the smaller one that happened to be available, so I sidled up and started to play. I was immediately struck by how small it is. The physical size, of course, but also the display resolution. You don’t really get a sense of how diminutive the Air is until you close it and hold it in your hand. This machine is a veritable sliver of aluminum.

It was very snappy to use. Apps opened right away, responsiveness was quite excellent, no doubt owing to the flash memory. I played 1080p video from Apple’s trailers site, and it used about 45% of the CPU; the machine barely got warm. Flash video was a different story: on Youtube.com I watched a 720p video stutter occasionally, and the CPU took 150% between Flash and Safari. In other words, it was exactly as you would expect on a Mac.

I opened the brand-new Word 2011, and it was available almost immediately. I have the previous version myself, and I dread using it because I don’t want to wait for it to start. This was a real revelation. But once open, you can see that the app is kind of a joke on a screen of this size. With the Dock visible at the bottom of the screen, and that grotesque Microsoft Ribbon taking up a ton of vertical space at the top, your document is a postage stamp in the middle. If you switch the view to Draft mode, and hide the Ribbon, it becomes much more usable.

On the other hand, I downloaded and installed Coda, Transmit, and played with Photoshop Elements. You know what? They look pretty darned good on that screen, and worked without compromise.

The 11-incher has a resolution of 1366×768 — the first 16:9 display I believe Apple has produced. Despite most apps working well, I think you really feel cramped with such a short display.

But when I closed that MacBook Air and held it in my hand, it was wonderfully compelling. All that computing power in such a slim, svelte package.

The 13-inch Air was much more convincing as a primary computer. It has more oomph than the smaller one, but its display resolution is a delightfully uncompromising 1440×900 — exactly the same as my current 15-inch MacBook Pro. Of course, the high resolution of this display means that everything on the screen is smaller. My eyes aren’t getting any younger, but they’re still good enough to read it comfortably. But shortly after, looking at their 15-inch MacBook for comparison, I was shocked — shocked! — at how big things looked on that display. It was a dramatic difference in size.

So what do I think of these machines? When Steve introduced them on Wednesday, he suggested that all their computers would be like this down the line, and I can see what he means: this form factor is clearly the future of portable computing. The 15-incher (and definitely the 17-incher) look clunky, bulky and archaic.

We have always been asked to give up power for portability, and the equation remains unchanged. But today’s less-powerful computers are probably more than enough for most users. I’m certain that my Mom could probably get by with an iPad; my wife could easily get by with an Air; but could I?

Putting on my Vulcan hat for a second: In my objective analysis, the 11-inch display is simply too short, and I would probably chafe against that repeatedly. The performance on it was quite brilliant, but I would like to see some metrics from reviewers such as Macworld.

The 13-inch model was very, very compelling. For just a bit larger than the 11-inch model, you get a display that I already know I’m comfortable with in terms of pixel resolution. It comes with a faster processor, and critically, the larger flash capacity (256GB in the upgraded model).

On paper, trading in my 15-inch MacBook Pro for a 13-inch Air would seem ridiculous; the specs suggest I would be losing performance. But raw performance isn’t really an issue anymore; computers are “fast enough” for so many of the things we do with them. What you get instead, with the Air, is a feeling of absolute portability, the sense that it could effortlessly slip into any place you need to use it. It shifts the power of computing into the space that an iPad or netbook would occupy. I could take an Air to my coffee shop, and it would be so much easier to handle.

And yet, I could bring that Air back home with me, plug it into my 24-inch Cinema Display, and still get an uncompromising desktop experience.

So it’s definitely a conundrum. Luckily, I have a couple months to make up my mind!

When the client is in the wrong ballpark

I took a call today from a potential new client. As with many such interactions, there’s always an underlying tension. They want to know, “can I afford this guy?”, while I want to know, “can they afford to pay what I’m worth?” Unfortunately, one of the chief struggles in my business is separating one kind from the other.

I’d spoken with this client last December. The general site had been outlined, and she needed to get her ducks in a row before moving any further. A promise to call back “in a week or two” turned into almost seven months! When she called out of the blue today, I didn’t feel bad asking her to bring me back up to speed on who she was.

We spent a good half hour talking about her site and the scale of the job. We were doing the dance. I was aching to get to the part where I could gauge her spending tolerances, while she was just trying to sort out whether I was able to accomplish what she needed to do.

At last, we came to the deciding issue. One part of the job called for an email marketing system. I advised that she look into a solution such as Campaign Monitor or MailChimp, two services that provide brilliant marketing tools, and are dramatically affordable (to say they make it up on volume would be an understatement!) — not to mention, easily integrated into a web app using their APIs.

“I have looked at MailChimp,” she said, “but I didn’t want to spend that much.”

That sound you heard around 2:30 pm today was my heart sinking into the depths of my black, black soul.

In the subsequent clarification, I told her that what we were talking about constituted about $3500 – $5000 worth of work. Turns out she had a budget of about $500. I politely suggested that if she decides to reconsider her budget, I’d be happy to help her out, but until then she might want to consider other options.

After hanging up and taking a moment to utter a curse or two for the wasted time away from a tight deadline, I was left with a sense of powerlessness. On the one hand, there’s no doubt that I was dealing with someone who simply didn’t understand the scope of the work she was asking for. On the other hand, it’s perfectly understandable that these kinds of misunderstandings occur. After all, application development is a non-trivial undertaking, and it’s a black box to those who don’t practice this particular dark art. I get the feeling that clients assume I simply configure a few check boxes, and boom! the site is live.

But that is entirely not the case. As I’ve been learning more and more of late, developing web sites is almost never a simple matter. As soon as you go beyond a simple, static five page site, you’re in a land where you need professional help. This client knew Dreamweaver, but was of course completely helpless considering server-side functionality, e-commerce and email marketing integration. That stuff takes specialized expertise, a great deal of time spent educating, working with third-party vendors, developing, testing and deploying. And then, after those months pass, and the invoice is submitted, there are the requisite months of waiting to get paid!

It’s a difficult business, and I feel quite strongly that clients don’t understand it. So if today’s experience has taught me anything, it’s that perhaps we should be looking for ways to educate our clients on the realities of this kind of work. It’s not an easy job, but i think it would go a long way towards avoiding uncomfortable phone calls.

A Standing Offer

In the 2000 movie High Fidelity, there’s a scene where Barry (Jack Black) receives a response for a poster he’s put up in the store. The poster is a wanted ad looking for “hip young gunslingers”; a guitarist who is “into” four particular bands. Although the scene isn’t foreshadowed, we come to understand that the poster has been up for a very long time, and that this is the first response Barry’s had for it.

It is in that spirit that I write this post; it is my own standing offer looking for the right partner.

After three years of working as a solo web developer, I’ve come to realize that I will never achieve greatness alone. I’m certainly getting by, to be sure, but I now understand that true success can only come with the contribution of a complementary skill set.

I’m a big fan of the podcasts done by Dan Benjamin. His show, The Pipeline, is my favourite, wherein he interviews fascinating, successful people in the web, Mac and general tech sector. As I listened, these people explained their success as a matter of having the right product, or working hard, or meeting the right people. But what they didn’t dwell on was something they all seemed to have in common: a partner who helped them drive the work forward, who did what they could not, who shared their vision to deliver something worthwhile.

To me the equation is pretty simple: solo developers achieve modestly. Partners can take on the world.

Which is why I am looking for the right partner. Someone who will bring the same enthusiasm as I have to the development of something truly great. And by “something”, I’m referring to developing something for the Mac and/or iPhone.

Let’s start making lists. Here’s what I would bring to a partnership:

* A bunch of (cheap) ideas
* Junior-to-intermediate coding experience for Mac and iPhone (I have one app in the App Store)
* A great deal of web programming experience (PHP/MySQL, Ruby on Rails)
* Design experience, including award-winning logo design
* User interface design accreditation
* A persnickety eye for detail
* Great knowledge of the indie Mac developer community

And what would you bring? I don’t want to be absolutist about this, but here are some things I have in mind:

* Intermediate-to-advanced coding experience for Mac/iPhone
* Energy and optimism
* A love of technology
* A desire to make something great
* A nagging notion that a partner would help realize your dreams

Just as Barry’s gunslinger respondent  had to be “into” some particular bands, you should probably admire these companies:

1. Panic
2. OmniGroup
3. Rogue Amoeba

These are guys who stand for terrific, leading products, developed with care and an eye for detail. That’s what I want to do as well.

As I said at the top, this is a standing offer. I don’t expect the right person to jump out right away. I just want to put the word out. If this isn’t you, take a second to think who it might be, and please forward this along. From time to time, I’ll tweet the link to this post again, and see if anyone’s circumstances have changed.

Who knows? One day, out of the blue, this poster will be torn off the wall and placed in front of me. I’m looking forward to that day.

Want to talk? Email me: aaron AT vegh DOT ca.

Market Realities on the App Store

Much digital ink has been spilled over the economic and social ramifications of Apple’s App Store. On the face of it, the App Store is a revolutionary platform connecting the users with its developers, doing so with an unprecedented degree of closeness. And while many developers have chafed (to put it mildly) against the fact that a capricious Apple stands part-way between these two parties, there can be no doubt that the vast majority have not suffered for it.

I am one such developer. Around this time last year, I decided that I would, once and for all, start and finish an iPhone app. My goals were modest — learn enough Objective-C and Cocoa Touch to get a useful, working app on the store. I picked an idea that was equally modest: a source code viewer to help patch a deficiency of Apple’s Mobile Safari browser.

While the initial proof-of-concept — pulling source code from a web page and displaying it in an iPhone app — proved trivial, building a useful, working app around it ended up taking many months, punctuated by several periods of self-loathing, frustration, re-reading of documentation, commiserating with fellow developers, or working on my book.

But I finally did it. As of late April 2010, Code is now available on the App Store. And insofar as I wanted to meet a particular set of goals, I would have to say that I succeeded brilliantly. I now grok iPhone programming, to an extent that I am confident that I could learn the bits of the API that I haven’t used yet. When the iPad was imminent, I had the confidence to delay my launch for a couple weeks so I could prep the iPad version, and the code for that platform was cleaner than the iPhone version.

Having done all this, there have been unexpected lessons from my experience on the App Store, and it’s these that I want to share today.

As you know, most apps on the store are set at bargain-basement prices: mostly 99 cents. The iPad lifted the trend to a small extent, but anything over $5 appears to be reserved for apps with near-desktop-like functionality. Consequently, I priced Code at $1.99. I was originally planning to go with the herd at a buck, but with my app available as a universal binary (it works both on the iPhone and iPad), I figured the extra cost was justifiable.

With over a month’s worth of sales under my belt, I realize how laughable my concern over pricing has been. There’s really only one way to adequately express how little money a developer can make, and that’s to show the numbers. I don’t know of anyone else who’s done this, but as you’ll see, I gain little from keeping it a secret. Here, for your education and amusement, are my sales for the month of May (which hasn’t ended yet, but hey, you get the idea):

Date Sales Revenue
2010-05-25 5 $7.00
2010-05-24 1 $1.40
2010-05-23 3 $4.20
2010-05-22 4 $5.60
2010-05-21 2 $2.80
2010-05-20 3 $4.20
2010-05-19 1 $1.40
2010-05-18 1 $1.40
2010-05-17 1 $1.40
2010-05-16 1 $1.40
2010-05-15 0 $0.00
2010-05-14 0 $0.00
2010-05-13 0 $0.00
2010-05-12 1 $1.40
2010-05-11 0 $0.00
2010-05-10 1 $1.40
2010-05-09 0 $0.00
2010-05-08 2 $2.80
2010-05-07 4 $5.60
2010-05-06 1 $1.40
2010-05-05 1 $1.40
2010-05-04 2 $2.80
2010-05-03 2 $2.80
2010-05-02 3 $4.20
2010-05-01 0 $0.00
Totals 39 $54.60

The great power and promise of the App Store is that it exposes you to the many millions of iPhone users. The allure for the users is that they get access to “The Long Tail”. Well, one thing they never talk about is how being a creator supplying the Long Tail is a thankless, poverty-inducing task.

While the media and Twitterati focus on the smash hits of the iPhone world, where indeed, you could make millions, it’s equally clear that the vast majority of developers could never make more than an hour’s wages in a month. And be told that their app is too expensive, to boot!

I want to be clear right now: I’m not bitter. Honest! I never planned to become independently wealthy off Code. But seeing these numbers makes it clear that developers need to do some hard, honest math when they consider pricing their apps.

When you price low, you need to sell more. While it’s easy to tell yourself that pricing with the average will help people buy your app, it’s harder to face the reality that most people are simply not going to see your app to make the decision anyway. After Code launched, I went through the motions, sending promo codes to every review site and blogger I could dig up. I ran the gamut of blogs, seeding any relevant forum with a mention of my app. I have Google search notifications and Twitter notifications, letting me know when anyone is wondering about viewing source code on the iPhone, so I can jump in with a helpful hint.

The fact is, there are too many others doing the same thing; consequently, my app hasn’t been reviewed, and likely won’t be. And given the numbers, yours probably won’t be reviewed either, nor mentioned by some influential blogger.

So, you’ve priced your app so you make a buck a sale. That means you need to sell at least 500 a month if you want to make it worth doing (your tolerances will be different, of course, but I’m just throwing out a number here). As you can see, I’m nowhere near 500 sales a month. We’re orders of magnitude away from that.

Moving on

Is that it? Abandoning the iPhone as the failure it so clearly is? Naw. There are certainly planned features that I may not have the time to implement for Code — as you can see, the economics make it hard to justify doing more than bug fixes at this point — but I’m not ready to say that the App Store isn’t worth it.

I’m not seeking limitless riches on the App Store, but I do want to prove that with intelligence (and the right idea) one could make a good living.

As I began by saying, much digital ink has been spilled over the App Store. One of my favourite opinions on the App Store was written a long time ago now, so long that I can’t remember who said it (hopefully you can help in the comments!). The essential point was that the economics of the App Store favour only two kinds of app: the “fart app” class of apps, that provide a very quick feature, and is quickly discarded as the useless trash it is. And the productivity app, which provides real depth, a set of features that will be useful in the long term. Only the latter apps, of course, can justify a higher price.

Code certainly belongs more to the latter category than the former. But when moving on to the next project, I have two goals in mind:

• Quality and utility first
• Priced to reflect the cost to make it

There is no step three!  I’ll be talking more about this project soon. Stay tuned.