MacBook を渡されたのに <kbd>Ctrl+S</kbd> で保存し、エクスプローラーでソリューションを探す——筋肉記憶の方が SDK より移行が難しい。初日コンパイル、初週 PR、初月 CI の三段階チェックリストです。
MacBook を手にした直後、いきなり「スタートメニュー」で Visual Studio を探したり、エクスプローラーで .sln をダブルクリックしようとする——それは SDK より難しいのは筋肉記憶 だというサインです。本記事は Windows で Visual Studio / Visual Studio Code を何年も使ってきた .NET、C++、フルスタック開発者 向けに、「初日にコンパイル、初週に PR、初月に CI」という三段階で再現可能な環境チェックリストを示し、最後に iOS ビルドを クラウド Mac にオフロードするタイミングを説明します。
初日 2 時間:ターミナル、Git、dotnet を先に動かす
いきなりフル Xcode は入れないでください。下の順序なら、通常 120 分以内 に「ソリューションを開く → F5 デバッグ」の主経路を復旧できます。
1. Command Line Tools と Homebrew
xcode-select --install # ダイアログで確認;Git と clang だけなら十分
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Apple Silicon では Homebrew のプレフィックスは /opt/homebrew(Intel は /usr/local)。インストール後 brew doctor でエラーがないか確認。
2. .NET SDK とよく使う CLI
brew install --cask dotnet-sdk
brew install git gh jq fzf ripgrep
dotnet --info # SDK バージョンと RID(osx-arm64)を確認
チームで SDK バージョンを固定する場合、プロジェクトルートに global.json を追加:
{
"sdk": {
"version": "8.0.400",
"rollForward": "latestFeature"
}
}
3. Git の身元と改行コード
git config --global user.name "あなたの名前"
git config --global user.email "you@company.com"
git config --global core.autocrlf input # Mac では input 推奨;Windows 同僚への全リポ改行 diff を防ぐ
ハマりどころ: Windows からクローンしたリポで「全ファイル modified」になる場合、9 割は
core.autocrlfと.gitattributesの不一致。初日にチーム規約を揃える方が、後から履歴を洗うより安い。
IDE の選び方:Rider、VS Code、それとも Windows を残す?
マイクロソフトは Visual Studio for Mac のサポートを終了しました(2024-08)。現実的な選択肢は次のとおり:
| ツール | 向いている人 | 移行コスト | 備考 |
|---|---|---|---|
| JetBrains Rider | 元 Visual Studio ヘビーユーザー、ReSharper 派 | 低 | ソリューション構造、リファクタ、NuGet、デバッグが VS に最も近い;有料 |
| VS Code + C# Dev Kit | すでに VS Code 慣れ、軽量リポ | 非常に低 | 無料;大規模ソリューションのインデックスとリファクタは Rider より弱い |
| VS Code + Cursor | AI 補助コーディング中心 | 低 | VS Code 拡張エコシステムと互換;Agent はターミナルを頻繁に叩く |
| フル Xcode | iOS / macOS / MAUI iOS ターゲット | 中 | Apple プラットフォーム作業時のみ必須;容量大、更新頻繁 |
| Parallels / リモート Windows | レガシー WinForms、WPF、特定 VS プラグイン | 高 | 応急は可、日常の主力には非推奨 |
判断の目安:
- 純 ASP.NET Core / API / コンソール → Rider か VS Code のどちらかで十分。
- .NET MAUI で iOS リリース → ローカル Rider + Xcode(または VS Code + Xcode CLI);Android エミュレータは Mac でそのまま動く。
- チームで ReSharper ルール統一 → Rider ライセンスを会社 JetBrains アカウントに合わせる。
キー割り当てとウィンドウ管理:Ctrl の筋肉記憶を 3 日で切り替える
Mac では ⌘ が Windows の Ctrl の役割(保存、コピー、貼り付け、元に戻す)を担います。対照表は印刷してモニター横に貼るのがおすすめ:
| 操作 | Windows (VS) | macOS |
|---|---|---|
| 保存 | Ctrl+S | ⌘+S |
| 元に戻す | Ctrl+Z | ⌘+Z |
| 行コメント | Ctrl+K, Ctrl+C | ⌘+/(VS Code/Rider で変更可) |
| デバッグ | F5 | ⌘+↩ または F5(ファンクションキーを有効化) |
| ソリューション全体検索 | Ctrl+Shift+F | ⌘+Shift+F |
| アプリ切り替え | Alt+Tab | ⌘+Tab |
ウィンドウ管理 が第二の痛点: Rectangle(無料)か Magnet を入れ、⌃+⌥+方向キーで Win11 のスナップレイアウト相当を実現。マルチディスプレイでは、システム設定 → ディスプレイ → ディスプレイごとに個別の Spaces で、フルスクリーンアプリが画面間を飛び回るのを防ぐ。
ターミナル、シェル、Docker:PowerShell から zsh へ
推奨ミニマムセット
brew install starship eza bat fd
# ~/.zshrc スニペット
eval "$(starship init zsh)"
alias ls='eza --icons'
alias cat='bat'
- PowerShell ユーザー
- `brew install powershell` は可能だが、チームスクリプトは bash/zsh が多い;長期的には個人 alias を zsh に移すのがよい。
- Docker Desktop
- Windows 版と同様;Apple Silicon ではイメージアーキテクチャ(
linux/arm64vsamd64)に注意。DB をコンテナ化したあとも、接続文字列のlocalhostは Mac で同様に有効。 - データベース GUI
- Azure Data Studio、DBeaver、TablePlus は macOS 版あり;SSMS はネイティブ Mac 版なし——Azure Data Studio で代替。
.NET MAUI と iOS:ローカル開発、ビルドの分流
Mac 上の MAUI クロスプラットフォームプロジェクトの典型的な分担:
- Rider / VS Code:共有 UI とビジネスロジックを編集。
- ローカルシミュレータ:iOS/Android UI をデバッグ(Xcode + Android Studio エミュレータが必要)。
- Release Archive:
dotnet publishが Xcode ツールチェーンを起動;CI では固定 macOS ノードの方が安定。
Windows のみの Visual Studio 出身なら、初めての iOS パッケージは署名と Provisioning Profile で長く詰まる——IDE の問題ではなく Apple のフロー。Apple Developer — Xcode サポート で SDK と macOS バージョンの対応を確認。
初週チェックリスト:チーム連携で漏らさない
| カテゴリ | 確認項目 |
|---|---|
| 身元と鍵 | SSH key を GitHub/GitLab に登録;gh auth login または会社 SSO |
| パッケージソース | nuget.config が内部 feed を指す;dotnet nuget list source |
| 証明書 | Apple 開発証明書を .p12 でエクスポート、または CI で Base64 secret |
| 環境変数 | direnv や .env はリポに入れない;1Password / 会社 Vault を使用 |
| フォーマット | editorconfig + dotnet format を Windows 同僚と揃える |
| プリコミット | husky / pre-commit は Mac でも問題なく動く |
Visual Studio の機能が Mac でどう置き換わるか
| VS (Windows) の習慣 | Mac での相当 |
|---|---|
| ソリューションエクスプローラー | Rider Solution ウィンドウ / VS Code Explorer |
| NuGet パッケージマネージャー UI | Rider NuGet ツールウィンドウ;または CLI dotnet add package |
| サーバーエクスプローラー / SQL | Azure Data Studio、Rider データベースツール |
| IIS Express | dotnet run Kestrel;Docker リバースプロキシ |
| WinForms デザイナー | ネイティブ Mac デザイナーなし → Windows VM または Web/MAUI へ書き換え |
| テストエクスプローラー | Rider テストウィンドウ;dotnet test |
| プロファイラー | dotnet-trace、Instruments(ネイティブ)、JetBrains dotTrace |
いつクラウド Mac を使い、ローカル設定を積み上げないか
Visual Studio から Mac へ移行 するチームでよくあるシナリオ:
- Windows が会社標準デスクトップ のまま、モバイル組だけ macOS ビルドが必要 → 専用 Mac をレンタルし、Windows から SSH でパイプラインを起動。
- 複数 Xcode バージョンのマトリクス(iOS 16/17/18 クライアントを同時保守)→ ローカルに複数 Xcode はディスクを食う;クラウドでノード分割の方がきれい。
- 短期の顧客プロジェクト、3 か月後に iOS 納品 → 日次/週次レンタルの方が Mac mini 購入より回収が早い。
迷ったら、第二台の「ビルド専用 Mac」を買う前に、日次レンタルで実リポの xcodebuild archive を回し、36 か月 TCO と比較。サイト内の GitHub Actions macOS Runner ノードコスト も参照できます。
まとめ:移行するのはワークフローであり、単一の IDE ではない
Visual Studio 開発者が Mac に移るとき、初日 は Homebrew、dotnet、Git、IDE 選定;初週 は改行コード、鍵、チームスクリプトの統一;初月 は iOS CI と重いコンパイルをノートから安定 macOS ノードへ切り離す。ツールは変わる(Rider、VS Code、Cursor)が、「コンパイルでき、デバッグでき、届けられる」リズムは途切れさせない。
MAUI + iOS パイプラインを組んでいるなら、ローカルは軽く保ち、Archive はクラウド Mac に——計算資源はコンパイルに使い、引き出しで眠らせない。
ローカルでコード、クラウド Mac で iOS ビルド
Visual Studio から移行後、.NET の日常開発は手元の Mac で;MAUI / ネイティブ iOS の Archive と CI は専用クラウド Mac mini にオフロードが向く。SSH、日次/週次/月次課金——たまのビルド用に第二台は不要。
環境が足りるか不明?日次レンタルで実際の `xcodebuild` を試してから、ローカルに入れる Xcode の量を決めよう。
関連記事
よくある質問
Mac に Visual Studio はまだある?
Microsoft は Visual Studio for Mac を終了(2024年8月サポート終了)。.NET 開発者は JetBrains Rider または VS Code + C# Dev Kit が第一候補。Windows 専用ツールチェーンが必要なら Parallels/リモート Windows は可だが、日常の主力にはしない。
Ctrl と Cmd にすぐ慣れるには?
システム設定 → キーボードでファンクションキーを調整;Rider/VS Code で IntelliJ IDEA Keymap または Visual Studio Keymap を導入。最初の3日は外付けキーボードに Ctrl→⌘ チートシートを貼ると効果的。
.NET プロジェクトは Mac でそのまま動く?
ASP.NET Core、コンソール、クラスライブラリは通常 dotnet restore && dotnet run で可。パス区切り、改行(core.autocrlf)、Windows 専用 API(WMI 等)に注意。MAUI iOS は macOS + Xcode 必須、Android は Mac で完結可能。
Xcode フルインストールは必須?
.NET / Web / バックエンドのみなら 不要。Xcode Command Line Tools(xcode-select --install)で Git とネイティブ依存をカバー。iOS シミュレータ、Archive、Swift 混在にはフル Xcode(30GB+)が必要。
iTerm と Terminal どちら?
どちらでも可。PowerShell 慣れの開発者は iTerm2 + Homebrew zsh + starship と ls→eza 等のエイリアスがおすすめ。bash 前提のチームスクリプトは #!/usr/bin/env bash を明示。
いつクラウド Mac を借りるべき?
24/7 iOS CI、複数 Xcode バージョン、Windows メイン + たまの署名が必要なとき。専用 Mac mini で xcodebuild/Runner を回し、ローカルは Rider でコーディング——ビルド専用機を全員に配るより安い。