Delightful Delegate Design

When developing a library, designing an easy to use API while hiding unnecessary implementation details from clients is fundamental. Let’s look at some API design choices we’ve made for our library Krate, an Android SharedPreferences wrapper.