This is a sample project to show how to use Square Retrofit Library in your Android Apps.
- MainActivity: Main test activity. Preserves data and UX state on rotation of device.
- Uses material design construct by having styles.xml and v21/styles.xml works with colors.xml
- Handles device rotation well.
- Pay attention to runOnUiThread runnable. It takes care of cases where 'runOnUiThread' may not update UX on roation as Activity may not have been recreated.
- GetWeatherApi: The API to access weather - Async API: getWeatherFromApi, results are passed back to caller in a Callback on a different thread. - Sync API: getWeatherFromApiSync, not called from a UX thread. Blocking call, places the call from a thread.
- GetWeatherRestAdapter: Defines the REST adapter and also a container for Weather API.
- WeatherData: is a plain old java object that mirrors names on the JSON response.
- Open issues: Did not check error issues. So app may crash on Retrofit errors.
- Openweather now requires you to use their API. Set your own API key in OPEN_WEATHER_API (GetWeatherRestAdapter.java), I have kept mine in case you need to do few minor tests.