いま干していい?
洗濯物をいま外に干したら何時に乾いて、何時までに取り込むかを出す。気温・湿度・風・日射を1つにまとめた「大気の乾かす力」で、洗濯物が持っている水の量を割って時間にする。降水確率ではなく乾く時刻で答えるので、洗濯機の前での迷いがその場で終わる
所要時間1時間45分
制作メモ
- AIに任せた
- 着手前の規約チェック。Open-Meteo の利用条件(無料は非商用のみ・広告や課金のないアプリは該当・1日1万回まで)とデータのライセンス(CC BY 4.0・表示は『Weather data by Open-Meteo.com』)を原文で確認した/乾きの計算を組んだ。ET0(FAO-56 基準蒸発散量)で洗濯物の水の量を割る式にし、係数は『真夏の薄手は1時間ちょっと』『冬は晴れても厚手は1日では乾かない』などの体感3つに合わせて決めた。実測ではないことを画面とREADMEに明記した/地名から座標を引く外部サービスを使わずに済むよう、Day 015 の代表点から1,741市区町村の一覧を作って同梱した(解禁されているAPIは1個なので天気に使い切る)/時刻を『日本時間の壁掛け時計の文字列』で持つようにした。Date に入れて比べると動かす環境のタイムゾーンで結果が変わる(CIはUTC)/ユニットテストとE2Eを書いた
- 自分でやった
- 題材の選定(4案から「洗濯物の乾き予測」を選んだ)/実機での確認とX投稿
- 失敗と修正
- 場所を選んだあと画面が切り替わらず、E2Eが17件中15件落ちた。取得したあとに描画は呼んでいたが、状態を ready にする呼び出しが抜けていた → 取得の直後に setState('ready') を入れた。状態と描画を別々に呼ぶ形は抜けやすいので、読み込みの成功経路を1か所にまとめた
24時間の帯から雨の時間が消えていた。雨のコマも「乾く速さ」に比例した高さで塗っていたが、雨の日の乾く速さは0なので高さも0になっていた → 雨はコマ全体を塗るようにした。速さは「乾いていく」ことの量であって、雨は状態なので、同じ尺度で描いてはいけなかった
「厚手」「日かげ・軒下」のボタンで、説明の文字が単語の途中で折り返して読めなかった(ジーンズ・パーカ/ー) → 説明をボタンの外へ出し、選ばれているものだけ1行で下に書くようにした。ボタン自体は折り返さない
本番の実機で「いちばん早く乾くのは明日の10:00に干したとき」と「明日9時に干すなら7時間14分で乾きます」が並んで出て、ほぼ同じことを2回言っていた → 前者が明日を指しているときは後者を出さないようにした。E2Eを1件足した
秘密情報スキャンが誤検知しやすい書き方が入っていた(KEY = '文字列'・const key = …)。Day 025・026・031 で実際に落ちている → コミット前に STORAGE_NAME・cacheId へ改名した。この形は毎回踏むので、書いた直後に自分で探すことにした






























