HC Gilje has posted an excellent guide to serial communications with external devices using the iPhone. There are lots of resources out there for setting up serial devices, but the landscape is fragmented. And as always, Apple is not exactly falling all over themselves to let you hook up peripherals. As Gilje succinctly puts it:
Apple has not made it easy to let the iphone communicate with external devices. Basically, you need a jailbroken phone to do anything.
If you’re looking to make your Arduino talk with the outside world, you have lots of options. A cellular modem can give you the most flexibility in terms of where and how you can send messages or transfer data. Cell modems can be finicky and difficult to work with, but some are easier than others.
Although the Telit GM-862 has been superseded by other modules in Telit’s GSM lineup, it’s still relatively easy to find, easy to work with, and inexpensive. Alexander Weber’s description of how to connect a GM-862 to the Arduino’s serial bus and his sample library code are largely applicable to many cell modems. Most units still utilize some form the ancient Hayes AT command set, so the commands used in Alexander’s project can be adapted elsewhere with little modification.