0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mac初心者が Claude Code × Expo でAI駆動モバイル開発に挑戦してみた(開発環境構築編)

0
Posted at

この記事は、Mac初心者がClaude Code + Expo + React Nativeで開発環境を構築した手順をまとめたものです。

はじめに、の前に

Mac買ったー!!!!!!
理由ですか?ふふ・・・

ただの憧れです!
あと
エンジニアっぽいからです!!(ミーハー)

さーて、バリバリ使うぞー!

・・
・・・
・・・・

え・・・?Windowsと全然違う・・・(あたりまえ)
ショートカットわからない!
メニューバーがウィンドウじゃなくて、画面の上にある!?慣れない!!
右クリックは?右クリックぅぅぅ!!!

ちょっと仕事が忙しい・・・あとでやろう・・・

そして月日は経ち

最近、AIエージェントを使った開発(AI駆動開発)が流行ってるみたい。やってみたいな。

せっかくだから、Macの勉強がてらやってみよう。
教えてチャッピー!

はじめに

ということで、
Claude Code + Expo + React Native でモバイルアプリを作ってみることにしました。

ただし問題がありました。

私は・・・先に述べた通り・・・

Mac初心者です。

普段はWindows環境なので、

  • ターミナル?
  • zsh?
  • Homebrew?
  • Macのショートカット?

など、基本から調べながらの構築になりました。

この記事では
Mac初心者がAI駆動モバイル開発環境を構築した手順
をまとめます。


作ろうとしているアプリ

目的がないと身も入らないという事で、

お買い物支援アプリ

を作ろうと思います。

機能はこんな感じ。

  • 買い物リスト登録
  • 店舗登録(地図から)
  • 店に近づいたら通知

位置情報、通知など、モバイル要素が入っているので良いかなと。

技術スタック

今回の開発では、以下の基準で技術スタックを選びました。

  • iOS / Android の両方に対応したい
  • 今後Webアプリ開発にも活かせる技術を選びたい
技術 用途
React Native モバイルアプリ開発フレームワーク
Expo React Nativeの開発ツールキット
EAS(Expo Application Services) アプリのクラウドビルド
Claude Code AIエージェントによる開発

それぞれの選定理由を簡単に説明します。


React Native

React Nativeは JavaScript / TypeScriptでモバイルアプリを開発できるフレームワークです。

通常、モバイルアプリを作る場合は

  • iOS → Swift
  • Android → Kotlin

のように 2つの言語で開発する必要があります

しかしReact Nativeを使うと

  • 1つのコードで
  • iOS / Android 両方のアプリを作れる

というメリットがあります。

今回は 個人開発でAIエージェントと開発するという目的があるため、

  • 学習コストが低い
  • Web技術と親和性が高い
  • AIのサンプルコードが多い

という理由で React Native を選びました。


Expo

Expoは React Nativeの開発を簡単にするツールセットです。

React Nativeをそのまま使うと、本来は

  • iOSのビルド設定
  • AndroidのGradle設定
  • ネイティブSDK設定

など、かなり複雑な環境構築が必要になります。

Expoを使うと

  • 環境構築が簡単
  • 開発サーバですぐ動く
  • ネイティブ機能(位置情報・通知など)が簡単に使える

というメリットがあります。

特に今回のアプリでは

  • 位置情報
  • 通知
  • 地図

などのネイティブ機能を使う予定なので、Expoは非常に相性が良いです。


EAS (Expo Application Services)

EASは Expo公式のクラウドビルドサービスです。

モバイルアプリを実機で動かすには通常

  • Androidビルド環境
  • iOSビルド環境
  • 証明書設定
  • 署名設定

などが必要になります。

EASを使うと

  • クラウドでビルドできる(!?)
  • iOS / Android両方対応
  • CIサービスのようにクラウドで自動ビルドできます

というメリットがあります。

個人開発でもかなり便利なので、Expoとセットで使うことにしました。

(※ iOS向けアプリはMac環境がないとビルドできないと思っていたので、なんでこれが無料でできるの!?とびっくりしました。
個人開発者の囲い込みと、その延長で業務採用に繋げることが目的とのことですが、すごいなぁと。)


Claude Code

Claude Codeは AIエージェント型の開発ツールです。

通常のAIチャットと違い、

  • リポジトリを読み取る
  • コードを修正する
  • 実装を提案する

など、開発作業を自動化できます。

他にも種類はありますが、AI駆動開発において、
最も勢いのあるプロダクトと思われるので、採用しました。


開発環境構築

ここからMacに開発環境を構築していきます。

開発ツールのインストール

今回は以下のツールをインストールします。

ツール 役割
Homebrew Macのパッケージマネージャ
Node.js JavaScript実行環境
nvm (Node Version Manager) Node.jsのバージョン管理
Watchman ファイル変更監視
Git ソースコード管理

Homebrew

Homebrewは Mac用のパッケージマネージャです。
Linuxでいう aptyum のようなものです。

Homebrewを使うと

brew install node
brew install git

のように、コマンド1つでソフトウェアをインストールできます。

Macで開発をする場合、ほぼ必須のツールです。

インストール

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

確認

brew -v

Node.js (nvm)

React NativeやExpoは JavaScriptで動くツールなので、Node.jsが必要です。

Node.jsはバージョン差異によるトラブルが多いため、
nvm (Node Version Manager) を使って管理するのが一般的です。

nvmを使うと

Node 18
Node 20

などを簡単に切り替えることができます。


nvmの役割と仕組み

通常Node.jsをインストールすると、システムに1つだけインストールされます。

/usr/local/bin/node

しかしプロジェクトによっては

  • Node 18
  • Node 20
  • Node 22

など 異なるバージョンが必要になることがあります。

そこで使うのが nvm です。


nvmのディレクトリ構造

mkdir ~/.nvm で作成したフォルダには
Node.jsのバージョンが保存されます。

~/.nvm
 ├ versions
 │   └ node
 │        ├ v18.x
 │        ├ v20.x
 │        └ v22.x
 └ alias

なので

Node v18
Node v20
Node v22

などを 同時にインストールできる というわけです。


インストール

brew install nvm

ディレクトリ作成

nvmがNode.jsを保存するディレクトリを作成します

mkdir ~/.nvm

.zshrc に追加

下記のコマンドで、

  • nvmの保存場所を環境変数に設定
  • nvmコマンドを読み込む

を実施します

echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo 'source $(brew --prefix nvm)/nvm.sh' >> ~/.zshrc

>> は、そのファイルの末尾に追記するという意味です。

ポイント:なぜ >> を使うの?

>>ファイルに追記するリダイレクト演算子です。

演算子 動作
> ファイルを上書き(既存の内容が消える)
>> ファイルに追記(既存の内容は残る)

.zshrc には他の設定がすでに書かれている場合があるため、>> で追記するのが安全です。

シェルへ反映

  • 設定ファイルを現在のシェルに読み込む
source ~/.zshrc

確認

node -v
npm -v

おまけ:source コマンドとは?

設定ファイルを現在のシェルに読み込む

というコマンドです。
 ※ターミナル再起動でも同じ効果があります。

また、$(brew --prefix nvm) は

「Homebrewでインストールされた nvm のインストールディレクトリ」を取得する、
そして、コマンドの実行結果を文字列として埋め込む。

という意味です。

Macの場合、CPUの違いにより、インストールフォルダーが変わるため、このような書き方とのことです。


Watchman

Watchmanは ファイル変更を監視するツールです。

React Nativeでは

  • コード変更
  • ホットリロード

などのために ファイル監視が必要になります。

macOSの標準機能だけだとパフォーマンスが悪くなる場合があるため、
React Nativeでは Watchman の利用が推奨されています。

インストール

brew install watchman

Git

言わずと知れた ソースコード管理ツールです。

今回は

  • Claude CodeによるGitHub連携
  • 開発履歴管理

のために利用します。

インストール

brew install git

Claude Code

Claude Codeは Anthropicが提供しているAIエージェント型の開発ツールです。

通常のAIチャットと違い、

  • リポジトリのコードを読む
  • ファイルを編集する
  • 実装を提案する

など、実際の開発作業を支援してくれます。

AI駆動開発を体験してみたかったので、今回はClaude Codeを使います。


インストール

Node.jsがインストールされていれば、以下のコマンドでインストールできます。

npm install -g @anthropic-ai/claude-code

ターミナル環境の強化

ここまでで開発に必要なツールはインストールできました。

ただ、Macのデフォルトターミナルは少しシンプルすぎるため、
多くの開発者はターミナル環境を強化しています。

今回は以下を導入します。

ツール 役割
iTerm2 高機能ターミナル
Oh My Zsh zshの拡張フレームワーク
Powerlevel10k ターミナルテーマ

これらを入れることで

  • Gitブランチ表示
  • コマンド履歴の強化
  • 見やすいプロンプト
  • 開発効率の向上

などのメリットがあります。


iTerm2

iTerm2は Macで最も人気のあるターミナルアプリです。

Mac標準のTerminal.appでも問題ありませんが、
iTerm2には以下のメリットがあります。

  • ターミナル分割表示
  • 検索機能
  • カスタマイズ
  • コピー&ペーストの改善

インストール

brew install --cask iterm2

インストール後は
iTerm2をメインターミナルとして使うのがおすすめです。


Oh My Zsh

Oh My Zshは zshを強化するフレームワークです。

zshはMacの標準シェルですが、そのままだと

  • Gitブランチ表示
  • コマンド補完
  • テーマ

などの機能が弱いです。

Oh My Zshを入れることで

  • Git情報表示
  • プラグイン
  • テーマ

などが簡単に使えるようになります。

要するに、zshの便利ツール集ですね。

インストール

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Oh My Zsh のインストールスクリプトを実行すると
.zshrc に以下の設定が自動で追加されます。

source $ZSH/oh-my-zsh.sh

この設定によって
Oh My Zsh の機能が読み込まれます。


Powerlevel10k

Powerlevel10kは zsh用の高速テーマです。

ターミナルの表示を見やすく改善します。

  • Gitブランチ表示
  • コマンド成功/失敗表示
  • ディレクトリ表示
  • アイコン表示

インストール

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

.zshrc を編集

次に .zshrc を開いて ZSH_THEME を変更します。
今回は、コマンドラインから編集できるエディタ nano を使用してみます。

nano ~/.zshrc

Ctrl + W で 文字列検索が可能です。
"ZSH_THEME" を検索します。
image.png

検索ヒット
image.png

値を下記のように変更します

ZSH_THEME="powerlevel10k/powerlevel10k"

※ ZSH_THEME は source $ZSH/oh-my-zsh.sh より前に設定されている必要があります。
通常は、既存の ZSH_THEME の値を書き換えれば問題ありません。

nanoでは次のキーで保存できます。

Ctrl + O
Enter

Ctrl + O で下記の表示がされ、Enterで保存されます。
image.png

nanoの終了

Ctrl + X

反映

source ~/.zshrc

初期設定

ウィザードが自動で表示されない場合は、以下を実行します。

p10k configure

セットアップウィザードが表示されるので、質問に答えていくだけで設定できます。
※ウィザードは英語なので、その点は注意。

トラブルシュート

[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found

と表示される場合は、Powerlevel10k 本体が正しくインストールされていない可能性があります。

以下で確認できます。

ls ~/.oh-my-zsh/custom/themes

ここで powerlevel10k という文字列が表示されない場合は、再度インストールしてください。

※私はここでハマりました。。。


おまけ "Oh My Zsh" と "Powerlevel10k" の違い

自分自身、ちょっとよくわからなかったので補足。

Oh My Zsh は zshを拡張するフレームワークで、
Powerlevel10k は zshのプロンプトテーマです。

つまり

zsh

Oh My Zsh(機能拡張)

Powerlevel10k(見た目)

という構造になっています。

なるほどー

設定が完了すると、このような見た目になります。
ウィザードの回答次第で、異なるカスタマイズも可能です。
image.png


Expo プロジェクト作成

ここから実際にモバイルアプリのプロジェクトを作成します。

開発ディレクトリ作成

開発用ディレクトリを作成します。
ここでは、dev というディレクトリを作成します。

mkdir ~/dev

プロジェクト作成

開発ディレクトリに移動したあと、
Expoプロジェクトを作成するコマンドを実行します。

cd ~/dev
npx create-expo-app ShoppingListApp

このコマンドでは

  • React Native
  • Expo
  • TypeScript
  • 開発サーバ

などが含まれたプロジェクトが自動で生成されます。

作成後、プロジェクトに移動します。

cd ShoppingListApp

追加ライブラリ

今回のアプリで使用する予定の機能を先にインストールします。

Expo SDKの公式ライブラリ

npx expo install expo-location expo-task-manager expo-notifications expo-sqlite

それぞれの役割

ライブラリ 役割
expo-location 位置情報取得
expo-task-manager バックグラウンド処理
expo-notifications 通知機能
expo-sqlite ローカルDB

外部ライブラリ:地図表示

npx expo install react-native-maps

これは Google Map / Apple Mapを表示するライブラリです。

Claude Code 起動

プロジェクトディレクトリで以下を実行します。
Claude Codeは プロジェクトディレクトリで起動するのがポイントです。

こうすることで

  • プロジェクトのコード
  • package.json
  • ディレクトリ構造

などをClaude Codeが理解できるようになります。

cd ShoppingListApp
claude

初回起動時はログインが求められます。
※ 記事執筆時点では、Claude CodeはClaude Pro / Maxプランで利用できます

テーマの選択

コマンドを実行すると、テーマの選択が表示されます。
お好みのテーマを選択します。

アカウントの種類を選択

下記のような画面が表示されます。選択項目は、下記の3つ。

  1. サブスクリプション(すでにPro・Maxなどのプランに登録している方はこちら)
  2. APIの使用量に基づく従量課金
  3. サードパーティのプラン

サブスクリプション登録済みであっても、
2を選択してしまうと、別途課金されてしまうようなので注意が必要です。

image.png

種類を選択すると、ブラウザが開き、ログイン画面が表示されます。
ログインすると、承認要求画面が表示されます。

image.png

承諾すると、シェルに

Login successful.

と表示されます。

image.png

続けて、フォルダーを信頼する、を選択をします。

image.png

これで、プロンプト入力が表示され、Claude Codeへの指示ができる状態になりました。
image.png


完成した開発環境の構成

Mac
 ├ Node (nvm)
 ├ Watchman
 ├ Git
 ├ Expo
 ├ EAS
 ├ Claude Code
 └ iTerm2 + OhMyZsh + Powerlevel10k

今後やること

いよいよ実装。(AIが)

お買い物支援アプリ

機能

  • 買い物登録
  • 店舗登録(地図)
  • 店に近づくと通知

これらの機能を、AI駆動開発で作っていきます。


まとめ

AIの力を借りることで、Mac初心者でも開発環境を整えることができました。

次は実装編を書こうと思います。

おまけ Macの基本(備忘)

Macのシェルはbashじゃない

最近のMacは zsh がデフォルトシェルです。

確認方法

echo $SHELL

出力例

/bin/zsh

とはいえ、bashとほぼ同じように使えます。


Macのランチャー

Macのアプリ検索は

⌘ + Space

Spotlightが起動します。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?