A package of better Xcode templates for iPhone and Mac
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


The templates that ship with Xcode are not the greatest. Some of them are inconsistent
and don't enforce good coding standards (e.g. missing a dealloc method). Other templates
which would be useful just flat out don't exist (e.g. an NSOperation subclass, or a
protocol header file). This project aims to supplement or replace the built-in templates
for Xcode to speed up coding and improve the quality of code.

From your terminal:
1. mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/{Project,File}\ Templates
2. git clone git://github.com/amazingsyco/better-xcode-templates.git
3. ln -s $PWD/better-xcode-templates/Templates/File\ Templates
   ~/Library/Application\ Support/Developer/Shared/Xcode/File\ Templates/Better\ Xcode\ Templates
4. ln -s $PWD/better-xcode-templates/Templates/Project\ Templates
   ~/Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/Better\ Xcode\ Templates

Note: Do NOT simply git clone the templates into the template folders, as Xcode will
pick up all the cruft from the .git folder.

Coding Standard
All files will be processed by Xcode. The generated source files must produce consistent,
readable, commented code. The code must have these characteristics:

- Each file must have a comment block at the top describing the file.
- Each class must implement its superclass' designated initializer and dealloc.
- Stub methods must be organized by their purpose, class or protocol.
-- Each group must be organized by their class hierarchy, with protocol stubs following.
-- Each group must be prefaced by a pragma mark naming the class or protocol the methods
   were implementing.
-- Clusters of methods (such as relating to KVO) should be organized along the lines
   above, with a pragma mark.
- All method implementations should contain a method call to their super implementation
  if needed.
- All method implementations should contain a commented out stub line that will signify
  where to insert their code. 
- All comments must be in the form of two slashes //, and none using the /* */ form. This
  will allow developers to comment out large blocks of code as needed.

Wish List
- Different people want different things in their template. For instance, someone may
  want to include an implementation of observeValue:... for every class. Would be nice
  to have a template generator application (yeah yeah, very meta) which would make
  templates customized to the developer.