There are cases, when the functionality provided with the application is just not enough. Or maybe it is enough, but some people want to use it a bit different – either adapt it to their own needs or implement something that would add value to existing features. I actually encountered the extensibility problem in one of my projects, WeatherBar. Initially, I built it around the Google Weather API. Fair enough, it worked well for a lot of locations and it was quite simple.