Thursday, April 14, 2011

iPhone App Development

Games for the iPhone and iPad have been very popular in the last few years, so for those looking into developing a game for an iOS platform, here are some concepts to think about.

-The language used in iOS development is Objective-C with Cocoa. Whether or not you like this language, there are quickly increasing number of tutorials of how it works.

- In order to develop iOS games, you'll need a Mac (sorry PC-users) and Xcode, the IDE for creating iPhone, iPad, and Mac applications. Xcode is a great IDE that comes with an interface builder and one of the best developer documentations around. You can either buy it from the Mac App store (about 5 bucks at time of writing) or you can download it for free if you are a member of the iOS or Mac Developer Program (which is $99 a year and allows you to distribute the game through the store).

- iPhone App and Game Development relies heavily on the Model-View-Controller software architecture, which divides programs into three parts:

-- Models- These are abstractions of data or data structures. For games, some examples of this would include characters, items, enemies, and levels.
--Views- These are the physical representation that the user sees. The art and animations of what was listed above are good examples of views as well as the menus and help screens.
-- Controllers- These link the actions of the user to the program. The models and views can be changed based on what the controllers detect from the users.

The controllers is probably the hardest part to grasp for a new iOS developer. It is a lot more than writing code for when a player presses a button. Everything on the screen inherits from the UIView class, and each of these can have a ViewController. If the player rotates the device, a ViewController is responsible for managing how the screen flips or adjusts. If the player presses on an enemy, the enemy's ViewController reads this and alters the enemy accordingly.

This should be enough for a good start in developing for iOS.
Although this organization has members who are University of Virginia students and may have University employees associated or engaged in its activities and affairs, the organization is not a part of or an agency of the University. It is a separate and independent organization which is responsible for and manages its own activities and affairs. The University does not direct, supervise or control the organization and is not responsible for the organization’s contracts, acts or omissions.