It all seemed so straightforward
I have a Udacity project to complete in 4 weeks, working in my personal time as part of the FastTrack course. Take a semi-working app, add some features fix some bugs, call it done and submit.
Nothing crazy, move it from activities to fragments and create a master/detail layout using both for tablets and larger screens. Implement a widget, which is new to me but doesn’t look difficult, optimise layouts for LTR and RTL languages and finally, add a screen with some graphs for details about the selected stock.
Then Yahoo happened
Having a lot going on in my life (planning a wedding, work commitments, etc.) I knew this project would be split into simpler tasks that could be achieved in 30 minutes to 1 hour. This way I could squeeze some work into a lunch break and the bigger more complex pieces would be done in a few rare longer sessions. The first long sessions I got the plan was to pull data for the graphs. Except the Yahoo API had decided to change the URL that this data was downloaded from, which effectively meant that this historical data was missing. Decision time, implement my own download and parse of a .csv file and add a bunch of work, or wait for the library the project came with to be updated. Eventually about 5 days later, the library was updated to use the new URL’s and historical data was back. Once I had that data the graphs got implemented pretty quickly.
Then Yahoo happened again
So I steadily worked through the rest of the project, taking a bit of time with Widgets as its a little bit different to what I’ve done before. Finally it was time to dot the i’s and cross the t’s. Oh hang on I’ve no data anymore… Yeap yahoo changed URL’s again, only this time they completely changed how the data is pulled. The library we use doesn’t look like it will be updated at all. Essentially the upstream API that provides the data is gone… 2 days before the submission date.
Conclusion
If you depend on an API, best make it an official one with a defined road-map.