エラーハンドリングとダイアログ表示(Compose)
Seo-4d696b75 opened this issue · comments
💬 APIのエラーを補足してダイアログを表示しましょう。
課題内容
- APIからExceptionがThrowされたらダイアログを表示する。
- タイトル:"Error"
- メッセージ:"エラーが発生しました。"
- Positiveボタン:"Reload"
- Negativeボタン:"Close"
- ダイアログのRelaodボタンをタップすると、ダイアログを閉じ天気予報を再取得する。
- ダイアログのCloseボタンをタップすると、ダイアログを閉じ天気予報を再取得しない。
利用するAPI
YumemiWeather
fun fetchThrowsWeather() : String
- ランダムにエラーが発生して
UnknownException
をthrowします - 天気を表す文字列 "sunny" or "cloudy" or "rainy" or "snow"をランダムに返します
UI状態とイベント
エラーなどのイベントをUIでどう処理するのか?ではなく、イベントによってUIが表示すべき状態をどう変化させるか、という観点でモデル化します。今回ではエラーが発生すると、エラーダイアログを表示するか・非表示かの状態に影響しますので、例えば次のようにUI状態を定義できます
data class WeatherState(
val weather: String?, // もっと適切な表現方法があります!
val showErrorDialog: Boolean,
)
💡 ComposeではUI状態をひとつのDataClassにまとめて扱う場合が多いです