OpenWeather의 json 데이터를 사용해서 날씨 앱을 만들어 보자 !
OpenWeather을 사용하여 각 도시별로 현재 기온, 5일간의 기온을 json 데이터 형식으로 가져와 사용할 수 있다.
그래서 ! 날씨 앱을 한번 만들어 보기로 했습니다 !
이번에 정리하는 것은 json 데이터를 가져와서 사용하는 방법 !!
url 세션 사용하기 !!
먼저 OpenWeather을 사용하기 위해선 가입을 한 후 API Key를 받아야 합니다 !
http://api.openweathermap.org/data/2.5/forecast?id={도시 명 입력}&APPID={API Key 입력 !}
위 url로 접속을하면 json 형식의 데이터들을 볼 수 있습니다 !
확인이 되면 이제 json 데이터를 가져 와볼까요 ?!
part.1
1 | let apiUrl = "https://api.openweathermap.org/data/2.5/forecast?id=<#City Name#>&APPID=<#API Key#>" |
먼저 접속하려하는 url을 url타입으로 변환 후 프로퍼티에 저장을 해둡니다 !
part.2
1 | let dataTask = URLSession.shared.dataTask(with: url) { data, response, error in |
URLSession을 걸어주고 reponse, error을 통해 필터링을 한 후 data를 가지고 옵니다.
reponse를 200부터 400미만으로 준 이유는 해당 범위에 속하는 것은 http 상태코드의 정상범위에 속하기 때문입니다.
response : http 상태코드 확인.
error : data error 확인.
그리고 마지막으로 data를 가지고 옵니다 !
part.3
1 | struct WeatherJSON: Codable { |
저는 Coadble를 사용하였기 떄문에 받고자 하는 데이터에 맞게 struct를 생성 해두었습니다
1 | let jsonDecoder = JSONDecoder() |
그리고 URLSession으로 받은 data를 jsonDecoder로 Parsing을 합니다 !
참고. json 데이터 받은 것을 기온으로 표시하고 싶다면 아래 공식으로 해주시면 됩니다.
1 | String(format: "%.1f", temperature - 273.15) + "°" |
이후 View에 넣고싶은 위치에 데이터를 넣어주면 됩니다.
저는 TableView를 사용해서 만들었습니다 ㅎㅎㅎ