Although Xcode is all you really need to get started with iOS development, there are a lot of useful tools that can make your life a lot easier.
When you’re writing code, Accessorizer can eliminate a lot of the drudgery. You usually find yourself creating lots of properties, which involves declaring an instance variable, adding a @property declaration, and @synthesize in your implementation file. With Accessorizer, you simply select the instance variables, hit a hotkey, and copy the generated code into your source. For example, if you have the following ivars:
NSString *title; UIView *aView; NSInteger count;
Accessorizer will generate the property declarations & implementations, which you can customize. In the simplest case, you’ll get this:
@property (nonatomic, copy) NSString *title; @property (nonatomic, retain) IBOutlet UIView *aView; @property (nonatomic, assign) NSInteger count; @synthesize title; @synthesize aView; @synthesize count;
You can also have it generate init & dealloc methods and accessor methods.
For source control, you’ll probably want something more advanced than Xcode’s built in source control, especially if you’re still using Xcode 3.2.x. Even with Xcode 4, it only tracks files included in the project, not related files such as artwork & documentation not included in the project.
For Subversion, I like Versions. After looking at every Git GUI client, the only one I found that I like is Tower. For a file comparison & merge utility more advanced than Apple’s FileMerge, I like Changes. It gives a lot of display options and is also really nice for comparing directories.
If you’re using Cocos2D, you’ll need a few utilities to generate sprite sheets, textures, and particle effects,
One tool that’s absolutely essential is a sprite sheet generator such as TexturePacker. It takes a collection of single images and packs them into a single image file with the most efficient arrangement along with a plist that tells how to access each piece. TexturePacker is available in several free & paid versions.
In many apps, you’ll use some particle effects such as smoke, fire, and explosions. Particle Designer makes creating them fun & relatively easy with a large online collection of shared emitters. The plist file it generates can be used with a single line of code.
If you’re using a tile map, Tiled is a nice, free tile map editor.
If your app uses the accelerometer, you’ll need iSimulate to test it in the simulator. iSimulator consists of two components: an iPhone app and a library you include in your simulator builds. When you run the iSimulate app, all movements & multi-touch events will be sent to your app.
Finally, you’ll need to create a nice demo video for your app. Sound Stage is a great way to record videos from the simulator. It can record either the app content only, the app running inside the iPhone, or a custom background. You can also use iSimulate with it.