RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-05-18上級

Rork で作った iOS アプリを iPhone Air と 17 Pro シリーズに対応させる — 2026年の解像度ごとのレイアウト調整パターン

iPhone Air・17 Pro・17 Pro Max の新解像度で既存 Rork アプリのレイアウトが崩れる問題を、4本の iOS アプリを並行更新した経験から解説。解像度定数管理・Safe Area・壁紙フルスクリーン表示の具体的な実装パターンを示します。

iOS108iPhone AiriPhone 17 Pro解像度Rork515SafeArea3個人開発187壁紙アプリ28

プレミアム記事

Beautiful HD Wallpapers を最新の iPhone Air で開いたとき、ホーム画面設定プレビューの壁紙が微妙にはみ出していることに気づきました。「また解像度が増えたか」と思いながらシミュレーターを立ち上げると、いくつかの画面でレイアウトがずれていました。

2013年から個人で iOS アプリ開発を続けてきて、累計5,000万DLを超えるアプリ群のうち4本を今もメンテナンスしています——Beautiful HD Wallpapers、Ukiyo-e Wallpapers、Relaxing Healing、Law of Attraction Everyday。毎年 Apple が新しい iPhone を出すたびに解像度対応が必要になりますが、2026年は iPhone Air という新フォームファクターが加わったことで、対応する機種の組み合わせが一気に増えました。

Rork で iOS アプリを開発していると、AI がレイアウトのコードを生成してくれます。ただ「新しい解像度で動かしたら崩れた」という問題は、結局自分で手直しするしかない部分です。4本のアプリを同時に対応した実体験をもとに、Rork プロジェクトでの解像度管理パターンを整理します。

2026年の iPhone 解像度マトリクスを整理する

対応を始める前に、現時点で流通している主要な iPhone の解像度(ポイント単位)を把握しておく必要があります。

混乱しやすいのが「ピクセル」と「ポイント」の違いです。iOS の UI レイアウトはポイント(pt)で計算されます。Retina ディスプレイでは 1pt = 2px または 3px になりますが、Rork(React Native)でのレイアウトコードで扱うのはすべてポイントです。デザイナーが Figma で作業するときも、基本的にはポイント単位で考えると混乱が減ります。

2026年時点での主要 iPhone のポイント解像度をまとめると、以下のようになります。

  • iPhone Air(2026): 幅 420pt × 高さ 912pt(3x Retina)
  • iPhone 17 Pro: 幅 402pt × 高さ 874pt(3x Retina)
  • iPhone 17 Pro Max / 16 Pro Max: 幅 440pt × 高さ 956pt(3x Retina)
  • iPhone 17 / 16: 幅 393pt × 高さ 852pt(3x Retina)
  • iPhone 15 / 旧世代標準モデル: 幅 393pt × 高さ 852pt(3x Retina)
  • iPhone 15 Plus: 幅 430pt × 高さ 932pt(3x Retina)

iPhone Air の幅 420pt に注目してください。従来の Plus/Max 系(430pt)よりも狭く、標準モデル(393pt)よりも広い、これまでなかった中間サイズです。width > 400 ? 'large' : 'standard' のようなブレークポイント設計を使っていた場合、iPhone Air は 'large' に分類されますが実際は Pro Max よりずっと狭い。この不整合がレイアウト崩れの根本原因になります。

Apple が新しいフォームファクターを追加する理由の一つは、ユーザー層の多様化への対応です。iPhone Air は薄くて軽いことを特徴にしており、より大きな画面を求めながらも Pro Max の重さを避けたいユーザー向けに設計されています。開発者の立場からは、またひとつ「対応すべきサイズ」が増えた、という現実があります。しかし見方を変えると、iPhone Air ユーザーはアプリの見た目に敏感な層である可能性が高く、解像度対応のクオリティがそのまま評価につながりやすいとも言えます。

高さ方向の差異も重要です。iPhone 17 Pro(874pt)は標準モデル(852pt)より 22pt 高く、Pro Max(956pt)はさらに 82pt 高い。フルスクリーン表示前提のアプリでは、この差がそのまま画像の見切れや余白として現れます。壁紙アプリを作っていると、この 22pt がとても大きく感じられます。

Rork プロジェクトで解像度情報を取得する

Rork は内部的に React Native(Expo)を使っているため、解像度の取得には React Native 標準の API を利用します。最も基本的な方法は useWindowDimensions フックです。

import { useWindowDimensions } from 'react-native';
 
const WallpaperViewer: React.FC = () => {
  const { width, height } = useWindowDimensions();
 
  return (
    <View style={{ width, height, position: 'absolute', top: 0, left: 0 }}>
      {/* フルスクリーンコンテンツ */}
    </View>
  );
};

useWindowDimensions はアプリが回転したときに値が変わります。壁紙アプリのようにポートレート固定で動作するアプリでは問題になりませんが、横向き表示もサポートする場合は注意が必要です。起動時の一度きりの取得で十分であれば、Dimensions.get('window') を使う方が余分な再レンダリングを避けられます。

import { Dimensions } from 'react-native';
 
// アプリ起動時に一度だけ取得する(ポートレート固定アプリ向け)
const SCREEN_WIDTH = Dimensions.get('window').width;
const SCREEN_HEIGHT = Dimensions.get('window').height;

私が4本のアプリで採用しているのは後者の方法です。壁紙アプリの性質上、ポートレート固定で動作するため、起動時の取得で十分対応できています。また、モジュールレベルで定数化することで、コンポーネント内でのフック呼び出しが不要になり、コードがシンプルになります。

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

この記事の続きを読む

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

この記事で得られること
iPhone Air / 17 Pro / 17 Pro Max の各解像度で Rork アプリのレイアウトが崩れる原因を理解し、今日から修正に着手できる
壁紙アプリ・フルスクリーン表示アプリ特有のアスペクト比問題と Safe Area 対応の実装コードを手に入れられる
累計5,000万DLの iOS アプリ4本を同時に新解像度対応した経験から、効率的な定数管理とテスト戦略を習得できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-05-25
Rork iOSアプリのメモリプレッシャー対策 — 壁紙アプリ運用で磨いた5段階解放アーキテクチャ
Rork経由でビルドしたiOSアプリのメモリプレッシャー対策を、5段階解放という考え方で整理しました。壁紙アプリ群を12年運用してきた中で見えた優先順位と、Instrumentsでの計測手順を実装込みで紹介します。
開発ツール2026-07-10
クラッシュとして記録されない強制終了 — Rork アプリの JetsamEvent を読む
Crashlytics には何も出ていないのにレビューで「勝手に閉じる」と書かれる。その多くはメモリ超過による OS からの強制終了です。JetsamEvent レポートの読み方と、画像中心アプリのメモリ上限を実測から設計する手順をまとめます。
開発ツール2026-06-14
アプリを開かなくても更新される、を Expo で実際に届ける — Background Task の現実的な設計
Rork が生成する Expo アプリで『毎朝コンテンツが更新される』体験を作ろうとすると、iOS のバックグラウンド実行は思ったほど律儀に動きません。expo-background-task の最小実装と、実行されない前提で破綻しない設計をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →