🌤️ APIから天気予報を取得して画面に表示します
Note
Required(先に完了させましょう)
Next(次に取り組みましょう)
Important
天気予報をAPIから取得する実装は作成済みコードを利用できます
ご自身で実装する余裕がない場合は活用してください
課題内容
これまで学んできた知識を活用して天気予報を表示しましょう
利用するAPI
OpenWeatherMapの5 day weather forecast を利用します。指定した地点の向こう5日間の天気情報を3時間ごとに取得できます。API keyの取得、地点の指定、レスポンスの表記方法の指定などは以前の課題 #24 を参照してください。
動作イメージ
参考資料
作成済みのコードを利用する
APIから天気予報を取得する実装は作成済みコードを利用できます
template/api-weather-forecastブランチをmainまたは作業ブランチにmergeしてください
API keyの指定
OpenWeatherMapから取得したAPI keyを記載したapi/apikey.propertiesファイルを追加します
(ファイルは.gitignoreに指定されているのでGitHub上に公開されません)
API Serviceの初期化
特にパラメータを指定しなければapi/apikey.propertiesで指定したAPI keyを利用します
val weather = YumemiWeather ()
利用する関数
YumemiWeather
suspend fun fetchJsonForecastAsync (json : String ) : String
ランダムにエラーが発生してUnknownExceptionをthrowします
Requestで指定した都市の天気予報をJSON形式の文字列で返します
Requestで指定した都市が既知の都市ID一覧に含まれない場合はIllegalArgumentExceptionをthrowします
都市ID一覧
都市名
id
country
札幌
2128295
JP
釧路
2129376
JP
仙台
2111149
JP
新潟
1855431
JP
東京
1850144
JP
名古屋
1856057
JP
金沢
1860243
JP
大阪
1853909
JP
広島
1862415
JP
高知
1859146
JP
福岡
1863967
JP
鹿児島
1860827
JP
那覇
1856035
JP
New York
5128581
US
London
2643743
GB
Request
WeatherRequest
Key
型
フォーマット
例
area
String
都市名
東京
date
String
ISO8601拡張形式 "yyyy-MM-dd'T'HH:mm"
2020-04-01T12:00
Response
ForecastResponse
Key
型
フォーマット
例
list
List<ForecastPoint>
area
String
requestと同じ
東京
ForecastPoint
Key
型
フォーマット
例
weather
String
sunny, cloudy, rainy, snow
sunny
temperature
Int
--
20
date
String
ISO8601拡張形式 "yyyy-MM-dd'T'HH:mm"
2020-04-01T12:00
🌤️ APIから天気予報を取得して画面に表示します
Note
Required(先に完了させましょう)
Next(次に取り組みましょう)
Navigation Component による画面遷移 #31
Important
天気予報をAPIから取得する実装は作成済みコードを利用できます
ご自身で実装する余裕がない場合は活用してください
課題内容
これまで学んできた知識を活用して天気予報を表示しましょう
利用するAPI
OpenWeatherMapの5 day weather forecastを利用します。指定した地点の向こう5日間の天気情報を3時間ごとに取得できます。API keyの取得、地点の指定、レスポンスの表記方法の指定などは以前の課題 #24 を参照してください。
動作イメージ
参考資料
作成済みのコードを利用する
APIから天気予報を取得する実装は作成済みコードを利用できます
template/api-weather-forecastブランチをmainまたは作業ブランチにmergeしてくださいAPI keyの指定
OpenWeatherMapから取得したAPI keyを記載した
api/apikey.propertiesファイルを追加します(ファイルは.gitignoreに指定されているのでGitHub上に公開されません)
API Serviceの初期化
特にパラメータを指定しなければ
api/apikey.propertiesで指定したAPI keyを利用します利用する関数
YumemiWeather都市ID一覧
Request
WeatherRequestResponse
ForecastResponseForecastPoint