Weather open API are useful when you start developing Android weather app. Such kind of apps is common in play store. Moreover, Weather app and widgets are one of the most downloaded apps.
When you decide to develop weather app, it is necessary to use a weather provider that providers weather API to get weather information. These weather providers expose a set of services or, in other words, a set of open API that supports RestFul Webservices.
Most of these services accept XML or JSON data. It is important to know the service features before selecting the right provider according to our needs.
Generally speaking, the are several aspects to consider before chosing the weather provider API:
1. consider if the Android app will be free or not. According to this, it is possible to select the right weather provider because some features may be not free.
2. estimate the number of calls your app will make. There are Weather providers API that limits the number of calls to their services if you select a free plan.
So consider carefully the right weather provider to use, and usually, it is not so easy to change the client code once is developed. In other words, the client is tightly dependent to the weather API, so if you change the API you have to re-implement your client.
To make easier the process of selecting the right Weather provider according to your needs, I compiled, below, a list of weather providers that I used and tested and that provide open API to access to weather information.
This list can be useful if other developers want to develop an Android weather app.
Weather open API
Below a list of weather providers that expose open APIs to use to build Android apps
1. Weather Provider API: Openweathermap
This is the first provider I have ever used and this is my preferred one. Openweathermap gives current weather information and forecasts. It is very simple to use. Openweathermap weather API uses JSON data to exchange data.
The weather API returns current weather, forecast, historical weather information and weather station data. Moreover, it has also UV index data.
How can we get weather information for a selected location? Openweathermap provides different two modes to look for a city. One uses name pattern and another using geo-coordinates.
I developed an Android weather app based on Openweathermap and you can look at my other posts to know more how to develop in Android this app.
All these API are free to use, you have to create a dev key so that you can make requests.
2. Weather Provider API:Yahoo! Weather
Yahoo! Weather is another great weather provider that is also very simple to use even if it gives less information than Openweathermap. Using Yahoo! Weather, the app can get current weather information and forecast. The API are based on JSON or on XML, so the developer can choose which one to use.
It is free service as long as you use your app for not commercial use. Read Yahoo! Weather policy to know more. If you like to use this provider in your app, you can look at my post describing how to develop an Android app with Yahoo! weather.
3. Weather Provider API: Weather Underground
Weather Underground API is a great weather provider that offers a lot of API to get many information. Weather Underground API provides current weather and forecast. Moreover, you can retrieve historical data, hurricanes, astronomy data (like moon data) and so on.
It provides also radar images that can be displayed directly on the smartphone
To find the city, it is possible to use name pattern, geo-location.
The service is free as long as you do not make to many requests, so, in other words, if you use it as a developer to test the API it is ok otherwise you have to pay.
4. Weather Provider API: Forecast.io
Forecast.io is another interesting weather provider that offers current weather information: forecast and hour by hour weather details.
It worths to give a look because it is very easy to use and provides already a set of library for different languages.
Finally, some words about showing weather conditions on a map like Google map. Personally, I used just Openweathermap and it is quite easy to add wether tiles. If you are interested i wrote a post about how to add weather information to google map.
There are many other weather providers but most of them have paid services and i did not have the chance to test them. You can use these open API weather to build and test your Android app.