(์ถํ ๋ง๋ค์ด์ง ์ ํ๋ธ ๋งํฌ ์ถ๊ฐ)
- Current weather -> ์ฒด๊ฐ ์จ๋, ์ต๋, ์์ธ์ , ์ด์ฌ์
- Minute forecast -> ๊ฐ์ ํ๋ฅ , ๊ฐ์ ๊ฐ๋
- Hourly forecast -> ์ฒด๊ฐ ์จ๋, ์ต๋, ์์ธ์ , ์ด์ฌ์
- Daily forecast -> ์ต๊ณ ๊ธฐ์จ, ์ต์ ๊ธฐ์จ, ๋ฌ ํ์, ๊ฐ์๋, ์ผ์ถ, ์ผ๋ชฐ
- Weather alerts -> ์ง์ญ, ์ํ๋
- Historical weather -> ์ฒด๊ฐ ์จ๋, ์ต๋, ์์ธ์ , ์ด์ฌ์
- ์ท์ฐจ๋ฆผ ์ถ์ฒ / ๋ฌ ๋ชจ์ต ๋ณด์ฌ์ฃผ๊ธฐ / ๋น ์ค๋ ๋ ์๋ ค์ฃผ๊ธฐ / ์ ํฌ๋ฆผ ๋ฐ๋ฅด๋ผ๊ณ ์๋ ค์ฃผ๊ธฐ ๋ฑโฆ
- ๋ ์จ๊ฐ ์ ์ข์ ๋ ๋๊ฐ๊ธฐ ์ซ์ดํ๋ ๊ตฌ๋ฆ๊ณผ ํฐ
- ๋ ์จ ์ฑ๊ณผ ์ผ์ ๊ธฐ๋ก ์ฑ์ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ๋ณด๋ ๊ฒ์ด ๋ถํธํ๋ ์ํฉ์ Engage
- ์ผ์ ์ ์ ํ๋ ๊ธฐ๋ฅ๊ณผ ๋ ์จ๋ฅผ ํ์ธํ๋ ๊ธฐ๋ฅ์ ํจ๊ป ์ ๊ณตํ์ฌ ๋ถํธํจ์ ์ค์ฌ๋ณด์!
- ์ผ์ ์ ํฐ ์ํฅ์ ์ฃผ๋ ๋ ์จ ์ ๋ณด๋ ๋ฌด์์ผ๊น?
- ๋ ์ง๋ณ๋ก ๋ ์จ(๋ํ), ์ต๊ณ ๊ธฐ์จ, ์ต์ ๊ธฐ์จ, ๊ฐ์ ์ฌ๋ถ, ์์ธ์ , ํ์ ์ ๋ณด ์ ๊ณต ํ์
WeatherKit์ ํ์ฉํด [ ๋ ์จ ํ์ธ๊ณผ ์ผ์ ๊ด๋ฆฌ๋ฅผ ํตํฉ ]์์ผ
[ ์ ํธํ์ง ์๋ ๋ ์จ์ธ ๋ ์ผ์ ์ ์ก๊ธฐ๋ฅผ ๊บผ๋ คํ๋ ์ฌ์ฉ์ ] ๊ฐ
[ ๋ ์จ๋ฅผ ๊ณ ๋ คํด ์ผ์ ์ ์ก์ ๋ ํธ๋ฆฌ ] ํ๊ฒ ํด์ฃผ๋ ์บ๋ฆฐ๋
- ์ฌ์ฉ์์ ํ์ฌ ์์น ๊ธฐ์ค ์ค๋ํฌํจ ์ดํ ์ดํ๊ฐ ๋ ์จ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค (์์น ๊ถํ ์ฌ์ฉ ํ์ฉ์)
- ๋ ์จ ์ ๋ณด๊ฐ ์๋ ๋ ์ง์ ์ฃผ์ํ ๋งํ ํน์ด์ฌํญ์ ์๋ ค์ค (๊ฐ์, ์ถ์, ๋์, ์ผ๊ต์ฐจ, ๊ฐํ)
- ์ผ์ ์ด ์๋ ๋ ์๋ ์์ ์ํ์ ์ธ๋์ผ์ดํฐ๊ฐ ํ์๋จ
- ์ฌ์ฉ์๊ฐ ์ฝ์์ ์ก๊ธฐ ์ข์ ๋ ์จ์ธ ๋ ์ ๊ณจ๋ผ์ ์ผ์ ์ ์ก๊ธฐ ์์ํด์ง
import WeatherKit // **์ค์**
import CoreLocation.CLLocation // ์ํ๋ ์ผ๋ถ๋ง import ํ๊ณ ์ถ์ ๋
/// Apple ์์ ์ ๊ณตํ๋ ๋ ์จ ์ ๋ณด ์ด๊ด ๊ฐ์ฒด
/// - WeatherService ๊ฐ์ฒด๋ฅผ ํตํด WeatherKit ์ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์
/// - WeatherService ๋ด๋ถ์ .shared ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํด์ผ ํจ (๋ค์ ๊ฐ์ฒด ์์ฑ ๋ฐฉ์ง)
let weatherService: WeatherService = WeatherService.shared
/// ๋ ์จ ์ ๋ณด๋ฅผ ๋ฐ์์ฌ ์์น (์์: C5 ์ขํ)
let location: CLLocation = CLLocation(latitude: 36.0135, longitude: 129.3263)
Task {
/// weatherService ๊ฐ์ฒด์ weather(...) ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ ์จ ์ ๋ณด๋ฅผ ๋ฐ์์ฌ ์ ์์
/// .daily ์ธ์๋ .alerts, .current, .availability, .minute, .hourly ๋ฑ ์ํ๋ ์ข
๋ฅ์ ๋ฐ์ดํฐ ํธ์ถ ๊ฐ๋ฅ
/// ์ธ๋ถ ๋ฐ์ดํฐ ํธ์ถ์ด๋ผ ๋น๋๊ธฐ ํจ์์ด๊ณ , Error ๋ฐ์ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ [try, await] ํค์๋ ์ฌ์ฉ ํ์
let weatherData = try? await weatherService.weather(for: location, including: .daily)
/// ๋ฐ์์จ Forecast<DayWeather> ํ์์ ๋ฐ์ดํฐ์์ ์ฌ์ฉํ๊ธฐ ํธํ๊ฒ [DayWeather] ํ์(๋ฐฐ์ด)์ผ๋ก ๋ณํ
let dayWeathers = weatherData.forecast
/// ๋ฐ์ดํฐ ๋ฐฐ์ด์์ ์ํ๋ ์ ๋ณด๋ฅผ ๋ฝ์ ์ฌ์ฉ
for dayWeather in dayWeathers {
print(dayWeather.lowTemperature.value) // ์ต์ ๊ธฐ์จ
}
}