As the creator and lead developer of doxygen, let me also introduce my perspective (obviously biased, -)
If you're looking for a 100% faithful copy of Apple's proprietary documentation style, then AppleDoc is the best choice in this regard. With doxygen, it will be difficult for you to find the exact same kind, so I would not recommend a try.
Regarding Xcode docsets; Apple provides instructions on how to install this using doxygen (written from the time Xcode 3 was released). There is also a great reference for Xcode 4 on how to integrate doxygen.
Starting with version 1.8.0, doxygen supports Markdown markup , as well as a large number of additional markup commands.
With doxygen, you can enable documentation on the main page (@mainpage), as well as on subpages (using @subpage or @page). Inside the page, you can create sections and subsections. In fact, the doxygen user guide has been completely written using doxygen. In addition, you can group classes or functions together (using @defgroup and @ingroup), and create custom sections within a class (using @name).
Doxygen uses the configuration file as input. You can create a template with default values โโusing doxygen -g or use the graphical editor to create and edit it. You can also pass parameters via doxygen through a script using doxygen - (see Question 17 in the FAQ for an example)
Doxygen is not limited to Objective-C; it supports a wide range of languages, including C, C ++, and Java. Doxygen is also not limited to the Mac platform, for example. It also works on Windows and Linux. Doxygen's output also supports more than just HTML; you can create PDF output (via LaTeX) or RTF and man pages.
Doxygen also goes beyond pure documentation; doxygen can create various graphs and charts from the source code (see dot related parameters). Doxygen can also create an overview and syntax highlighted version of your code and cross-reference documentation (see source browser ).
Doxygen is very fast for small and medium sized projects (diagram generation can be slow, but at present it runs on several processor cores in parallel, and graphs from one run are reused in the next run). For very large projects (for example, millions of lines of code) doxygen allows you to split the projects into several parts and then link the parts together, as I explained here .
A good real example of using doxygen for Objective-C can be found here .
The development of doxigen is highly dependent on user feedback. We have an active mailing list for questions and discussions and an error tracker for both errors and feature requests.
Most doxygen users use it for C and C ++ code, so naturally, these languages โโhave the most mature support, and the result is more tuned to the functions and needs for these languages. However, wishes and problems with other languages โโare also taken seriously.
Please note that I do almost all doxygen developments and most tests on Mac.