🦫

【React Native】【Expo】iOSアプリをリモート環境で開発 with Devin, without Mac

に公開

はじめに

GitHub, Devin, Slack, iPhone を使って iOS アプリを開発します。
Mac は使用しません。

今回はアプリの実機デバッグまでを行います。

流れとしては、

GitHub でリポジトリを作成

Devin が実装

GitHub Codespace で Expo を実行

実機 iPhone でデバッグ

事前準備

  • GitHub アカウントの準備
  • Devin 🤝 Slack 連携
  • Expo Go のダウンロード

Step 1: [GitHub] リポジトリの作成

GitHub から"New"より新規リポジトリを作成します。今回はリポジトリ名を「tunnel」としました。

2025/7/28 現在、Devin に GitHub 上に新しいリポジトリを作成することが出来ないため、行っている Step です。

Slackでの指示

Step 2: [Slack] Devin への開発依頼

①Devin へ指示を出します。

Slackでの指示

② 実装開始
Slackで完了

③Devin と Slack 上でやり取りをしながら実装を完了
(道中クラッシュなど問題はあったが解決)
Slackで完了

Step 3: [GitHub Codespaces] 開発環境を構築

Devin が実装したブランチを選択し、「Code」ボタンから「Create codespace on xxx」をクリックします。

Codespaces起動

Codespaces が開きます。

Codespaces起動2

Step 4: [Expo] コードを実行する

Codespaces のターミナルを開き、コマンドを入力します。

npx expo start --tunnel

実行コマンド

このコマンドは、Codespaces 上で開発サーバーを起動し、--tunnelオプションによってインターネット経由でアクセス可能な公開 URL を生成します。

しばらくすると、ターミナルに QR コードが表示されます。

今回は QR コードを表示している端末でデバッグしたいので、一度スクリーンショットを撮ってから、それを読み取りました。
qr

https://docs.expo.dev/more/expo-cli/#tunneling

expo のトンネリングには ngrok が使用されています。

https://ngrok.com/docs

Step 5: [iPhone] 実機でデバッグ

QR コードを読み取ると、iPhone 上で Expo Go が立ち上がり作成したアプリが起動します。

iPhoneでの動作

まとめ

React Native, Expo を使ったリモート開発についてまとめました。Expo はサーバー上で動作することがとても良い開発体験を生み出している思っております。Expo チームには感謝です。
他のユースケースとしては、チーム内でデバッグする際も 1 つリモートで実行させてリンクを共有すれば同じコードで複数人がデバッグできます。(仕事で使用する場合はセキュリティチェックが必要ですが)
また、出先で Mac がない、でも PR のデバッグを行いたい場合に、iPhone や iPad があれば GitHub Codespaces と Expo のトンネリング機能を使い、実機での動作確認が可能です。

Discussion