Wednesday, February 11, 2009
I got bored with whatever it is I was doing last year and took a detour into iPhone land. The end result is a conversion of my BREW app, Rune Stone Reader, to iPhone.
Going through a complete iPhone dev cycle has taught me the following things:
1) I hate Objective-C
2) I love Apple
I'm sure Objective-C was really cool in the pre C++ '80s, but it really is a relic that should be put to death. Half of the iPhone SDK (OpenGL ES, Quartz) and various standard frameworks aren't even in Objective-C anyway.
It's too late now, Objective-C is too entrenched in the Apple Way. We will live with it forever. Luckily, you can still write the majority of your app in C/C++ with Objective-C reserved for the API calls.
In all honesty, it's a breeze to make GUI-based Cocoa Touch apps with Objective-C once you figure out how to structure everything. But I can't imagine doing any heavy lifting in a game with Objective-C.
Anyway--publishing an iPhone app to the AppStore after nearly a decade of BREW/J2ME development and distribution is a truly enlightening experience. The iTunes Connect portal is light years ahead of any developer extranet I've used in mobile. The publishing process is shockingly open and simple.
For the new generation where iPhone is the first mobile platform they're publishing on, they really don't know what it was like in the dark ages. Just the ability to edit the catalog description text of your app and have it show up in the AppStore is nothing short of a revolution. I'm serious.
Apple has done the impossible--pushed the carrier out of the equation and unleashed developer innovation on mobile. I never thought it would happen--which is why I'm so late to the party on iPhone (as were many of my fellow mobile old timers!). This opens up not only many software engineering possibilities, but also business development opportunities.
In ye olden days of carrier decks, it was impossible to predict whether your application would be approved for distribution. In many cases you had to blindly sink tens of thousands of dollars in development and QA to make an application that you thought might somehow randomly tickle the fancy of a catalog manager. But if you got approval (which was never concrete), you never knew when your app would launch.
This made it impossible to time an application launch with any kind of media buy or time-critical IP license (a movie launch, for instance). Plus, who would finance a project that could be prevented from distribution at any time due to the whim of a single person at a carrier for no particular reason?
With that said--there's still great money on carrier decks. If you can get on, it's still worth pursuing the opportunity. But the tide is turning--a lot of folks are doing the math and the overhead of QA, porting, and business development with carriers makes them suddenly unattractive when compared to competing in the free for all that is the AppStore. You might make less revenue lost in a sea of content, but there's also less overhead.
