title: Objective-C Documentation Generators: HeaderDoc vs. Doxygen vs. AppleDoc
body: <p>I need to implement a documentation generation solution for my workplace and have narrowed it down to the three mentioned in the title. I have been able to find very little information in the way of formalized comparisons between these solutions, and I'm hoping that those of you with experience in one or more of the above can weigh in:</p>
  
  <p>Here is what I have been able to glean from my initial pass:</p>
  
  <p>HeaderDoc Pros: Consistent with apple's existing docs, compatibility with making apple docsets<br>
  HeaderDoc Cons: Difficult to modify behavior, project is not actively worked on, many have switched away from it (meaning there must be something deficient, though I can't quantify it).</p>
  
  <p>Doxygen Pros: 
  Active support community b/c of wide use base, very customizable, most output types (like latex etc)<br>
  Doxygen Cons:
  Takes work to make it look/behave consistent with apples docs, compatibility with apple docsets is not as simple</p>
  
  <p>AppleDoc Pros:
  Looks consistent with apple's existing docs, compatibility with making apple docsets,<br>
  AppleDoc Cons:
  Issue with documentation of typedefs, enums, and functions, actively being developed</p>
  
  <p>Does this sound accurate? Our desired solution will have: </p>
  
  <ul>
  <li>Consistent look and feel with apples objective-c class reference</li>
  <li>Ability for option-click to pull up documentation reference from within Xcode, and then link to the doc (just like apple's classes)</li>
  <li>Smart handling of categories, extensions, and the like (even custom categories of apple's classes)</li>
  <li>Ability to create our own reference pages (like this page: Loading… that can include images, and be linkable from generated class references seamlessly, like how apple's UIViewController class reference links to the linked page.</li>
  <li>Easy to run command line commands that can be integrated into build scripts</li>
  <li>Graceful handling of very large codebase</li>
  </ul>
  
  <p>Based on all of the information above, are any of the above solutions clearly better than the others? Any suggestions or information to add would be extremely appreciated.</p>