RORK LABEN
BUILD — Rork Max はクラウド上の実機 Mac に Xcode と iOS SDK を載せ、SwiftUI を書き、ビルドし、エラーを読んで直す反復を回します。コードを吐いて終わりではない点が生成物の質に効いていますNATIVE — 生成されるのは React Native ではなく純粋な Swift / SwiftUI です。AR や Metal、ウィジェットなど React Native からは届かない機能に手が届くことが、他ビルダーとの実質的な差になりますPLATFORMS — 対応は iPhone・iPad・Apple Watch・Apple TV・Vision Pro に加えて iMessage まで含みます。ウォッチや拡張から入る設計を試すのに向いていますCOMPANION — Rork Companion により、有料の Apple Developer アカウントなしで生成したアプリを実機の iPhone で確認できます。最初の一本を試す段階の障壁が一段下がりましたPRICING — 無料で開始でき有料プランは月額25ドルから、Rork Max は月額200ドルの Max プランです。回収できる本数と規模を先に見積もっておく価値がありますDEADLINE — Google Play は2026年8月31日以降、新規アプリと更新の双方に対象 API レベル36 以上を要求します。残り10日で、生成物の targetSdkVersion は自分で確認が必要ですBUILD — Rork Max はクラウド上の実機 Mac に Xcode と iOS SDK を載せ、SwiftUI を書き、ビルドし、エラーを読んで直す反復を回します。コードを吐いて終わりではない点が生成物の質に効いていますNATIVE — 生成されるのは React Native ではなく純粋な Swift / SwiftUI です。AR や Metal、ウィジェットなど React Native からは届かない機能に手が届くことが、他ビルダーとの実質的な差になりますPLATFORMS — 対応は iPhone・iPad・Apple Watch・Apple TV・Vision Pro に加えて iMessage まで含みます。ウォッチや拡張から入る設計を試すのに向いていますCOMPANION — Rork Companion により、有料の Apple Developer アカウントなしで生成したアプリを実機の iPhone で確認できます。最初の一本を試す段階の障壁が一段下がりましたPRICING — 無料で開始でき有料プランは月額25ドルから、Rork Max は月額200ドルの Max プランです。回収できる本数と規模を先に見積もっておく価値がありますDEADLINE — Google Play は2026年8月31日以降、新規アプリと更新の双方に対象 API レベル36 以上を要求します。残り10日で、生成物の targetSdkVersion は自分で確認が必要です
記事一覧/開発ツール
開発ツール/2026-07-04上級

Rork Max 生成アプリで端末同士を直接つなぐ — MultipeerConnectivity が無言で失敗する Local Network 権限の罠

Rork Max が生成したネイティブ Swift アプリに、サーバを介さず近くの端末同士をつなぐ共有機能を組み込む方法です。シミュレータでは動くのに実機でピアが見つからない——その多くは Local Network 権限まわりの無言の失敗が原因でした。

Rork Max233MultipeerConnectivityLocal NetworkSwift48iOS109オフライン共有

プレミアム記事

近くにいる相手とアプリ内のデータを、サーバもアカウントも通さずにその場で渡したい——たとえば作った壁紙プリセットを目の前の友人の端末にそのまま送る、といった機能を Rork Max で作ろうとしたときのことです。生成された Swift はシミュレータでは何の問題もなく動き、ピア一覧にモックが並びました。ところが実機二台で試すと、片方の端末にもう片方が一向に現れません。エラーも出ず、ただ静かに何も起きない。原因を追ったところ、MCSession の使い方ではなく、その手前の Local Network 権限で無言のまま弾かれていました。

この「無言の失敗」は MultipeerConnectivity で近接通信を組むときに最初にぶつかる壁です。個人開発でアプリを作り続けている中でも、権限まわりの取りこぼしは実機でしか露見しないため厄介でした。ここでは、Rork Max が生成したネイティブアプリに端末直結の共有機能を最小差分で乗せる前提に立ち、権限の罠の切り分け方と、そのまま使えるラッパー実装を順にまとめていきます。

なぜサーバを介さず端末を直接つなぐのか

近接共有をバックエンド経由にすると、たとえ相手が目の前にいても「アップロード → サーバ経由 → ダウンロード」という遠回りになります。オフラインの場所では動かず、サーバ費用もかかり、一時的なデータのためにアカウント連携を要求することにもなります。

MultipeerConnectivity は Wi-Fi と Bluetooth を自動で束ねて、同じ Wi-Fi 下でもオフラインのピアツーピアでも、近くの端末を発見して直接データを流せる Apple 純正のフレームワークです。壁紙やプリセットのような「その場で渡せれば十分」なデータには、サーバを持たない選択がむしろ素直だと私は考えています。Dolice Labs で運用しているような小さなアプリでは、機能ひとつのためにバックエンドを増やさない判断が運用コストにも効いてきます。

一方で、恒久的な端末間同期が目的なら CloudKit で端末間データ同期を組む設計 の方が向いています。近接共有は「いま・ここ」で完結する用途に絞るのが要点です。

MultipeerConnectivity の3つの役割を分けて捉える

このフレームワークは登場人物を3つに分けて考えると一気に見通しが良くなります。

  1. Advertiser(広告側): 「ここに居ますよ」と自分の存在を周囲に知らせる役。MCNearbyServiceAdvertiser を使います。
  2. Browser(探索側): 周囲の Advertiser を探し、見つけたら招待を送る役。MCNearbyServiceBrowser を使います。
  3. Session(セッション): 招待が受理されたあと、実際のデータをやり取りする土管。MCSession が担います。

同じアプリが Advertiser と Browser の両方を同時に担うと、どちらの端末からでも相手を見つけて誘えます。この「双方向で名乗り、双方向で探す」構成が、近接共有ではもっとも扱いやすいと感じています。

serviceType はこの3者をひも付ける合言葉です。ここには後述する厳格な命名規則があり、規則を外れると advertiser も browser も静かに動かなくなります。

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

この記事の続きを読む

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

この記事で得られること
実機でピアが一向に見つからず「なぜか動かない」で止まっていた人が、Local Network 権限とBonjourサービスタイプのどこでつまずいているかをlog から切り分けられるようになる
招待から MCSession 確立、切断からの復帰までの状態遷移を、そのまま組み込める薄いラッパーとして手に入れられる
Rork Max の生成コードに最小差分で近接共有を足すときに、AIが書ききれない権限・Info.plist・バックグラウンド制約をどこで自分の手で補うかがわかる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-13
HealthKitの差分同期でデータを取りこぼす — HKAnchoredObjectQueryのアンカーを設計する
HealthKitの差分同期で歩数や睡眠が二重に数えられたり欠けたりする原因は、HKQueryAnchorの永続化設計にあります。newAnchorとdeletedObjectsを正しく扱い、再インストールやバックグラウンド更新をまたいでも整合するローカル取り込みの実装を、動くSwiftコードでまとめました。
開発ツール2026-07-11
Rork Max で App Clip を実装する — QR を読んだ瞬間にアプリの核だけを届ける設計メモ
Rork Maxが出力するネイティブSwiftを土台に、App Clipを実装する設計メモです。15MB制約を守るターゲット分割、NSUserActivityでの起動URL受け取り、apple-app-site-associationの設定、親アプリへの状態引き継ぎまでを実装ベースで整理します。
開発ツール2026-07-08
Rork Max のジオフェンスが20件で頭打ちになる問題を、動的再登録で解く
Rork Max が生成したネイティブ Swift のアプリで、登録したはずのジオフェンスが途中から反応しなくなる——その多くは iOS の「1アプリ20件」という上限に静かにぶつかっています。近い順に20件だけを登録し直す動的再登録の設計と、そのまま組み込める Swift の実装をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →