スマホアプリ開発を始めるにあたりMacBook Pro 14インチ(M3 PRO)を選んだ理由

初投稿です。

これまで組み込みやWindows開発を経験してきましたが、ふと副業でスマホアプリ開発をやってみたい！と思い立ち開発用にMacを購入することになりました。

この記事では
* なぜMacなのか？
* なぜBookなのか？
* なぜM3 PROなのか？

について私なりに考えたことをご紹介します。
ベンチマークやレビューは既にたくさん記事があると思うので、この記事では初心者の視点で選ぶ際に考えたことを書いてみます。

似たような境遇の方がいらっしゃれば少しでも参考になれば幸いです。

## 購入したモデル
私が購入したのはMacBook Pro 14インチ(Late 2023, M3 PRO)です。

* プロセッサ: M3 PRO(11コアCPU, 14コアGPU)
* RAM: 18GB
* SSD: 1TB

プロセッサ、RAMはM3 PROとしては最低構成、SSDは最低構成の512GBからアップグレードしました。

M2世代と比べるとM3とM3 MAXの進化が目覚ましかったため、やや影の薄い感のあるM3 PROですが、個人的にはコスパは決して悪くないように思っています。

## なぜMacなのか？
スマホアプリを作る上で、まずはターゲットプラットフォーム(iOSか、Androidか、両対応か)を決める必要がありました。
私はマルチプラットフォームのフレームワークを使い両対応のアプリを開発する方針としたのですが、iOS向けにアプリを作る場合（iOSネイティブアプリを作る、もしくはマルチ対応アプリを作る場合）、快適に開発を行う上ではMacがほぼ必須というのが私の結論です。

具体的方法は割愛しますが、調べるとWindowsでiOSアプリを開発する方法もあります。
ただコーディングまでは問題なくても、どうしてもビルドやテストで手間がかかる印象があります。
もちろんそのような創意工夫は素晴らしいことだと思うのですが、これまであまりメジャーではない環境を使うことで苦労した経験があるため、**iOSをターゲットにした開発を行う場合、Macはほぼ必須**という結論に至りました。

~~という口実で新しいデバイスが欲しかったという事情も念のため付け加えておきます。~~

## なぜBookなのか？
iMacやMacMini等のデスクトップ型を選ぶか、MacBook Air/Proのラップトップ型を選ぶかは当然ながら完全に好み、当人の運用スタイル次第です。
やはり話題性としてはラップトップ型が目立つ気もしますが、MacMiniやMacStudioはスペックを見ればかなりコスパが良いことに気付づきます。

ただ私が今回ラップトップ型のMacBook Proを選んだのは、今後の開発のスタイルが決まっていないことが理由でした。
現在私はテレワークメインで仕事をしており、作業用デスクにはWindowsのデスクトップとラップトップが設置してあります。
ここにMacMiniやMacStudioであればモニターをWindows機と共有しつつ設置することもできたのですが、配線の問題やWindowsと同時に利用することも考えると、Bookのいわばスタンドアロンとして動く方が機動性、柔軟性があるような気がしました。

そもそもどの程度開発に時間をかけられるか、どのような運用スタイルとなるかが未定なので、運用の幅が広いという意味でMacBookは**潰しが効くのではないか**という判断です。
今後スタイルが決まってくれば別にデスクトップ型でも良かったなと思うこともあるかもしれませんが、それは次回の買い替え時にでも反映しようと思います。

## なぜM3 PROなのか？
Macは2020年にIntelチップからM1ファミリーに切り替わり、2023年11月に新シリーズのM3がリリースされました。
Mシリーズのチップにはいくつかグレードがあり、M◯（無印）、M◯ PRO、M◯ MAX、M◯ ULTRAの順で性能が上がります。（11月時点ではM3 ULTRAは未発表です）

もちろん性能が高いことに越したことはありませんが、価格も相応に上がるので悩みどころです。
各種ベンチマークやレビューを読む限り、CPUの性能としてはM3世代であれば無印であっても十分開発用途には耐えると思います。
個人開発アプリのレベルでは、無印でも性能を使い切るのは難しいかもしれません。

### RAMについて
しかしながらRAMに関しては注意が必要で、M3無印の最低構成の8GBだとやや不足する可能性もあります。
iOS/Androidの公式開発環境であるXCodeとAndroid Studioの推奨スペックがRAM16GB以上となっているためです。

https://developer.android.com/studio/install?hl=ja

必要要件は8GBなので8GBでも開発は十分可能とは思いますが、余裕を見るならば無印の場合にはRAMをアップグレードした方が良いかもしれません。
なおM3 PROでは最低構成で18GBとなっているので、ここはOKということになります。

### ディスプレイの接続枚数
無印とそれ以上では、ディスプレイの接続枚数が違います。

https://support.apple.com/ja-jp/HT213503#:~:text=%E3%83%81%E3%83%83%E3%83%97%E6%90%AD%E8%BC%89%E3%83%A2%E3%83%87%E3%83%AB-,MacBook%20Pro%20(14-inch%2C%202023)%20%E3%81%8A%E3%82%88%E3%81%B3%20MacBook%20Pro,%E3%82%92%E5%90%8C%E6%99%82%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82

MacBookの場合、無印では外部ディスプレイは1枚となるため外部モニタをデュアル構成したかった私はM3 PROを選択しました。
なおM2ファミリーのMacMiniの場合、M2無印でも2枚の外部ディスプレイが接続可能です。

https://www.apple.com/jp/mac-mini/specs/#:~:text=%E6%9C%80%E5%A4%A73%E5%8F%B0%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4,60Hz%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A41%E5%8F%B0

MacBookの場合は内蔵ディスプレイをディスプレイ出力1枚としてカウントするからだと思われます。（内蔵ディスプレイと外部ディスプレイでデュアルモニタを構成できる）

なおドッキングステーションというサードパーティ製の商品を使うことで、無印でも外部ディスプレイ2枚以上を接続することは可能なようですが、今回はなるべく安定した環境を作りたかったので考慮から外しました。

その他、無印とそれ以上ではThunderboltポートの数も異なるため内部のバスの帯域に違いがあるものと推測されます。
拡張性を求めるのであればPRO以上のプロセッサを選択すると良いと思います。

### (補足)Intel Macについて
中古で手に入れることを考えるとIntel時代のMacは現在価格も下がっており、CTO品が格安で手に入るなど考慮の価値はあるように思います。
しかし
* 今後AppleはMシリーズに注力していくだろうこと
* 移行期に生じていた互換性の問題は現在ほぼ解消されていること

を考えると、今から新規でアプリを開発するのであれば、M1以降のMacを選択するのが今後のアプリの互換性を検証する際でも有利だと思います。

## おわりに
以上のような理由で今回は開発用PCとしてMacBook Proを選択しました。
ですがまだ開発もまともに始まっていない状況ですので、考慮しきれなかったことや現実にそぐわない部分もあるかもしれません。

元も子もない話ですが、エンジニアという生き物は新しいガジェットが大好きだと思うので、見た目等で決めてしまうのもアリな気がします。
11月にリリースされたMacBook Proでは、新色のスペースブラックはM3 PRO以上のプロセッサにしか用意されていません。
ブラックが欲しいからM3 PROやMAXというのも、テンションを高める意味では悪くないのではないでしょうか。

あくまで初心者がこんなことを考えていた、という程度ですが参考になれば幸いです。