I wanted to hack together a little weather app, and here's a few services I've found that look interesting.
OpenWeather

Registration is required, but their free plan allows 60 API calls a minute, up to a million a month. They have a current weather API, air pollution API, and a "One Call" API that returns current weather and a forecast.
They also implement a Geocoding API, which supports forward and reverse geocoding. This is useful for when you want to allow app users to put in, say, "Boston" and see weather, which is often best done with lat and long. (Their current weather API has some support for cities, though.)
Nominatim
OpenStreetMap's Nominatim is a free (no registration required) geocoding API based on the OpenStreetMap dataset. Do see the usage policy before hammering the API.
The neat thing is that, because it's based on, you know, Open Street Maps, they don't have the goofy "no caching allowed!" requirements that some other applications do. In fact, you can run your own Nominatim server, but it requires some beefy hardware since it's got an enormous database. But the ability is pretty nifty nonetheless.