Native application iPhone development can be done with three methods, only one allowed by Apple for App Store:
1. Official development: Buy a Mac (or emulate one to run OS X) and develop with XCode. Must join Apple Developer program to download, must become Apple Developer (pay) to sell.
2. Jailbreak Development: Jailbreak, use Cydia to install compiler environment, use SFTP/SSH to develop applications, compile and run on iPhone.
3. Jailbreak Development: Build Mac OS X, Linux or Cygwin toolchain for 3.0 development (see
Upgrading the iPhone Toolchain - Jay Freeman (saurik))
All of these methods use the native iPhone programming environment, which uses the Objective-C programming language and the Cocoa derived UIKit framework.