スニペット（Snippets）で開発速度を上げる！

[アプリ道場 Advent Calendar 2015](http://qiita.com/advent-calendar/2015/app-dojo)の6日目は@hideyukitoneです。
最近ハマっているスニペットについて書いていきます。
開発速度を上げるためには必須じゃないかと思います。
まだ使ったことない方やこれから使ってみようと思われている方向けに書いていこうと思います。

#スニペットとは？
登録したコードを簡単に**再利用**する機能になります。

**定型文**を作っておくイメージです。
正直最初聞いた時はもっといい名前なかったんかなって思いましたw
調べてみると断片という意味の英語で、IT用語では簡単に切り貼りして再利用できる部分という意味だそうです。アメリカ人からしたら納得のネーミングなんですかね。

#登録方法 -コードの登録-
①を**ドラッグ&ドロップ**で②へ持って行きます。
これだけです。
![Artboard 1.png](https://qiita-image-store.s3.amazonaws.com/0/89206/03f597d9-80f9-e726-b4c4-dae84e4cf86c.png)

##ドラッグ&ドロップできない時
操作は簡単なんですけど、うまくドラッグ&ドロップできないことがあります。
ドラッグ&ドロップしようとしても①の選択範囲が変わるだけの時があるんです。
実はこれがなかなか解決できずスニペットがあまり好きではありませんでした。。
##ドラッグ&ドロップできない時 -解決方法-
①の上でマウスポインターが「**I**」のような奴から**黒い矢印**になるまで押し続けてください。10秒くらいかかる時もあります。
**コレ**→![Artboard 2.png](https://qiita-image-store.s3.amazonaws.com/0/89206/77feeca5-4341-3e49-446b-4c6f05a91737.png)
黒い矢印になったら②まで持って行きます。（他に良い方法をご存知の方は教えて下さい）

#登録方法 -タイトルなど詳細情報の登録-
ドラッグ&ドロップをすると下記のような画面が出てきたかと思います。
閉じてしまった場合や出てこない場合は対象スニペットをクリック→Editで開くことができます。
この出てきた画面からタイトルなどを入力していきます。
![Artboard 4.png](https://qiita-image-store.s3.amazonaws.com/0/89206/e4ae7471-c0c6-2375-34c1-677094ad39be.png)

##詳細情報入力
下記の①から④までを入力しておくと引用時に便利です。
どこで使われるかは下の「登録したスニペットを引用する」に記載しております。
①→タイトル
②→説明
③→ショートカット（引用する時のショートカットです）
④→プレースホルダー
　　<#と#>で囲って`<#こんにちは#>`としてやるとプレースホルダーにできます。
　　※囲った瞬間に内容を変更できなくなるので注意してください。

他の箇所は今回は気にしないでください。このままでOKです。
![Artboard 5.png](https://qiita-image-store.s3.amazonaws.com/0/89206/400efe81-ff72-61b3-fc3e-7c4c08fa180f.png)

##プレースホルダーとは
検索してみると下記のように説明されていました。
実際の内容を後から挿入するために、とりあえず仮に確保した場所のこと。また、そのことを示す標識などのこと。

プレースホルダーはXcodeを使っているとどこかで見かけたことがあるかと思います。
入力するところが灰色になっているあれですね。

#登録したスニペットを引用する
引用する方法は2通りあります。

1. スニペットをドラッグ&ドラッグでコード部分に持っていく
1. ショートカットから引用する

##スニペットをドラッグ&ドラッグでコード部分に持っていく
下記のように先ほど入力したタイトルと説明が表示されているのが確認できます。
このタイトルと説明から引用したいものを探してドラッグ&ドロップでコードに持っていきます。
<img width="260" alt="スクリーンショット 2015-12-05 1.56.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/89206/6305e0cb-5abe-c45a-030f-28d261eda229.png">

Filterより検索できます。
タイトルと説明部分が検索対象です。
<img width="259" alt="スクリーンショット 2015-12-05 9.51.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/89206/6a569fd4-084d-4db6-6adb-823f693c3e9d.png"> <img width="262" alt="スクリーンショット 2015-12-05 9.53.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/89206/a6cf3187-3b82-f1c0-5ddc-c35ebe17d75f.png">

##ショートカットから引用する
先ほど登録したショートカットを使います。
こちらの方が実用的なため、ショートカットから引用することが多くなるかと思います。

下記のようにcoと入力しただけで候補として上がってきました。
また先ほど入力したタイトルと説明が表示されているのが分かります。
Enterを押して引用します。
<img width="806" alt="スクリーンショット 2015-12-05 1.55.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/89206/d701b4c3-bbdc-54ed-7aa5-7dc27e020ddb.png">

##引用後
引用すると下記のようになります。
プレースホルダーを設定しておくと入力忘れを防止できて良いですね。
<img width="279" alt="スクリーンショット 2015-12-05 2.39.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/89206/dd2f2c86-66a9-6daa-ab29-95ad70b922e0.png">

プレースホルダーに入力して完了です。
<img width="265" alt="スクリーンショット 2015-12-05 2.42.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/89206/ebb491c2-ec82-fd08-29d1-fc7e9d89269d.png">

#最後に
今回例として使用したのはたかがメソットコメントですが、
これだけでも開発速度が上がる気がしてこないでしょうか？
私はTableViewを使うときの必須メソッドやenumなどを登録しています。
私自身、スニペットを使う前と比べると開発速度がかなり上がりました。
今となっては、これなしでは開発できないですね。
そもそもメソッドコメントの書き方なんて覚えてられないですし。。
ちなみに複数Macで開発をされている場合でも同期を取ることができます。
興味のある方は調べてみてください。

自分専用のスニペットを作成して開発速度を上げましょう！