How do I go about designing API for my Library? Gosh where do I start? If you are asking these questions, then start with Krzysztof's Framework Design Guidelines Digest.

Here is a high level overview of the process:

DG1 DG2

 

DG3   DG4

1) Ok, first list out all the feature areas (f1, f2, f3, ...) for your applications.  To begin with pick a feature that you want to drill down on.

2) List out the TOP SCENARIOS to support that feature set.

3) Now slip into end user (developers) shoes and ask yourself - What would the end users code look like when implementing my scenario using my API?

4) Dump your thoughts by writing some sample scenario code that end user would write.

5) Now you have a starting point.  Design you API based on the sample code that you just wrote.