BLOG.tass.io

Xcode Tip&Tricks by Raizlabs

2015-04-19

Raizlabsというモバイルアプリの開発会社の記事「SPICING UP XCODE (13 Xcode Tips&Tricks)」が素敵だったので、ざっくりまとめてみました。 英語が大丈夫な方は、ぜひ元記事にあたってください。

《元記事》 “Raizlabs - SPICING UP XCODE"

Spicing Up Xcode from Raizlabs on Vimeo.


 

 

1. キーボード編

1-1. キャメルケースでカーソル移動

Ctrl + 左右キーで、キャメルケース区切りでのカーソル移動ができます。+ Shiftキーで、キャメルケース単位で範囲選択とかの方が使うかもしれません。

Ctrl + 左右キーは、OSXのデフォルトでMission Controlの左右移動に割り当てられているので、そのままでは使えません(T_T) 予め、[システム環境設定] -> [キーボード] -> [ショートカット] -> [Mission Control] で「左(右)の操作スペースに移動」のチェックを外しておく必要があります。

1-2. Balance Delimiter

メニューのEditor -> Structure -> Balance Delimiterを実行すると、現在のカーソルから直近のブラケットが選択できます。このBalance Delimiterはすごい便利なのですが、デフォルトではキーボードショートカットが登録されていません(TдT) Xcode Preferences -> Key Bindings で自分で割り当てする必要があります。

ちなみに元記事では、⌘+⇧+SPACEを割り当てているとのこと。


 

 

2. ナビゲーション編

2-1. ProjectNavigatorを表示: ⌘ + ⇧ + J

ビルドログやデバッガでコードを追いかけている内に、
「あれこのファイルはプロジェクトのどこにあったっけ?」
と思うことありませんか?(^m^;)

そんな時は、⌘ + Shift + J でProject Navigatorへ移動して、今エディタで開いているファイルをツリー上で見つけることが出来ます。

2-2. Docsを表示: Option + クリック

Option + クラス名やメソッドをクリック で、ポップアップでドキュメントが表示できます。わりとメジャーな機能ですかね(;´∀`)

2-3. Docsを開く: Option + ダブルクリック

2-2.をダブルでやると、別ウィンドウでドキュメントが開きます。
私はあまりダブルクリック(ダブルタップ)をしないので、馴染みませんが…。

2-4. 別エディタで開く: ⌘ + Option + ,

⌘ + Option + ,で、今開いているファイルを、アシスタントエディタで開き直します。「ちょっと別ファイルを修正したいんだけど、いま開いているファイルも残しておきたいな」という時に、まずはエディタを二分割するのに使えますね。

2-5. 別エディタで定義を開く

Command + Option + Ctrlを押しながらコードをクリック すると、アシスタントエディタで定義が開きます。
キーが増えすぎて覚えられない人は、とりあえず ⌘+クリック で現在のエディタ上で定義に飛べます(;´Д`)

2-6. オススメのトラックパッド設定

トラックパッドのジェスチャーは、使い慣れると便利ですよね!(^◇^)

ただし、OSXのデフォルト設定とかちあっていると上手く操作できませんし、左右スワイプと上下スワイプが間違って認識されてしまうと、またストレスがたまります…。

そこで、[システム環境設定] -> [トラックパッド] -> [その他のジェスチャ]から下記の設定するのがおすすめらしいです。

  1. 「ページ間をスワイプ」「2本指または3本指でスワイプ」に設定する
  2. 「フルスクリーンアプリケーション間をスワイプ」「4本指で左右にスワイプ」に設定する
    (1.の3本指のスワイプと重複しないようにするため)
  3. 「Mission Control」「アプリケーションExpose」をそれぞれ
    「4本指で上(下)にスワイプ」に設定する (1.の3本指のスワイプと重複しないようにするため)

これで、Xcode上で

  • 2本指の左右スワイプで 「前後に開いていたファイルに移動」
  • 3本指の上下スワイプで 「.hと.mファイルが切り替え」

ができるようになります。

後者は ⌘ + Ctrl + 上下キーでも実現できますが、ジェスチャで切り替えできるのも便利です!

ミソなのは、「ファイルを移動したい時は2本指で左右」「クラスの定義と実装を切り替えたい時は3本指で上下」と使う指の数が違うところ。両方共2本指(3本指)にしておくと、たまに左右に動かしたつもりなのに上下と誤認識されてイラッ!とすることもなくなります。

2-7. Quicklyダイアログ: ⌘ + Shift + O(オー)

Xcodeにはランチャーのように便利に使えるQuicklyダイアログがあります。
⌘ + Shift + O(オーです。ゼロじゃない)でダイアログを開き、表示したいファイル名やクラス名などを入力すると候補が表示されます。かなりファジーに検索してくれるので、単語の一部などうろ覚えな入力でも候補に出してくれます。

例えば、マッチングには拡張子も使われるので、xibファイルを検索したい時は末尾にxと入力すれば、xibだけを候補に絞ることもできます。

便利!!!


 

 

3. トリック編

3-1. プログラムカウンターの移動

ブレークポイントで停止させた後、実行位置を移動させて、任意の処理をスキップする事ができます。

現在の停止位置を示す緑色のカーソルを、ドラッグ&ドロップで移動させるだけです!ただし変えた位置によってはクラッシュするでしょうし、コードとアセンブリが必ずしも一致しているわけではないので意図した通りになるとは限りませんが、修正してビルドして実行するより手軽に試すことができるテクニックです( ´∀`)b

3-2. デバイス毎のプレビュー表示

StoryBoardでUIを作っている場合、iPhone4やiPhone5/6plusなど、様々なサイズの端末でどのように表示されるか確認したいことがありますよね? 逐一StoryBoardの表示を変えたりシミュレータを立ち上げたりするよりも、プレビューで一度に表示することができます。


(大きい画像はこちら)

  1. StoryBoardを開く
  2. アシスタントエディタを開きます(⌘ + Option + Enterキー)
  3. Jump Barから、「Preview」を選択します
  4. 左下の+ボタンから、機種を選んでプレビューを追加できます!

これで同時に、複数デバイスのサイズや向きでのプレビューを確認することができます( ^ω^ )

3-3. Jamp Bar(Ctrl + 6)上でシンボル検索

#pragma mark -で、Jump Barの中にコメントを表示してコードを検索しやすくするテクニックは、結構皆さんやっているとおもいます。このJump Barは、キーボードショートカットの Ctrl + 6で開くことができるのはご存知でしょうか?(私は知らなかったので、毎度クリックしてました…orz)

これだけでも便利なのですが、実はさらに、このJump Barの中でシンボル検索ができます。 Jump Barを表示した状態で文字を入力するだけで、自動的にテキストボックスが表示されて絞込されます。

(大きい画像はこちら)

3-4. Alcatraz

Alcatrazは、Xcodeプラグインのパッケージマネージャです。ほんと超便利で愛用しております><
このAlcatorazからインストールできるプラグインのうち、おすすめプラグインの紹介です。

(1) DerivedData Exterminator

何度もビルドしている内に、DerivedDataが残ってしまい意味不明な現象でビルドに失敗することがありますよね…。 そのたびにTerminalからDerivedDataを探しだして消すとかって作業は本当に不毛です(T_T)
DerivedData Exterminatorは、DerivedDataへのショートカットをXcode上に置いてくれるプラグインです。

(2) Fuzzy Autocomplete for Xcode

Xcode組み込みのオートコンプリートよりも柔軟に(ファジーに)候補を選び出してくれるプラグインです。

(3) GitDiff

Xcodeのエディタ上でgitのdiffを表示してくれるプラグインです。

(4) SCXcodeSwitchExpander

switch-case文の候補を自動補完してくれるプラグインです。
個人的には、できるだけswitch自体を書きたくないですけど…

(5) VVDocumenter

コードドキュメントを書くための補助ツールです。
ドキュメントの記述がすこぶる捗ります⁽⁽٩(๑˃̶͈̀ ᗨ ˂̶͈́)۶⁾⁾

(6) XVim

Vim教徒の方はどうぞ( ゚д゚)


 

 

最後に

すみません、私は存じ上げなかったのですが、Raizlabsは"mobile app development company“を掲げている、モバイルアプリ開発の老舗らしいです。かっこよさげなアプリを沢山つくっておられます。(●´ω`●)

唐辛子を食って講演をはじめるZevさんかっけーですw

※この記事はRaizlabs様にお許しを頂いて掲載しております。感謝です!


Michael Kuroneko

Written by Michael Kuroneko. Follow me on twitter, github.