I've used the Open Weather Map API in the past (https://openweathermap.org/api).
It's free for a reasonable number of requests and has a solid API and a good variety of functionality.
Yours looks well designed! I will give it a shot if I ever need to revisit my local weather script.
Did you chose swift for any reason besides existing knowledge? Python can be compiled down to a binary pretty easily, along with many other languages. Just curious. Cheers.