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-04-24上級

Rork Max × Xcode — 生成後のネイティブ最適化ワークフロー

Rork Max で生成した SwiftUI プロジェクトを Xcode に取り込み、ネイティブ機能の最適化、Instruments での性能計測、App Store 審査前のチューニングまで行うプロ向けワークフローを解説します。

Rork Max229Xcode2SwiftUI63Instruments3ネイティブ最適化

プレミアム記事

Rork Max で iOS アプリを素早く立ち上げられるようになりましたが、App Store 審査を意識したプロダクションレベルの品質に仕上げるには、Xcode 側での手作業が依然として必要です。ここで扱うのはRork Max が出力した SwiftUI プロジェクトを Xcode で開き、プロ品質に仕上げるまでのワークフローを、工程ごとに整理してお届けします。

個人アプリ開発者として Rork Max を半年ほど本格運用してきた経験から、「ここで時間を溶かした」というハマりどころも合わせて共有します。

Rork Max 生成プロジェクトの構造を理解する

まず Xcode で Rork Max のプロジェクトを開いたときに、ディレクトリ構成を正しく把握することが出発点です。

典型的な構成は次のような形になります。

MyApp/
├── MyApp.xcodeproj/
├── Sources/
│   ├── App/              ← アプリケーションのエントリポイント
│   ├── Views/            ← SwiftUI View 定義
│   ├── Models/           ← データモデル・Codable 定義
│   ├── Services/         ← API クライアント・永続化層
│   └── Utils/            ← 拡張関数・ヘルパー
├── Resources/
│   ├── Assets.xcassets/
│   ├── Localizations/
│   └── Fonts/
└── .rork/                ← Rork 生成メタデータ(重要)

この中で最も注意が必要なのは .rork/ ディレクトリです。これは Rork Max がプロジェクトの再生成や更新に使う内部メタデータで、触ると Rork 側からの再生成がおかしくなります。絶対に手動で編集しないでください。

Sources 配下のファイルは自由に編集できますが、次に Rork Max を使ってプロジェクトを更新するとき、構造を大きく変えたファイルは「衝突あり」として扱われます。後述するマージ戦略を必ず押さえてから改変してください。

Instruments で診断すべき 3 つのプロファイル

Rork Max が生成するコードは十分に動きますが、初期状態では「とりあえず動く」レベルに留まっていることが多いです。プロダクション品質に仕上げるには、Instruments を使った診断が必須です。特に見るべきプロファイルは次の 3 つです。

1. Time Profiler — CPU 時間の見直し

アプリ起動時やタブ切り替え時の体感速度が遅いと感じたら、最初に Time Profiler で計測します。Rork 生成コードで典型的に遅いのは、次のパターンです。

// 遅い: 毎回すべての要素を再計算
var body: some View {
    List(items) { item in
        Row(item: item, score: computeScore(for: item))
    }
}

computeScore が重い計算を含んでいると、スクロール時に毎フレーム再計算が走って体感速度が落ちます。対策は @State でキャッシュするか、コンピュテッドプロパティを事前計算しておくことです。

// 速い: 事前計算してキャッシュ
@State private var cachedScores: [UUID: Double] = [:]
 
var body: some View {
    List(items) { item in
        Row(item: item, score: cachedScores[item.id] ?? 0)
    }
    .task {
        await computeAllScores()
    }
}

2. Allocations — メモリ使用量の把握

Rork Max が生成するコードは、画像の扱いで不要なメモリを消費するケースがあります。Allocations プロファイルで「Transient」ではなく「Persistent」なメモリの増加を追うと、解放漏れが見えてきます。

特に AsyncImageUIImage(data:) を多用するリストは要注意です。画像のダウンサンプリングを入れるだけで、メモリ使用量が 1/5 になることもあります。

// 画像のダウンサンプリング関数
func downsample(image data: Data, to pointSize: CGSize, scale: CGFloat) -> UIImage? {
    let imageSourceOptions = [kCGImageSourceShouldCache: false] as CFDictionary
    guard let imageSource = CGImageSourceCreateWithData(data as CFData, imageSourceOptions) else {
        return nil
    }
    let maxDimensionInPixels = max(pointSize.width, pointSize.height) * scale
    let downsampleOptions = [
        kCGImageSourceCreateThumbnailFromImageAlways: true,
        kCGImageSourceShouldCacheImmediately: true,
        kCGImageSourceCreateThumbnailWithTransform: true,
        kCGImageSourceThumbnailMaxPixelSize: maxDimensionInPixels
    ] as CFDictionary
    guard let downsampledImage = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, downsampleOptions) else {
        return nil
    }
    return UIImage(cgImage: downsampledImage)
}

3. SwiftUI — ビュー更新の可視化

SwiftUI は宣言的なゆえに、どの View がどのタイミングで再描画されるかが直感と合わないことがあります。SwiftUI Instrument を使うと、予期しない再描画が可視化されます。

Rork 生成コードで典型的に起こる問題は、ObservableObject のプロパティを監視している View が、関係ないプロパティの変更でも再描画されることです。これは @ObservedObject@Published 個別の値に分解して渡す、あるいは EquatableView を使うことで改善できます。

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

この記事の続きを読む

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

この記事で得られること
Rork Max が生成したプロジェクト構造の読み方と、手動で触るべき・触るべきでないファイルの見分け方
Instruments の Time Profiler / Allocations / SwiftUI を使った、Rork 生成コードの典型的なボトルネック診断
Rork Max のアップデートを取り込んでも、Xcode 側で加えた最適化を失わないマージ戦略
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-12
Rork Maxのアプリで、アイコンを気持ちよく動かすsymbolEffect実装メモ
Rork Maxが生成したSwiftアプリで、SF Symbolsをbounce・pulse・variableColor・contentTransitionで動かす実装を、動くコードとOSバージョンの出し分け、そして動かしすぎて後悔した落とし穴つきで整理します。
開発ツール2026-07-09
Rork Max が書いた Swift を、Swift 6 の厳格な並行性検査に通す
Rork Max が生成した SwiftUI アプリを Swift 6 の complete concurrency checking に通した記録です。警告217件をターゲット単位で削り、@MainActor の置き場所と Sendable の壊し方を実測とともに整理しました。
開発ツール2026-07-06
Rork Max の SwiftUI を @Observable へ移す — ObservableObject で広がっていた再描画を絞り込む
Rork Max が生成する SwiftUI アプリは ObservableObject と @Published をよく使いますが、状態が一つ変わるだけで購読しているビュー全体が再評価されます。Observation フレームワークの @Observable へ移すことで、プロパティ単位に再描画を絞り込む手順と、Instruments で実測したビュー実行回数の変化を、個人開発の作業ログとしてまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →