Visit GitHub RepoWeather


This is a wrapper that makes getting weather information from OpenWeatherMap a whole lot easier. What seperates this from other wrappers is that, in addition to the basic weather information, it allows free openweathermap user to get up to 5 days of daily forecast information, which typically requires a developer account with OpenWeatherMap(180USD/month). Please note that this is not a hack, instead the library calculates the 3-hour forecast information that free users get, summarize those values, and return it as daily forecast.

Getting Started


Step 1: Add jcenter to your repository in project's build.gradle file:

repositories {

Step 2: In module's build.gradle add the following dependency:

dependencies {
    compile 'com.ftoslab:openweatherretrieverz:0.1.4'

Available Information

Current Weather Information:

  • current temperature
  • current maximum temperature
  • current minimum temperature
  • short and long weather description
  • weather icon link from OpenWeatherMap
  • pressure
  • humidity
  • windspeed
  • 3-hour rain volume
  • 3-hour snow volume

5 Day Forecast:

  • daily average temperature
  • daily high temperature
  • daily low temperature
  • weather description
  • weather icon link from OpenWeatherMap
  • average pressure
  • average humidity
  • average wind speed
  • rain volume projected
  • snow volume projected


  • convert all units to Metric
  • convert all units to Imperial
  • temperature converter


// Initialize OpenWeatherRetrieverZ by passing in  your openweathermap api key
OpenWeatherRetrieverZ retriever = new OpenWeatherRetrieverZ(API_KEY);
You can retrieve weather information with either OpenWeatherMap cityID or geolocation(Latitude, Logitude)
retriever.updateCurrentWeatherInfo("6167865", new WeatherCallback() {
  public void onReceiveWeatherInfo(CurrentWeatherInfo currentWeatherInfo) {
  	// Your code here
  public void onFailure(String error) {
    // Your code here
retriever.updateDailyForecastInfo("6167865", new DailyForecastCallback() {
  public void onReceiveDailyForecastInfoList(List<DailyForecastInfo> dailyForecastInfoList) {
  	// Your code here
  public void onFailure(String error) {
  	// Your code here

Both updateCurrentWeatherInfo and updateDailyForecastInfo are async, which means the main thread won't hang there and wait for the operation to finish. Instead, callback functions will be called when the information became available or when something went wrong.


You can find an example app here


The ArrayList you get from updateDailyForecastInfo starts from the same day you request it (index 0, day 1), and you will be able to get forecast up until day 6 around the same time, which means the forecast on day 6 might not cover the whole day. This is because as a free user, you only get 40 pieces of 3-hour forecast information (5 days starting from the time you request it). To check how many pieces of 3-hour data for a particular day, you can make use of the function getDataCount() on DailyForecastInfo.


The project is still in its preliminary phase, any contribution is welcomed and appreciated. I will review all the pull requests. If you find any bug or just wanna throw in a thought, feel free to create an issue!


Copyright 2017 FTOSLab.

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

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.
Become a better Android Developer
Millions of developers are learning at MindOrks

Online Training Program

Featured Blogs

Our Team

MindOrks is Certainly one of the best online blog to stay on top of all the Android development news, coding and design patterns. Finally a blog I can count on to keep myself updated with latest and greatest things happening in Android world.

Vipul Shah
Android Developer

Become Pro in Android by watching videos