The Apple Operating System (iOS) is an intense and rapidly changing technology, making the creation of iPhone applications profoundly complex.
It is not sufficient to trust your iPhone app to a developer who dabbles in iOS or works on the iPhone part-time. To create a successful iPhone app, you need a specialized team of programmers who are immersed in the Apple environment.
Developing an app for Android takes a different skill set than developing the same app for an iPhone. The languages and APIs for the two platforms are completely distinct. It is unlikely that you find someone who can alternate between programming for Android and programming for iOS, because proficiency in iOS takes dedicated practice. And now there’s even a third emerging technology for Windows mobile. Full-time attention is necessary to remain current on the bulk of new information being released for iOS, however, as source information for Apple is constantly being updated.
Apple makes documentation and training materials from available to registered developers on a regular basis. Other resources for keeping abreast of developments in iOS include 5by5’s podcasts, and Marco Arment posts development issues he encounters with iOS on his blog (Marco.org), and John Gruber (DaringFireball.net) has a blog in which he discusses new versions of iOS. StackOverflow is another useful online resource for solving problems with iOS. However, some programmers rely almost exclusively on the Apple documentation, because the development information changes so quickly.
When deciding who you are going to hire to develop your application, you first need to know what platform it will be created on. Many companies today are starting with an iPhone app, following with an Android version later. There are those companies (mostly start-ups), though, who want to capture as many eyeballs as they can, so they want to launch their app in as many platforms as possible. Some elements of how the app will function on these three platforms may be similar, but the implementation and coding will be completely different. This means you’ll need a company that has experience in all platforms and also has a development team comprised of Android, Windows and Apple specialists.