🍎

AndroidStudio一筋だったエンジニアがXcode使い始めて困った話

2022/12/06に公開

こんにちは、ほーりー @horitamonです。

エンジニアになって早5年目、気づけば長いことAndroidの開発をやってまいりました。
今年はDroidKaigiにも登壇させていただいて、やっとAndroidエンジニアとしての自我がはっきりしてきた気持ちです。
https://tech-blog.voicy.jp/entry/2022/10/12/154320

そんなわたくしほーりー、今年からiOSアプリ開発を始めました。
しばらくエンジニアをやっていたとはいえ、初めての試み。
日々色々な困りごとの連続でした。

中でも困ったのがXcodeの使い方
というわけで今回はAndroidエンジニアがiOS開発を始めた時に困ることのうち、Xcodeの使い方に範囲を絞って書いていこうと思います。

そしてこちらは"Voicy Advent Calendar 2022"の5日目の記事となっております!
他の記事も読んでみてくださいね!
https://qiita.com/advent-calendar/2022/voicy

Xcodeの使い方を「調べる」のはなかなか難しい

今回なぜXcodeに範囲をしぼるかというと、Swiftの文法やViewの実装方法はAndroidの実装経験があればある程度自力で解決できるからです。

文法に関してはSwiftとKotlinは文法が似ていますし、キーワードで検索すれば大体目的の内容に辿り着けます。
Viewの実装方法に関しても「ios + {そのViewの名前} + 実装」で検索すれば出てきます。
そして私の場合は何より、既に先人が実装済みのソースコードがある状態でしたので、それを読み解けば大体理解できました。

しかしXcodeの使い方となるとそうはいきません。

長いことAndroid開発一筋だったこともあって、AndroidStudioはそれなりに使いこなせるようになってきました。
そんなAndroidエンジニアがXcodeでコードを書いていると、ふと 「AndroidStudioのあの操作がしたいな〜」 と思いつきます。

たとえばショートカットキー。
検索するにしても、AndroidStudioでその操作の名前を覚えてない。
そしてAndroidStudioでその操作の名前を見つけ出して検索してみても、なかなかうまいことヒットしない。

そう、やりたいことは明確なのに、調べ方がわからないという状況に陥ります。

そんな困難を乗り越えて得た知見のうち、使用頻度が高いものをここに記していこうと思います。

宣言もしくは参照箇所に移動: command⌘ + クリック

個人的に一番使ってるショートカットです。
AndroidStudioではcommand⌘+B または commmand⌘+クリックで使えるやつですね。

これは意外とすぐに見つけられましたし、操作もほとんど同じです。
ただAndroidStudioのように「宣言に移動する場合」と「参照箇所に移動する場合」を自動で判別はされず、追加でクリックすることになります。

宣言に移動する場合はJump to Definition、参照箇所に移動する場合はCallersを選択します。
もし面倒であれば、クリック時にcontrol^を押せばJump to Definitionになります。

余談ですが、弊社VoicyのiOSアプリはVIPERを用いて実装しているのもあり、クラス間はprotocolで結合しています。
そのためprotocolを実装したクラスのメソッドでCallersを見てみても、それを呼んでる箇所は出てきません…

この?にイライラしてるのは秘密

そのときは一回Jump to Definitionでprotocolへ飛んで、そのメソッドのCallersをみることになります。

前開いていた位置に戻る/進む: command⌘ + control⌃ + ← or →

AndroidStudioのではcommand⌘ + option⌥ + ← or →でできた操作です。
option⌥をcontrol⌃に変えるだけ。

ただこの操作、UIでできちゃうんですよね…それゆえに調べてませんでした。

ウィンドウ左上の<と>
でもやっぱり効率が悪い気がして調べてみることにしたんですが、この操作がうまいこと言語化できず…
これは偶然見つけた対応表に運良く記載されていました。
ありがとうございます…!
https://web-y.dev/2021/04/25/xcode-android-studio-keyboard-shortcuts/

ビルドせずにデバッガ実行: control^ + command⌘ + R

AndroidStudioでいうAttach Debugger to Android Processです。
実機やエミュレータでRunした後一回Debuggerを終了しちゃったけど、またBreakpointで止めたいな…ってときに使います。
Voicyは再生と収録でアプリが二つあるので、もう一度別のアプリのデバッグを見たい時がよくあります。
そんなときにこの操作をするとビルド不要ですぐ立ち上げられるので便利です。

ここのボタンを押すとできる
結論から言ってしまうと、Xcodeでは全く同じことはできませんでした。
一番近いのがRun Without Buildingです。
ビルド済みのアプリを再びインストールしてRunしたときと同じ状態になります。
なので「今起動してるこの画面からデバッグを始めたい」という操作はできません。残念。
ただビルド時間の分だけ早くなりはするので、ちょっとだけ効率が上がります。

Xcodeの使い方は人に聞くのが一番

というわけで、Xcodeの機能の中でも使用頻度が高く、かつ調べるのが難しかったものを紹介してみました。

検索するのには時間がかかるので、こういった調べ方がわからないときには素直に人に質問しましょう。

…と言うのは簡単ですが、「別にわからなくても作業は進むし、質問して誰かの手を止めるまでもなあ…」と思ってしまうのが人の常。

そんな気遣いがちなあなたにおすすめなのがAndroidStudioの〇〇って、Xcodeでどうやるんだろう? とつぶやいてみること。

https://twitter.com/horitamon/status/1585558155039502336?s=20&t=A8Icl1qIpWfc1nbAG6pMnw

ツイートに飛んでみるとわかりますが、いろんな方が教えてくれました。
本当にありがとうございます。エンジニアみんな優しい。Twitterやっててよかった。

例としてTwitterのリンクを貼りましたが、Slackの自分のTimesでもいいですし、朝一の定例ミーティングでふと言ってみるのもありだと思います。
とにかく言葉にして出してみれば、知ってる人が教えてくれたり、そのとき暇な人が助けてくれたりします。

言葉にするのって大事ですね!

Discussion