LoginSignup
5
3

More than 3 years have passed since last update.

【Android Studio】コードスニペットを使ってみよう!

Last updated at Posted at 2020-03-16

コードスニペットとは

code snippetを直訳すると コードの切れ端 という意味になります。
Androidアプリ開発に限らず、コードスニペットをうまく活用できると
コーディング速度が爆上がりするらしいです。

これまで、他の言語を利用する上でもあまり気にしていなかった部分であり、
実際に少し触ってみると便利だなと思ったので設定方法の備忘も兼ねてご紹介していきます。

Android Studioにおけるコードスニペット

Androidアプリの統合開発環境であるAndroid Studioでは、
コードスニペットをLive Templatesと呼んでいます。
そのため、本記事でもこれ以降はLive Templateと記載していきます。

設定方法

下記の開発環境での設定方法を紹介していきます。

  • macOS Catalina Version 10.15.4 Beta
  • Android Studio 3.5.2
  • Kotlin

今回は、デバッグログを出力する

android.util.Log.d

  • タグ・・・クラス名
  • メッセージ・・・メソッド名:テキスト

なフォーマットで爆速でコーディングするLive Templatesを設定していきます。

テンプレートの追加

まずはテンプレートを追加します。

メニューバーから
Android Studio -> Preferences... -> Editor -> Live Templates
の順で選択し、テンプレート編集画面を表示します。

Screen Shot 2020-03-16 at 19.46.01.png

実は、android.util.Log.d のある程度のテンプレートは
Android Studioが既に用意してくれています。
Live Templates の AndroidLog を開くと、logd というテンプレートがあります。
これが既に用意してくれている、ある程度のテンプレートです。

Screen Shot 2020-03-16 at 19.47.52.png

AndroidLog の logd テンプレートを選択した状態で command + c を押下し、
Kotlin を選択した状態で command + v を押下すると logd テンプレートが Kotlin にコピーされます。

Screen Shot 2020-03-16 at 21.04.05.png

これでテンプレートの追加は終わりです。

テンプレートの編集

AndroidLog から Kotlin へ logd テンプレートを移動させましたが、
このままでは Live Template として利用することはできません。

利用できるように、ここからテンプレートを編集していきます。

コンテキストの変更

先ほど追加したテンプレートが Live Template として利用できない理由として
コピペしただけでは、Kotlin で利用できるテンプレートとして認識されていないということが挙げられます。
コンテキストを変更して、Kotlin で利用できるテンプレートということを認識させます。

Kotlin の logd テンプレートを右クリック -> Change context...をクリック -> Kotlin にチェックを入れてOK
Screen Shot 2020-03-16 at 20.02.59.png

これでひとまず、Kotlinのコード上で logd と入力するとインテリセンスが効いて
こんなテンプレートがコード上に展開されるようになります。
Screen Shot 2020-03-16 at 20.05.43.png

ただこのテンプレートでは、画像の通り

  • メソッド名を自分で入力する必要がある
  • TAGを別途定義する必要がある

など、爆速というには程遠い状態です。

ここからテンプレートを使いやすいように編集していきます。

テンプレート変数の編集

Android Studio -> Preferences... -> Editor -> Live Templates
でテンプレート編集画面を表示した後、
Kotlin の logd テンプレートを選択すると、画面下部の Template text ウィンドウでテンプレートの内容を編集することができます。

ここからテンプレート変数を編集して、このテンプレートの欠点であった

  • メソッド名を自分で入力する必要がある
  • TAGを別途定義する必要がある

これらの点を解消していきます。

メソッド名の自動補完

logd テンプレートのメソッド名を自動で補完するように設定していきます。

Template text ウィンドウの右側にある、"Edit variables" ボタンを押下して、METHOD_NAMEのExpressionを methodName() から kotlinFunctionName() に変更してOKを押下します。
Screen Shot 2020-03-16 at 20.29.44.png
メソッド名の自動補完はこれで完了です。

クラス名の自動補完

logd テンプレートで TAG と展開されていた箇所を自動で補完するように設定していきます。

まず、Template text ウィンドウのテンプレートを下記のように変更します。

android.util.Log.d("$CLASS_NAME$", "$METHOD_NAME$: $content$")

変更したのは下記の2箇所です。
* TAG を "\$CLASS_NAME$" 変数に変更
* Kotlinで不要な末尾のセミコロンを削除

そして先ほどと同様、"Edit variables" ボタンを押下して、
CLASS_NAMEのExpressionを下記のように設定します。

groovyScript("_1.take(Math.min(23, _1.length()));", kotlinClassName())

クラス名をそのまま利用するかと思いきや、
ログに出力できるタグは最大23文字までなので少し細工します。

そして、CLASS_NAMEの Skip if defined にチェックを入れてOKを押下します。
Screen Shot 2020-03-16 at 20.36.57.png

完成!

Kotlinのコード上で logd と入力してみましょう。
Screen Shot 2020-03-16 at 20.41.06.png
・・・爆速

最後に

Android開発で便利なテンプレート、その他開発ツール等あればぜひぜひご教示ください!!
最後までご覧頂きありがとうございました。

参考

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3