RORK LABEN
EVENT — 本日9月9日、Apple が「Surprise and Shine」と題したイベントを開きます。日本時間では9月10日の未明2時からですEXPECT — iPhone 18 Pro と Pro Max、折りたたみ機、2nm プロセスの A20 Pro チップ、そして iOS 27 以下の配信日発表が見込まれていますWAIT — この記事を書いている時点ではまだ開催前です。噂の段階で書いたものと発表後に書いたものが混ざると、読む側には区別がつきませんMAX — Rork Max がネイティブ Swift を生成する以上、Apple の動きは他人事ではありません。標準の Rork は React Native、という線引きは繰り返し確認したいところですSIMULATOR — Rork Max はクラウド上の Mac でコンパイルし、ブラウザ内で動くストリーミングの iOS シミュレータで確認できます。Xcode も Mac の実機も要りませんSEASON — OS が新しくなる時期は、自動生成の足場がいちばん揺れます。便利さを謳う記事ほど、この揺れに触れないと不誠実になると感じていますEVENT — 本日9月9日、Apple が「Surprise and Shine」と題したイベントを開きます。日本時間では9月10日の未明2時からですEXPECT — iPhone 18 Pro と Pro Max、折りたたみ機、2nm プロセスの A20 Pro チップ、そして iOS 27 以下の配信日発表が見込まれていますWAIT — この記事を書いている時点ではまだ開催前です。噂の段階で書いたものと発表後に書いたものが混ざると、読む側には区別がつきませんMAX — Rork Max がネイティブ Swift を生成する以上、Apple の動きは他人事ではありません。標準の Rork は React Native、という線引きは繰り返し確認したいところですSIMULATOR — Rork Max はクラウド上の Mac でコンパイルし、ブラウザ内で動くストリーミングの iOS シミュレータで確認できます。Xcode も Mac の実機も要りませんSEASON — OS が新しくなる時期は、自動生成の足場がいちばん揺れます。便利さを謳う記事ほど、この揺れに触れないと不誠実になると感じています
記事一覧/ビジネス
ビジネス/2026-08-25中級

Rork と Claude Code の分担は、ビルド環境を誰が持つかで切っています

Rork とターミナル側のコーディングエージェントのどちらで作るかを、生成物の印象ではなく自分のリポジトリの実データで決めるための手順です。保守の着地層を数えるスクリプトと、再生成でネイティブ設定が消える事故を先に見つける検査を掲載しています。

Rork558Claude Code6Expo203config plugin6個人開発210

プレミアム記事

同じ週に、Rork の画面と自分のターミナルを行き来していました。片方では生成した画面がその場で実機に出て、もう片方では手元のリポジトリに向かってエージェントが差分を書いている。並べてみると、どちらも同じくらい速く動きます。それで「どちらが優れているか」を比べようとして、半日ほど無駄にしました。

比較の材料が出てこないのです。生成された画面のコードを読んでも、エージェントが書いた差分を読んでも、質としてはどちらも許容範囲でした。判断が付かないまま、その日はどちらにも決めずに終わりました。

決め手が見つかったのは、比べるのをやめて自分のリポジトリの履歴を数えたときです。過去に自分が時間を溶かしていた場所は、生成 AI が得意な層とは違うところにありました。

比べる軸を間違えていました

「Rork と、ターミナルで動くコーディングエージェント。どちらでアプリを作るか」という問い方をすると、比較対象は自然とコードの品質になります。どちらが読みやすい JSX を書くか、命名が素直か、状態管理の置き場所が適切か。

ただ、その軸で差が出たとしても、その差は実務ではすぐ埋まります。読みにくければ直せばよく、直す作業はどちらの環境でも同じくらいの手間です。

実務で埋まらない差は、別のところにありました。アプリをビルドして実機に載せる環境を、自分で持つか、相手に預けるかです。

Rork の側にビルド環境を預けると、Mac も Xcode も Android Studio も要りません。Companion 経由なら有料の Apple Developer アカウントを持たないまま実機で確認できます。代わりに、ios/android/ の中の1行に手を伸ばしたい日が来たとき、そこに手が届きません。

手元にビルド環境を持つと、その1行に届きます。代わりに、SDK の更新、証明書の期限、Gradle と AGP の組み合わせ、そのすべてを自分で維持し続けることになります。

どちらが優れているという話ではなく、自分のプロジェクトがネイティブ層にどれだけ触るかで答えが変わる。そこまで整理して、次に「では自分はどれだけ触っているのか」を測ることにしました。

保守の作業がどの層に着地しているかを数える

印象では答えが出ないので、git の履歴から数えました。変更されたファイルを層で分類するだけの短いスクリプトです。

#!/usr/bin/env bash
# 直近 N 件のコミットで変更されたファイルを層別に数える。
# 使い方: ./native-landing.sh [コミット数(既定 200)]
set -euo pipefail
LIMIT="${1:-200}"
 
js=0; native=0; asset=0; plugin=0; other=0
 
while IFS= read -r f; do
  case "$f" in
    ios/*|android/*|*.pbxproj|*Info.plist|*.entitlements|*build.gradle*|*.podspec|Podfile*|gradle.properties)
      native=$((native+1)) ;;
    plugins/*|app.json|app.config.*|eas.json|expo-module.config.json)
      plugin=$((plugin+1)) ;;
    assets/*|*.png|*.jpg|*.webp|*.mp3|*.m4a|*.caf)
      asset=$((asset+1)) ;;
    *.ts|*.tsx|*.js|*.jsx)
      js=$((js+1)) ;;
    *) other=$((other+1)) ;;
  esac
done < <(git log -n "$LIMIT" --name-only --pretty=format: | grep -v '^$' | sort -u)
 
total=$((js+native+asset+plugin+other))
[ "$total" -eq 0 ] && { echo "対象ファイルがありません"; exit 0; }
 
pct() { awk -v a="$1" -v b="$total" 'BEGIN{printf "%.1f", (a*100)/b}'; }
 
printf '直近 %s コミットで触れたファイル: %s 件\n\n' "$LIMIT" "$total"
printf '  JS/TS 層           %4s 件 (%s%%)\n' "$js"     "$(pct "$js")"
printf '  ネイティブ設定層   %4s 件 (%s%%)\n' "$native" "$(pct "$native")"
printf '  設定・プラグイン層 %4s 件 (%s%%)\n' "$plugin" "$(pct "$plugin")"
printf '  アセット層         %4s 件 (%s%%)\n' "$asset"  "$(pct "$asset")"
printf '  その他             %4s 件 (%s%%)\n' "$other"  "$(pct "$other")"
printf '\nネイティブ側の着地率: %s%%\n' "$(pct $((native+plugin)))"

出力はこうなります。手元に作った検証用の Expo プロジェクトで走らせたものです。

直近 50 コミットで触れたファイル: 6 件

  JS/TS 層              1 件 (16.7%)
  ネイティブ設定層      2 件 (33.3%)
  設定・プラグイン層    2 件 (33.3%)
  アセット層            1 件 (16.7%)
  その他                0 件 (0.0%)

ネイティブ側の着地率: 66.7%

git log --name-only は同じファイルを何度でも出すので、sort -u で一意にしています。「何回触ったか」ではなく「何種類のファイルに触ったか」を見たいためです。回数で数えると、毎日触る画面ファイルが票を独占して、年に数回しか触らないのに毎回半日溶ける build.gradle が埋もれてしまいます。

この数え方を、個人開発で長く運用しているアプリに向けたとき、結果は予想と逆でした。私は自分のことを「JS/TS を書いている人」だと思っていたのですが、履歴に残っていたのは設定層とネイティブ層の作業のほうが厚いのです。新しい画面解像度への対応、ビルドツールのバージョン組み合わせ、署名まわり、App Store と Google Play の申告事項。どれも画面のコードではありません。

そして生成 AI がいちばん速いのは、まさにその画面のコードの層でした。自分が時間を溶かしている層と、生成が効く層がずれている。これが半日迷った理由でした。

着地率の読み方はこう整理しています。

ネイティブ側の着地率読み取り推奨
20% 未満設定はほぼ既定のままで足りているビルド環境は預けたままでよい
20〜50%設定に手は入るが、プラグインで表現できる範囲生成側を主・手元を従で回す
50% 超ネイティブ層の作業が保守の中心になっている手元にビルド環境を持つ判断が要る

この表は絶対的な基準ではありません。私は「50% を超えたら考え直す」を目安に置いていますが、アプリの性格によって適正値は動きます。広告やアプリ内課金を積んでいるアプリは構造的に設定層が厚くなりますし、逆に情報を表示するだけのアプリなら 10% 台に収まります。

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

この記事の続きを読む

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

この記事で得られること
道具を乗り換えるかどうかを、生成物の印象ではなく自分のリポジトリの実データで判断できるようになる
再生成でネイティブ設定が黙って消える事故を、起きる前に検知して塞げるようになる
Rork 側に置いたままにする機能と、手元へ引き取る機能を、アプリ単位ではなく機能単位で線引きできるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

ビジネス2026-04-26
Rork の無料プランと無料トライアル — クレジットが尽きたとき、手元に何が残るか
Rork の無料枠を止めるのは日数ではなくメッセージ数です。無料のうちにプロジェクトを書き出し、Rork の外でビルドできる状態かを検査するスクリプトと、課金に踏み切る線引きを個人開発の視点で整理します。
ビジネス2026-09-06
eCPM が下がった月の広告収益を、国の構成と単価に切り分けます
ブレンド eCPM は単価ではなく加重平均です。下がった原因が配信国の構成なのか単価なのかを、合計差分と誤差なく一致する形で切り分ける手順とスクリプトをまとめました。低単価の国を止める前に確かめることも書き残します。
ビジネス2026-08-31
Google Play の期限後、更新を止めた Android アプリを上げるか据え置くかの線引き
更新を止めた Android アプリには、提出の基準とは別の基準が効いています。手元の成果物から実効 targetSdk を並べ、上げる・据え置く・畳むを判断するまでの手順をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます