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-08-17上級

Expo UI の drop-in 置き換えで、依存が本当に1本減る条件

Expo UI が SDK 56 で安定版になり、コミュニティ製パッケージ8件に drop-in の置き換えが用意されました。import を1行入れ替えても依存が減らない場合があります。減る条件を依存グラフから機械的に判定する手順をまとめました。

Expo175React Native227Expo UI個人開発198依存関係4

プレミアム記事

package.json から1行消せるはずでした。消えませんでした。

Expo UI は SDK 56 で安定版になり、これまでコミュニティ製パッケージに任せていたピッカーやスライダーが、SwiftUI と Jetpack Compose の実物に置き換わりました。あわせて8件の drop-in 置き換えが用意されています。公式の案内は「多くの移行は import 1行の入れ替えで済みます」です。

個人開発で運用している壁紙アプリは、画像を横送りで見せる画面を持っています。ページ送りとページジャンプの両方を扱う画面なので、置き換え表に react-native-pager-view が載っているのを見たとき、ここは素直に1本減らせると思いました。

減らなかった理由は、置き換えた側ではなく、それを別の場所から要求しているパッケージの側にありました。しかも、その要求は dependencies ではなく peerDependencies に書かれていたので、package.json を眺めているだけでは目に入りません。

置き換えの是非を判断する前に、まず「そもそも減るのか」を機械的に出す必要がありました。

置き換え表は、削除できる依存の表ではありません

SDK 56 で用意された対応は次の8件です。左の依存を外し、右を使うという対応関係そのものは公開されています。

これまでのパッケージ置き換え先
@react-native-community/datetimepicker@expo/ui/community/datetime-picker
@react-native-community/slider@expo/ui/community/slider
react-native-pager-view@expo/ui/community/pager-view
@react-native-picker/picker@expo/ui/community/picker
@react-native-segmented-control/segmented-control@expo/ui/community/segmented-control
@react-native-masked-view/masked-view@expo/ui/community/masked-view
@react-native-menu/menu@expo/ui/community/menu
@gorhom/bottom-sheet@expo/ui/community/bottom-sheet

この表が答えているのは「置き換え先が存在するか」だけです。「置き換えたら依存が1本減るか」には答えていません。両者は別の問いで、後者はプロジェクトごとに答えが変わります。

置き換えの動機が「見た目をOSに寄せたい」なら前者だけで足ります。動機が「ネイティブ依存を減らして SDK 更新のたびに壊れる箇所を減らしたい」なら、後者を先に確かめないと作業の見積もりを間違えます。私の動機は後者でした。

peerDependencies は package.json の grep に出てきません

手作業での確認は、だいたいこうなります。

grep react-native-pager-view package.json
# "react-native-pager-view": "^9.0.2"

直接依存に1件だけ。使っている画面も1つだけ。ならば置き換えれば消せる、と読みたくなります。

実際には、react-native-tab-view がこれを要求しています。要求の書かれている場所が dependencies ではないところが厄介です。

// react-native-tab-view@4.3.2 の package.json(抜粋)
{
  "dependencies": {
    "use-latest-callback": "^0.2.4"
  },
  "peerDependencies": {
    "react": ">= 18.2.0",
    "react-native": "*",
    "react-native-pager-view": ">= 6.0.0"
  }
}

peer は「自分では入れないが、入っていることを前提にする」宣言です。React Navigation のマテリアルトップタブを使っていれば react-native-tab-view が入りますから、タブを1つでも持っているアプリでは react-native-pager-view は残ります。自分の画面を全部 Expo UI に置き換えても、npm の依存としては1本も減りません。

ここが最初の落とし穴でした。減るかどうかを決めているのは、置き換える側ではなく、それを peer で要求している別のパッケージです。

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

この記事の続きを読む

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

この記事で得られること
Expo UI の置き換え候補8件のうち、自分のプロジェクトで本当に依存が減るのはどれかを、コマンド1本で判定できるようになります
peerDependencies 経由で残ってしまう依存を、置き換え作業に手をつける前に見つけられるようになります
共通コンポーネントを複数のアプリで使い回している場合に、どのアプリのどの画面から着手すべきかを、依存グラフを根拠に決められるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-30
Renovate が触ってよい依存と、触ってはいけない依存 — Expo SDK 57 の123パッケージを機械的に切り分ける
Rork 生成アプリに依存の自動更新を入れると、Expo が版を管理している123パッケージまで巻き込まれます。2026年7月30日時点の実測では、うち6件が npm の最新版へメジャー更新される差でした。除外リストを手で書かず SDK から機械生成する手順をまとめます。
開発ツール2026-07-04
「続きを読む」を出すべきか、テキストの実測で決める — Rork(Expo)の折りたたみ表示設計
商品説明やレビュー本文を3行で畳み「続きを読む」を出す実装で、短い文にまでトグルが付いてしまう問題を解決します。onTextLayout で実際の行数を測り、はみ出す時だけトグルを出す設計を、iOS と Android の差、展開アニメーション、文字サイズ拡大への配慮まで動くコードでまとめます。
開発ツール2026-06-27
無料プレビューがスクショで丸ごと持ち出される前に — Rork/Expo でスクリーンショットと画面収録を検知して目隠しする設計
Rork/Expo アプリで有料プレビュー画像をスクリーンショットと画面収録から守る実装。expo-screen-capture の限界、isCaptured のネイティブ監視、iOS/Android の差を踏まえた目隠し設計を解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →