Is iPhone app development all done on some kind of desktop computer emulator, for ease? Do I need an iPhone, but with some kind of extra hardware to upload my code as I debug? How does it work? What hardware/software do I need?