When using the Messages app on iOS 5 with [iMessage](http://www.apple.com/iphone/built-in-apps/messages.html) enabled, you should be able to choose a name from your address book, and have it automatically convert from sending a text message (green) to an iMessage (blue) when the other party supports it:
For some reason, though, this iMessage auto-detect feature wasn’t working reliably for me — among the people who I knew for sure were on iOS 5, when I started composing a message, some turned blue* and some didn’t. I did some testing with my screenshotted friend Steven:-
* I realised my iMessage caller ID (Settings → Messages → Receive At → Caller ID) was set to my email address. When I changed it back to my phone number, auto-detect worked just fine. When I changed it back to my email, it went reliably flakey again.
* When Steven did the same, though, his phone could auto-detect for anyone, regardless of caller ID.
Turns out that Steven, who is insane, had added country codes in front of all his address book numbers. (WTF?!) So I tried adding a country code in front of a friend’s number, and _violins_*, my iMessage app could auto-detect even with my caller ID set to an email address!
I suppose this sort of makes sense: without a country code, the iMessage lookup server might not know where your recipient’s phone number is from, and doesn’t have your own phone number’s country code to fall back on as a source of information.
Anyway, possible fixes:-
* If you’re insane like Steven, add a country code in front of every single one of your contacts.
* If you’re lazy like me, switch to using your phone number as your iMessage caller ID.
* Nobody turned blue. Don’t call the cops.
** What? Violins are pretty surprising to me.