a user of the library expects it to do without having to look up the documentation. • Consistent: The code for the Android library should be well thought out and should not change drastically between versions. Follows semantic versioning. • Easy to use, hard to misuse: It should be easily understandable in terms of implementation and its usage.