Home

Awesome

open-weather-map-android-wrapper

Release Android Arsenal

Non-official API wrapper of OpenWeatherMap.org for Android made with Retrofit 2.0

Add to your project build.gradle

allprojects {
	repositories {
		...
		maven { url "https://jitpack.io" }
	}
}

Add to your app module build.gradle

dependencies {
        compile 'com.github.zurche:open-weather-map-android-wrapper:v0.1'
}

Also remember to add the INTERNET permission in your Manifest:

<uses-permission android:name="android.permission.INTERNET"/>

Check a usage example of this library here: https://github.com/zurche/color-weather

The wrapper currently supports the following endpoints of OpenWeatherMap API:

OWService setup

To use the API you need a valid OpenWeatherMap API KEY, once you get it you are able to setup and create your OWService object:

private OWService mOWService = new OWService("<YOUR API KEY GOES HERE>");

You can configure it with the desired language and metric units in which you need the forecast temperatures retrieved:

mOWService.setLanguage(getActivity().getResources().getConfiguration().locale);
mOWService.setMetricUnits(OWSupportedUnits.METRIC);

five-day forecast

To retrieve 5 Days Forecast the library populates the ExtendedWeather object with the retrieved information. To set the location you need to get the weather forecast create a Coor object with the desired Lat/Lon value:

Coord coordinate = new Coord();
coordinate.setLat(-31.42);
coordinate.setLon(-64.18);

mOWService.getFiveDayForecast(coordinate, new OWRequestListener<ExtendedWeather>() {
      @Override
      public void onResponse(OWResponse<ExtendedWeather> response) {
          ExtendedWeather extendedWeather = response.body();
          //Do something with the object here!
      }

      @Override
      public void onFailure(Throwable t) {
          Log.e(TAG, "Five Day Forecast request failed: " + t.getMessage());
      }
  });

current-day forecast

To get the current day forecast you also need to send the Coord object with the Lat/Lon pair of the location to retrieve the weather from and the library will respond with a CurrentWeather object populated with the temperature information:

Coord coordinate = new Coord();
coordinate.setLat(-31.42);
coordinate.setLon(-64.18);

mOWService.getCurrentDayForecast(coordinate, new OWRequestListener<CurrentWeather>() {
    @Override
    public void onResponse(OWResponse<CurrentWeather> response) {
        CurrentWeather currentWeather = response.body();
        //Do something with the object here!
    }

    @Override
    public void onFailure(Throwable t) {
        Log.e(TAG, "Current Day Forecast request failed: " + t.getMessage());
    }
});

License

Copyright 2016 Alejandro Zürcher

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.