A couple of people have asked me to enumerate the five things which Apple needs to fix if my next phone is to be an iPhone, so, in no particular order, here they are.
1. Open up development
I don't want to have to buy my applications via a single store. I don't want Apple to tell me what applications I can use, and which ones are “too dangerous” for me. I'm a grown up. I can make decisions like that for myself. People who want Apple to guarantee the safety of their applications can continue to buy from the App Store – I'd like the choice not to, without having to jailbreak my phone.
2. Stop trying to make me use iTunes at every opportunity
Don't get me wrong: the integration between iTunes and the iPhone gives me a lot of benefits. But it shouldn't be the only way that I can get music on to my phone. I'm not holding my breath on this one. If Apple is prepared to take legal action again developers who want to break the tie between the iPod and iTunes, what will it do to “protect” it's newest baby?
3. Give me a camera that doesn't suck
The iPhone was obviously designed by someone who hasn't used a cameraphone since some time in the 1990's. The quality of the iPhone's camera sucks. Badly. And that's before I start complaining about the lack of a flash.
4. And while you're at it, make it a video camera
Things like the Flip Mino are great, but I really don't want to have to always carry around a little video camera. There's no reason why I should have to, either: other phones have proved that you can do good quality video without compromising on other areas of the design.
5. Support Google applications natively (or let Google do it better)
Yes, I know that you want me to keep paying for a MobileMe subscription. And I probably would – but I'd like the option to sync my calendar and contacts to Google Calendar and contacts, please. Yes, I know I can do it via NuevaSync (which is great), but that means using Exchange, and I can only use one Exchange account on the iPhone… and it just feels messy doing it that way. If you don't want to write Google sync support, let Google deep into your APIs and do it themselves.