iPhone Platform Quickies
- I made the jump from PHP to full-time Ruby on Rails between August and December of 2004. RoR was a breath of fresh air compared to the grind of PHP at the time. Code was beautiful, coding was fun, and there was a lot of excitement and tons of new techniques to learn.
- Objective-C has not provided that same feeling. The excitement is there, it’s fun to solve problems, but damn the language is hardcore compared to Ruby. Note that I first cut my teeth in C (even built a webapp using cgic back in 1998-99), so picking it up again wasn’t *too* difficult. I’m far from a master, and there are tons of new patterns to learn. To be blunt, my code is an embarrassment. But I can ship. :)
- Objective-C has made me more picky about performance in my Ruby code. It’s easy to get lazy with Ruby.
- With Ruby, I’d take an idea and start coding on it rather than planning it out from 0 to finish. The cost of change is cheap. I’ve found the opposite approach works best with Objective-C.
- The community of iPhone developers is basically non-existent. The Ruby on Rails community was great from the beginning. This is because of the NDA.
- There is a lot of crap in the App Store. My first app falls in that category. There are also some pretty sweet applications that people have put a lot of time into..
- When exploring the Facebook Platform, I kept waiting for the “second wave” of applications to hit. The business/productivity apps, rather than silly games. It never came.
- You’re probably not going to be able to eek out a living selling .99c applications. While there have been a few “hits” on the iPhone platform, don’t count on it.
- I do believe that we will (and have already) seen some awesome business/productivity apps for the iPhone. It’s a different market, and should be treated as such. With that said, even 12 year olds are critics when it comes to iPhone applications.
- Price your application appropriately. Don’t undervalue it. Don’t be a jackass and come out with a free version of something else already in the store. You’re not going to make friends doing that, and this is a small world.
- I haven’t quite figured out unit testing for the iPhone, so I don’t have an opinion on that yet. If someone wants to help me out, send me an e-mail.
- Spend some time browsing the various Cocoa sites. A lot of the frameworks out there for things like database access, JSON interpretation and XML parsers already exist and do work on the iPhone. The baked-in XML stuff is okay, but there are better ways to do it with less code. These frameworks will save you time and make your life easier. I made the mistake of spending 3 hours working with the C sqlite3 APIs, only to rip out that code the next night after finding out about pldatabase. That could have been prevented had I just asked what people were using. Oh, wait. NDA.
- If you have an existing web application, you need to be thinking about how the iPhone will integrate with what you do. This is going to be bigger than it is right now, and the hype level will continue to grow. Yes, we’ll see a mini-bubble. Just hang on for the ride and enjoy it.
- If you have an existing web application, the iPhone is a great way to bring in another revenue stream. Having multiple revenue streams *is not a bad thing* AT ALL, especially with where the ad economy is headed.
- If you’re not a developer and are trying to find an iPhone developer, good luck. The good ones are all doing their own thing, and the bad ones are all wanting to do their own thing. That’ll change eventually, but for now it’s a tight market. I’m seeing 2-3 contracts/day float by, unfilled. (Note: I’m definitely not on the market. Having too much fun where I’m at.)
- Right now it’s about two things: 1) Being the first to market. 2) Getting a lot of stuff out there and finding out what works. Spaghetti on the wall.
- Don’t expect Apple to be your friend.
- Don’t expect things to happen quickly. My first app was submitted on August 29th, approved on September 5th, but not ready for sale until September 14th. I had to wait on my financial contracts to be approved by Apple. There is currently a 4 week waiting period for those.