-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Meet WeatherKit #11
Comments
WeatherKit을 만든 이유
우리는 날씨 데이터에 의존하며 삽니다. 상황을 한 번 가정해보겠습니다.
위에서 언급한 여러 가지 상황에 이르기까지 날씨는 모든 사람에게 영향을 미치는데요.이에 따라서 정확한 기상 데이터는 변화하는 기후의 영향을 많이 받는 오늘날의 세계에 더욱 중요해졌습니다. 그래서 WeatherKit을 만들었습니다. WeatherKit
위의 기술을 사용하여 전 세계의 초지역 기상 예보를 제공합니다. Apple Weather Service를 통해서 많은 데이터에 접근할 수 있습니다. 정확한 날씨 데이터는 위치 정보가 필요합니다. 그리고 그 데이터를 비공개로 유지하도록 합니다. 사용자 정보를 손상시키지 않으면서 지역적 예측을 제공하도록 WeatherKit는 설계되었습니다. 위치 정보는 오직 일기 예보를 제공하는데만 사용되고 절대 공유되거나 판매되지 않습니다. Available Weather datasetsCurrent weather
Minute forecast
Hourly forecast
Daily forecast
Weather alerts
Historical weather
Requesting weather
Swift Framework 사용
// Request the weather
import WeatherKit
import CoreLocation
// 객체 생성
let weatherService = WeatherService()
// 위치 가져오기 - 접근 권한 요청 필요
let syracuse = CLLocation(latitude: 43, longitude: -76)
// 위치 정보로 날씨 정보 요청
let weather = try! await weatherService.weather(for: syracuse)
// 1. 온도 데이터에 접근
let temperature = weather.currentWeather.temperature
// 2. UV 데이터에 접근
let uvIndex = weather.currentWeather.uvIndex REST API
WeatherKit을 활성화해야 합니다.
Demo Service
Data Source에 대한 저작권 표시 날씨 데이터 소스에 대한 저작권 정보가 포함된 Link(Apple로고 포함)를 표시해야 합니다. Light, Dark 모드를 모두 지원합니다. colorScheme 환경 값을 통해서 표시하는 것을 조정합니다. struct ContentView: View {
var body: some View {
.task {
do {
let attribution = try await WeatherService.shared.attribution
attributionLink = attribution.legalPageURL
attributionLogo = colorScheme == .light ? attribution.combineMarkDarkURL : attribution.combineMarkLightURL
} catch {
print(error)
}
}
}
} Apple weather mark 및 Attribution link는 SFSafariViewController에서 열립니다. 지금까지 다룬 것은 기본 프레임워크에 불과합니다. REST API는 Swift 프레임워크와 동일한 풍부한 날씨 데이터를 제공하고, 모든 플랫폼에서 사용할 수 있습니다. REST API 사용하기
/* Request a token */
const tokenResponse = await fetch('https://example.com/token');
const token = await tokenResponse.text();
/* Get my weather object */
const url = "https://weatherkit.apple.com/1/weather/en-US/41.029/-74.642?dataSets=weatherAlerts&country=US"
const weatherResponse = await fetch(url, {
headers: {
"Authorization": token
}
});
const weather = await weatherResponse.json();
/* Check for active weather alerts */
const alerts = weather.weatherAlerts;
const detailsUrl = weather.weatherAlerts.detailsUrl; 위의 예시는 웹에서 데이터를 받아오는 과정인 것 같습니다.
REST API 인증 처리
|
The text was updated successfully, but these errors were encountered: