現時点でM1 Macはモバイルアプリ開発に使えるのか?
M1 MacBook Proを入手したので、現時点(2020/11/21)でモバイルアプリ開発に使えるのか確認してみました。
まだ数時間しか触れていない為、何かあれば都度更新していきます。
iOS/Android共通
- Fork
Rosetta上で問題なく動作しました。
- Karabiner-Elements
ユニバーサルアプリ対応済みで問題なく動作しました。
iOSアプリ
- Homebrew
Rosettaを使用してターミナルを起動することで問題なくインストールできました。
- rbenv, fastlane, cocoapods
Rosetta上のターミナルで問題なく動作しました。
(carthageはまだ試していません)
- Xcode 12
Apple Siliconネイティブでも動作はするが、iOSシミュレーターは、まだARM64のiOSシミュレーターに対応していないサードパーティーライブラリが多く、これを含めてビルドするとビルドエラーとなりました。
この問題はRosettaを使用してXcodeを起動することで回避できました。
また、Rosetta上のiOSシミュレーターも問題なく動作しました。
Androidアプリ
- Android Studio
Rosetta上で問題なく起動、ビルドできました。
- adb
Rosetta上のターミナルで問題なく動作しました。
Android 11以降で利用できるワイヤレスデバッグも問題なく動作しました。
- Android エミュレーター
CPUのアーキテクチャーが異なるため、Intel HAXMがインストールできず、エミュレーターの起動もできませんでした。
そのため、当面のデバッグは実機が必要になります。
ビルド時間
iOS/Androidのそれぞれで、同一プロジェクトのクリーンビルド時間を計測しました。
- iOS
- M1 MacBook Pro (Rosettaなし): 87.4 seconds
- M1 MacBook Pro (Rosettaあり): 157.4 seconds
- 13インチ MacBook Pro 2018 (2.7GHz Quad-Core Intel Core i7, 16GB RAM): 208.6 seconds
- 27インチ iMac 2017 (4.2GHz Quad-Core Intel Core i7, 16GB RAM): 197.1 seconds
- Android
- M1 MacBook Pro (Rosettaあり): 240.611 seconds
- 13インチ MacBook Pro 2018 (2.7GHz Quad-Core Intel Core i7, 16GB RAM): 145.45 seconds
- 27インチ iMac 2017 (4.2GHz Quad-Core Intel Core i7, 16GB RAM): 128.635 seconds
まとめ
今のところAndroidアプリの開発に関しては実機が必要ですが、それ以外は特に問題なく動作したので、日常の開発マシンとして使えそうです。
また何よりも、Intel Macよりもビルドが早く、多少の負荷を掛けてもファンが全く回らないのに驚きました。