Since Apple launched the iPhone in the US, people all over the world got their hands on it, such that today, there are a lot of people who use iPhones. It's an awesome piece of technology that can be purchased at an average price and incorporates touch technology with a big screen and compact curved form.
The touch screen can be touched by two different fingers at different places. iPhone also features a Global Positioning System so you can figure out where you are. It has the ability to detect movement in three dimensions, along with other features such as camera, address book and a programmable vibrator. So, the iPhone is more than just a phone. It operates on a 620 MHz ARM CPU with reduced heating, together with a 128 MB DRAM and from 4 up to 16 GB of Flash memory. It uses an Apple OS X, built on Unix. The great news about the possibilities of the iPhone is that you can create your own applications aside from the ones provided. There is a released developer toolkit, iPhone SDK, that allows you to develop iPhone applications. There are two options: web-based applications and native applications. The web applications run on a browser by means of HTML, CSS, ASP, Java, .NET, Ruby or JSP, and the native ones run on the built-in frameworks provided by the iPhone development kit.
The language in which you write your code is called Objective-C, as implemented by Apple. It is an object-oriented language, so it features data and method encapsulation, inheritance and polymorphism which center themselves around Objects, accessibility and connections between them. This way, you can make buttons, views, windows, sliders and controllers to maneuver your information within the program and interact with it by means of events and actions.
Standard classes are available, but you can create your own classes that inherit something from the regular ones and make them interact in your project. The OS comes in four layers (Core OS, Core Services, Media, Cocoa touch), each layer containing the frameworks you can use for your application. The basic level of the Core OS contains the kernel software that deals with networking, threading, input / output and memory. The Core Services give you the frameworks for all applications, Media provides protocols for audio and video, and the Cocoa touch is the one that enables you to control events, windows and user-interfaces.
You have to use an Intel Mac computer with Mac OS X Leopard, and you must use the iPhone SDK, which is downloadable. The latter can test your application in absence of the iPhone device. Also, you have to register for program development at Apple.
Gaming applications for the iPhone have been already built. They use the motion sensor devices of the phone to steer race cars in racing games. Other applications use the Wi-Fi to connect you to the internet like a laptop or computer.
If you are interested in developing a mobile game or an iPhone application, you can look for an iPhone app development company on the Internet. Such companies can not be older than two years, but some have worked in the IT for much longer, so their expertise could be useful for you.