CLAUDE LABEN
AUTO — Claude Code の auto モードが本日8月14日から既定で有効になります。Pro・Max・Team の各プランが対象ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok が恒久化されました。9月1日に予定されていた $3/$15 への引き上げは行われませんFIX — 8月13日の v2.1.231 で、事前登録済みの OAuth クライアントを使う MCP サーバー(Slack など)でサインインが失敗する不具合が直っていますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り3日となりましたMCP — 新しい MCP 2026-07-28 仕様への対応が進んでいます。ステートレス化と OAuth・OIDC の強化、Apps と Tasks のバージョン付き拡張が入りましたBOOST — Claude Code 契約者向けの週次利用枠 50% 上乗せは8月19日までの期間限定ですAUTO — Claude Code の auto モードが本日8月14日から既定で有効になります。Pro・Max・Team の各プランが対象ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok が恒久化されました。9月1日に予定されていた $3/$15 への引き上げは行われませんFIX — 8月13日の v2.1.231 で、事前登録済みの OAuth クライアントを使う MCP サーバー(Slack など)でサインインが失敗する不具合が直っていますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り3日となりましたMCP — 新しい MCP 2026-07-28 仕様への対応が進んでいます。ステートレス化と OAuth・OIDC の強化、Apps と Tasks のバージョン付き拡張が入りましたBOOST — Claude Code 契約者向けの週次利用枠 50% 上乗せは8月19日までの期間限定です
記事一覧/Claude Code
Claude Code/2026-06-30上級

新型 iPhone で壁紙がぼやける問題を Claude Code で直す — 端末別解像度の振り分けを安全に増やす

新しい iPhone が出るたびに壁紙アプリで画像がぼやけたり余白が出たりする原因と、散らばった端末分岐を一枚のテーブルに集約して安全に拡張する方法を、Claude Code を使った実際のリファクタリング工程として共有します。

Claude Code217iOS24Swift5壁紙アプリ3リファクタリング6個人開発112

プレミアム記事

新しい iPhone が発売された週末、私が個人開発で続けている壁紙アプリ「Beautiful HD Wallpapers(綺麗な壁紙)」に、ある実機でだけ壁紙の上下にうっすら余白が出る、という報告が届きました。手元のシミュレータで再現してみると、確かに新機種だけ画像が中央に寄り、上下が背景色で埋められています。原因は単純で、端末ごとの解像度を判定するコードが新しい画面サイズを知らず、「いちばん近い古い端末」にフォールバックして、縦横比の合わない画像を選んでいたのです。

壁紙アプリは、この「端末ごとに正しいピクセル解像度の画像を出す」という一点に、表示品質のほとんどが懸かっています。少しでも縦横比がずれると、引き伸ばしでぼやけるか、余白が出るかのどちらかになります。にもかかわらず、長年の更新でこの判定ロジックはアプリ内に散り散りになっていました。今回はその散らばりを Claude Code で一枚のテーブルに畳み、新機種を 1 箇所の追記だけで対応できる形に作り替えた工程を、実際のコードとともに残しておきます。


なぜ「最寄りの高さ」で選ぶと壊れるのか

まず、問題の起点を正確に押さえます。iOS の画面は論理サイズ(ポイント)と物理サイズ(ピクセル)の二層構造で、UIScreen.main.bounds が返すのはポイント、実際の画素数はそこに nativeScale(多くの最新機で 3.0)を掛けた値です。壁紙として配信する画像は、この物理ピクセルにぴったり合っていないと、システムが拡大縮小をかけて甘くなります。

私のアプリでは、端末を判定して画像サイズやレイアウト定数を切り替える分岐が、追加のたびに各画面へ少しずつ書き足され、最終的に 29 箇所の三項演算子になっていました。典型的にはこういう形です。

// ❌ Before: 画面の「高さ」だけを見て近い端末を当てる
// 新機種が出るたびに、こういう分岐が各所に増殖していった
func wallpaperPixelHeight() -> CGFloat {
    let h = UIScreen.main.bounds.height
    if h >= 932 {          // Pro Max 系のつもり
        return 2796
    } else if h >= 852 {   // 標準 Pro のつもり
        return 2556
    } else if h >= 844 {
        return 2532
    } else {
        return 2436        // それ以前へフォールバック
    }
}

このコードの弱点は二つあります。一つは、新機種の高さが既存の閾値の隙間に落ちると、意図しない分岐に吸い込まれること。もう一つは、判定軸が「高さ」だけなので、縦横比が違う端末を同じ高さの端末と同一視してしまうことです。壁紙にとって致命的なのは後者で、たとえば同じ高さでも横幅が数ポイント違えば、画像はわずかに引き伸ばされるか、レターボックス(上下の余白)になります。

新型 iPhone でだけ余白が出たのは、まさにこの「高さは近いが横幅が違う端末」を、古い端末として扱ってしまったからでした。


まず Claude Code に「分岐の全量」を出させる

修正方針は決まっています。散らばった分岐を一箇所に集め、判定軸を高さから「画面のポイントサイズ(縦横ペア)」に変え、選定ロジックを「最寄りの高さ」から「同一サイズの厳密一致+縦横比で最も近いもの」へ変えること。ただし、いきなり書き換えると 29 箇所のどれかを取りこぼします。最初にやるべきは、現状の全量を正確に把握することです。

ここで Claude Code に頼ります。手で grep するより、意味的に「端末分岐をしている箇所」を拾わせるほうが速く、抜けも少ないからです。私は次のように依頼しました。

このリポジトリ内で UIScreen.main.bounds の高さや幅、
UIDevice の機種名を条件に分岐しているコードをすべて列挙してください。
ファイルパス・行番号・その分岐が何を切り替えているか(画像サイズ/余白/
フォントなど)の3点を表にしてください。修正はまだしないでください。

「修正はまだしないでください」と明示するのが大事です。Claude Code は指示すると一気に直そうとしますが、リファクタリングは「現状把握 → 設計 → 置換 → 検証」の順で進めたほうが事故が減ります。返ってきた一覧で、29 箇所のうち 6 箇所は画像サイズ、残りは余白やセーフエリア関連の定数だと分かりました。画像サイズの判定だけを先に切り出すのが正解だと、この時点で見通せます。


ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
新型 iPhone でだけ壁紙がぼやける・余白が出る原因が分かり、最寄り高さではなく縦横比で振り分ける修正を自分のアプリに入れられるようになる
コードの 20〜30 箇所に散らばった端末分岐の三項演算子を、Claude Code で安全に一枚の Source of Truth テーブルへ畳む手順を、Before/After のコード付きで習得できる
新しい端末が出たときに 1 箇所だけ追記すれば対応が終わる構造に作り替え、スナップショットテストで取りこぼしを検知できるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-05-26
Xcode の警告を Claude Code で4週間かけてゼロにした個人開発の所感
長年の個人開発で累積したXcode警告を、Claude Codeと一緒に4週間かけてゼロにした記録です。スプリント前に決めたこと、機械的に潰せる警告から削る週ごとの方針、AIに任せた領域と人間が判断を残した境界、つまずきと回避策、数値で振り返る効果までを具体的に共有します。
Claude Code2026-05-23
壁紙アプリ 4 本の月次コンテンツ更新を Claude Code に任せた 3 ヶ月の所感
Beautiful HD Wallpapers をはじめとする壁紙アプリ 4 本の月次コンテンツ更新を、2026 年 2 月から Claude Code に任せ始めました。新しい壁紙の追加・カテゴリ分類・メタデータ更新を 3 ヶ月続けてみて気づいた、AI に任せられる範囲と、自分の手を残しておきたい範囲の境界について書きます。
Claude Code2026-07-08
自コードの Required Reason API 申告漏れを Claude Code で棚卸しする
PrivacyInfo.xcprivacy の理由コードは、依存ライブラリだけでなく自分のコードにも必要です。個人開発の壁紙アプリで申告漏れを見つけた経験から、Swift ソースを走査して該当 API と理由コードを突き合わせる Claude Code ワークフローをまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →