What does it take to write a good Arduino library?

Arduino library should be easy to use, well documented, and covered with unit tests. How to do it?

Image by Daan Lenaerts from Pixabay

Writing a decent library is not easy. Opinions on how such a library should look like, vary among developers. I think that a robust library should have detailed documentation, and developers should cover it with…