Tech Blog

グローバルな家族アプリFammを運営するTimers inc (タイマーズ) の公式Tech Blogです。弊社のエンジニアリングを支える記事を随時公開。エンジニア絶賛採用中!→ https://timers-inc.com/engineering

Xcodeの開発の効率を上げるためにしていること

iOSエンジニアのすーです!
今回は少しプログラムの話から遠ざかって、Xcodeでの開発の効率をどうやって上げているか、書いてみようと思います。

基本的にはマウス(トラックパッド)を使わないで済むようにする

やはり、一度キーボードから手を話してマウスやトラックパッドを使ってしまうと、その分時間もかかってしまうので、 ショートカット を駆使して、なるべくその時間を最小限に抑えます。
今回は特に使う便利なショートカットを絞って紹介します。
(※基本的にはXcodeのデフォルトのkey bindの状態で紹介していきます。)

プロジェクト内のファイル検索+移動 cmd + shift + O

プロジェクト内の他のクラスファイルに移りたい時に、いちいちナビゲーションエリアのツリーから探していると非効率なので、このショートカットを使って、自分が開きたいファイル名を入力して Enter を押して移動します。
そしてこの検索では、多少曖昧でも調べられるので、「AppDelegate.m」を見つける時に、「appd.m」みたいに曖昧に打っても見つけることができます。

f:id:sgrksmt:20161125123814p:plain

更に、 Enterの代わりに opt + Enter としてあげることで、編集エリアの右ペインにファイルを表示できるので、左側で作業しつつ、他のクラスの定義を右側に出したいときなんかはこれが重宝します。

f:id:sgrksmt:20161125124527g:plain


プロジェクト全体の検索・置換 cmd + shift (+ opt) + F

これも割と使う機能なのですが、ショートカットを知らないといちいちナビゲーションエリアで虫眼鏡押して... となるので、時間がかかってしまいます。
ので、これもショートカットを活用しましょう。

  • プロジェクト内検索 : cmd + shift + F
  • プロジェクト内検索+置換 : cmd + shift + opt + F

これで一発で検索エリアを開くことができます。

f:id:sgrksmt:20161125140736g:plain

ちなみに、今開いているファイル内での置換は cmd + F 、置換は cmd + opt + F で実行することができます!


新しいタブ/ウィンドウを開く

作業している時に、一時的に他の画面に新しいウィンドウを開いたり、タブを開いたりしたくなるときがあります。
そういうときは、 cmd + T で新しいタブを、 cmd + shit + T で新しいウィンドウを開くことができます。


新しいペインを開く(画面分割をする) cmd + opt + Enter

単純に画面を分割したいときは、 cmd + opt + Enter で分割ができます。
また、分割した画面を1つに戻す時は、 cmd + Enterです。

f:id:sgrksmt:20161128190956g:plain


ペイン、タブを移動/新しく開く cmd + J

ついつい、隣に開いたペインやタブに移動するときに、トラックパッドでタッチして、、ってやりがちなのですが、
このショートカットを使うと簡単に移動したり、あたらしく開いたりすることができます。

f:id:sgrksmt:20161128192505g:plain


指定した行数にジャンプする cmd + L

このクラスのこの行数付近の定義を見たい...というときは、cmd + Lを押すと、行数を入力するウィンドウが出てきて、
行数を入力してEnterを押すと、その行にジャンプします。

f:id:sgrksmt:20161128190807g:plain


デバッグ関連

デバッグ関連の動作も、それぞれのボタンをタップするよりはショートカットを覚えると楽になります。

デバッグ時に出てくるデバッグウィンドウの開閉をします。邪魔な時、出したい時はこれで済ませます。

  • Break Pointを設定する cmd + \(バックスラッシュ)

今いる行にBreak Pointを貼る/解除することができます。

  • BreakPointとかで止まった時に、次の行にステップする(Step Over) F6

BreakPointとかで止まった時に次の行にステップを進めたい時は、このショートカットキーで行えます。
人によってはFunctionキーだと、、って場合があると思うので、その時はショートカットキーを好きなものに変えると良いです。

  • Break Pointで止まっている時に、再開させる cmd + ctrl + Y

止めているのを辞めて実行を再開させるときはこのショートカットキーですぐに再開させることができます。

スクリーンショットを撮る(おまけ)

実機やシミュレーターでデバッグしている時に、その画面のスクリーンショットを撮りたい時があります。
そんなときに、特に実機だと実機側でスクリーンショットを撮ってしまうとPCに転送するのも面倒だなあ...ということがあるので、
ショートカットキーを登録して簡単に行えるようにしてみました。

詳しくはこちらの僕が書いた記事を見てください!そしてあわよくばいいねを...笑

他にも

マウスを極力使わない工夫として、AlfredDashスニペット機能を最大限に活用しています。

Alfredにworkflowを追加して、cmd + shift + ctrl + XXcodeをすぐに開けるようにしたり、
Dashのスニペットでよく使う構文を登録してサッと呼び出せるようにしています。

f:id:sgrksmt:20161209105044p:plain

以下はDashのスニペットの一例です

  • @strong って打つと...
guard let strongSelf = self else {
    return
}

とエディタに出力されます。これはよくあるclosureのweak selfチェックの時の構文です。

  • @dispatchafter って打つと...
DispatchQueue.main.asyncAfter(deadline: .now() + ___var___) {
    
}

とエディタに出力されます。これもよく使ったりするのですが、打つのが面倒なのでスニペットに登録しています。 ※ ___var___ の部分はスニペットで入力するときに、こちらから文字を追加し合成して出力することができます。

まとめ

他にも役に立つショートカットや、基本的なショートカット(cmd + Rで実行)とかもありますが、今回は知っているようで知らないような、役に立つショートカットを紹介しました。
よかったら覚えて使いこなしてみてください。

積極採用中!!

子育て家族アプリFamm、カップル専用アプリPairyを運営するTimers inc. では、現在エンジニアを積極採用中! 急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください! 採用HP : http://timers-inc.com/engineerings

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる