◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-04-07上級

Rork Max × Liveblocks / Yjs:リアルタイム協調編集アプリ開発

Rork MaxアプリにLiveblocksとYjsを統合し、複数ユーザーが同時編集できるリアルタイム協調機能を実装します。競合を自動解決するCRDTの仕組みから、クライアント初期化、プレゼンス表示、協調テキストエディタの実装までを段階的に解説します。

Rork585LiveblocksYjsCRDTリアルタイム7協調編集Supabase37React Native239

✦ プレミアム記事

取り組みの背景:「一緒に作る」体験をアプリに組み込む

Google ドキュメントやFigmaのように「複数人が同時に編集できる」機能は、現代のプロダクティビティアプリには欠かせない要素になりつつあります。しかし、このリアルタイム協調編集(Collaborative Editing)の実装は、従来の開発では非常に難易度が高い領域でしました。

Rork MaxとLiveblocks・Yjsを組み合わせることで、この複雑な機能をモバイルアプリに比較的シンプルに組み込むことが可能です。ここで扱うのはCRDTの基本概念から始め、実際に動作するリアルタイム協調編集アプリをステップバイステップで構築する方法を解説します。

対象読者は、Rork Maxの基本的な使い方を理解しており、React Native / Expoでの開発経験がある方です。バックエンドの知識(Supabase or Firebase)があるとさらに理解が深まります。


CRDT とは何か:競合を「自動解決」する仕組み

リアルタイム協調編集の根幹にあるのが、**CRDT(Conflict-free Replicated Data Type:競合なし複製データ型)**という概念です。

従来のリアルタイム同期(OT: Operational Transformation)はGoogleが開発した手法で強力ですが、実装が複雑でサーバーが単一障害点になるリスクがありました。これに対してCRDTは:

  • 数学的に証明された競合解決 — どの順序でオペレーションが届いても、最終的に全クライアントが同じ状態に収束する
  • オフラインファースト対応 — ネットワーク切断中も編集を続けられ、再接続時に自動マージ
  • サーバー不要の分散設計 — P2Pで同期することも可能

YjsはJavaScript向けのCRDT実装ライブラリで、以下のデータ型を提供します:

  • Y.Text — テキストの協調編集(差分挿入・削除)
  • Y.Array — 配列の協調操作
  • Y.Map — オブジェクトの協調更新
  • Y.XmlFragment — リッチテキスト・HTMLの協調編集

Liveblocksは、YjsのホスティングインフラとリアルタイムAPIを提供するSaaS。WebSocketサーバーの管理・スケーリングを肩代わりしてくれるため、アプリ側の実装に集中できます。


✦

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

この記事の続きを読む

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

この記事で得られること
✦CRDTとYjsの仕組みを理解し、競合なしのリアルタイム同期を実装できる
✦LiveblocksをRork Maxアプリに統合し、プレゼンス表示・カーソル追跡・ライブカーソルを構築できる
✦Supabase Realtimeとの組み合わせで低コスト・高スケーラブルな協調基盤を設計できる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-09-04
EAS の secret は「アプリに入れない」設定ではありません — 接頭辞と可視性を別々に決める
EXPO_PUBLIC_ の接頭辞は成果物に入るかを決め、EAS の可視性は誰が読めるかを決めます。二つを重ねたときに OTA 更新でだけ値が消える筋道と、出荷前に自分の手で確かめる手順をまとめました。
⬡ 開発ツール2026-08-22
一括置換は全ファイル成功しました。壊れたのは、消さなかった行のほうです
生成コードに一括置換をかけると、一致した行ではなく隣の行が壊れます。運用中のプロジェクトで実際に起きた破損と、置換の不変条件を検査する20行のガードスクリプトをまとめました。
⬡ 開発ツール2026-08-14
Expo SDK 57 に上げる前に、prebuild で消えるネイティブ変更を洗い出す
Expo SDK 57 では expo prebuild が既定で ios と android を消してから再生成します。手編集を上げる前に洗い出す方法、config plugin への移し替え、57.0.9 で解消したメモリ回帰までを実務の順序でまとめました。