Just my take on the 'issues' with the iPhone and development.
There are lot's of articles and opinions flying around regarding the 'closed' system of the iPhone, and all the 'problems' with the model and environment so I thought I'd throw in my 2 cents in.
If you want to develop for the iPhone you basically have two choices right now. You can either sign up and become an Official iPhone developer with Apple, and paying the $100 fee that allows you to sign your iPhone applications, or you can work on the jailbroken iPhones and do basically whatever you want.
There are some advantages and disadvantages to each approach, first I'll just go over the Jailbroken option:
Advantages Jailbroken Development
1. You don't have to pay the $100 for Apple certificates.
2. You don't have to wait for Apple to review and approve your application, so you can write what you want, and distribute it however you want.
3. You can share tips and approachs on how to develop on the iPhone with other developers, just make sure you don't have too high a profile that Apple notices.
4. You don't have to share any profits you make on the apps you sell.
Disadvantages Jailbroken Development
1. You have to manage the distribution and sales of your application yourself, either using something as simple as paypal, or having a full blown e-store.
2. If Apple changes the API your app will break, and there's no guarantee that what you are using now will still be available.
3. You have to jailbreak your iPhone, and your customers will need to jailbreak their iPhone as well to use your apps.
4. There is no review process for applications, so your iPhone is vulnerable to malware and/or unstability.
5. You have to support installation and issues with your application directly with the users.
Advantages to official iPhone Development
1. Selling your application requires very little work on the developers point of view.
2. The API's you program against are supported by Apple and at this point are stable.
3. The customer base for non-jailbroken applications are much larger.
4. The customers experience is much simpler and more consistent, all the apps are installed and updated the same way.
5. Apple provides the direct support for getting the application installed on the iPhone, and provides a great feedback system for your application.
Disadvantages to official iPhone Development
1. Apple does review your app before making it available.
2. Apple could deny your iPhone application, although from what I've heard so far, none of the denials are a surprise.
3. If you have a hot-fix that needs to get pushed out, it still has to be reviewed before it's available.
4. There is still an NDA around almost all aspects of official iPhone development.
For me, the disadvantages are not things that I didn't know about coming in to the process. The advantages for Official iPhone development out weigh the choice of working on jailbroken iPhones.