Apatite, which stands for
Associative
Perusal of
APIs
That
Identifies
Targets
Easily, is a tool for learning and exploring the Java 6 API. Apatite allows you to browse using associations, helping you find common classes and methods related to your query and aggregating information about various actions and properties.
Apatite is being developed as part of the Natural Programming Project in the Human-Computer Interaction Institute at Carnegie Mellon University.
(If you like Apatite, please check out our
other documentation tool, called Jadeite!)
[YouTube demonstration video coming soon!]
Apatite initially displays a single column containing the most popular items in five different categories: Packages, Classes, Methods, Actions, and Properties.
The larger an item's font size is, the more commonly it is used.
Clicking on the [+] sign of a category will expand that section to show you a longer list. Clicking the [-] sign will bring you back to the original format.
The column can also be filtered by a set of keywords by typing them into the text box at the top. Font sizes are automatically adjusted to reflect
the relative popularity of each item.
When you click on an item, a new column appears which only contains items that are associated with your selection. This column works in the same way as the first one, and items with larger font sizes are the most relevant.
As you traverse through the interface, new columns are organized to display the items it thinks are most relevant based on all of your previous selections.
Hovering over the ? button will display information about a particular item. Clicking on it opens up that item's full documentation in a new window.

Now,
click here to try it!
Daniel S. Eisenberg, Jeffrey Stylos, Brad A. Myers. "Apatite: A New Interface for Exploring APIs"
(under review)
-----------------
Jeffrey Stylos, Daniel S. Eisenberg,
Brad A. Myers. "Apatite: Associative
Browsing of APIs." Submitted for publication.
Abstract:
Learning how to use new APIs can be difficult, in
part because they are large and can be difficult to explore
effectively using existing tools. Current object-oriented
API documentation is usually organized by
class, however programmers sometimes have a desired
action or method in mind without knowing which class
it might belong to. Programmers using existing API
documentation often struggle to determine which of an
API’s many classes and methods are the important
ones to pay attention to, spending considerable time
looking at obscure and irrelevant parts of APIs as a
result. To help with these problems, we designed Apatite,
an API browsing tool that lets programmers
browse by association—investigating which packages,
classes, methods go with others. Apatite also adds
browsing by actions and properties, and uses statistics
about the popularities of items and how often they are
used together to provide weighted views of the most
relevant items. We used an iterative design process to
help tailor the tool to programmers’ needs, and a preliminary
user study suggests that it offers advantages
over existing tools.
Download:
(pdf)
This work was funded in part by a grant from SAP, in part by the National Science Foundation, under NSF grant CCF-0811610, and as part of the
EUSES consortium (End Users Shaping Effective Software) under NSF grant ITR CCR-0324770. Any opinions, findings and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily reflect those of the National Science Foundation.