BreezyWeather is a pretty good open source option for Android, if you are looking. Gives you plenty of options of data providers to use.
https://github.com/breezy-weather/breezy-weather