yumemi-inc / android-training-template

Apache License 2.0
13 stars 2 forks source link

Composeで天気予報を表示する #33

Open Seo-4d696b75 opened 1 year ago

Seo-4d696b75 commented 1 year ago

🌤️ APIから天気予報を取得して画面に表示します

[!NOTE]

Required(先に完了させましょう)

  • 32

[!IMPORTANT]
天気予報をAPIから取得する実装は作成済みコードを利用できます ご自身で実装する余裕がない場合は活用してください

課題内容

これまで学んできた知識を活用して天気予報を表示しましょう

利用するAPI

OpenWeatherMapの5 day weather forecastを利用します。指定した地点の向こう5日間の天気情報を3時間ごとに取得できます。API keyの取得、地点の指定、レスポンスの表記方法の指定などは以前の課題 #22 を参照してください。

動作イメージ

参考資料

作成済みのコードを利用する

APIから天気予報を取得する実装は作成済みコードを利用できます

template/api-weather-forecastブランチをmainまたは作業ブランチにmergeしてください

API keyの指定

OpenWeatherMapから取得したAPI keyを記載したapi/apikey.propertiesファイルを追加します
(ファイルは.gitignoreに指定されているのでGitHub上に公開されません)

api_key="your_api_key"

API Serviceの初期化

特にパラメータを指定しなければapi/apikey.propertiesで指定したAPI keyを利用します

val weather = YumemiWeather()

利用する関数

YumemiWeather

    suspend fun fetchJsonForecastAsync(json: String) : String
都市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