コードスニペットとは
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
の順で選択し、テンプレート編集画面を表示します。

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

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

これでテンプレートの追加は終わりです。
テンプレートの編集
AndroidLog から Kotlin へ logd テンプレートを移動させましたが、
このままでは Live Template として利用することはできません。
利用できるように、ここからテンプレートを編集していきます。
コンテキストの変更
先ほど追加したテンプレートが Live Template として利用できない理由として
コピペしただけでは、Kotlin で利用できるテンプレートとして認識されていないということが挙げられます。
コンテキストを変更して、Kotlin で利用できるテンプレートということを認識させます。
Kotlin の logd テンプレートを右クリック -> Change context...をクリック -> Kotlin にチェックを入れてOK
これでひとまず、Kotlinのコード上で logd と入力するとインテリセンスが効いて
こんなテンプレートがコード上に展開されるようになります。
ただこのテンプレートでは、画像の通り
- メソッド名を自分で入力する必要がある
- TAGを別途定義する必要がある
など、爆速というには程遠い状態です。
ここからテンプレートを使いやすいように編集していきます。
テンプレート変数の編集
Android Studio -> Preferences... -> Editor -> Live Templates
でテンプレート編集画面を表示した後、
Kotlin の logd テンプレートを選択すると、画面下部の Template text ウィンドウでテンプレートの内容を編集することができます。
ここからテンプレート変数を編集して、このテンプレートの欠点であった
- メソッド名を自分で入力する必要がある
- TAGを別途定義する必要がある
これらの点を解消していきます。
メソッド名の自動補完
logd テンプレートのメソッド名を自動で補完するように設定していきます。
Template text ウィンドウの右側にある、"Edit variables" ボタンを押下して、METHOD_NAMEのExpressionを methodName()
から kotlinFunctionName()
に変更してOKを押下します。
メソッド名の自動補完はこれで完了です。
クラス名の自動補完
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を押下します。
完成!
Kotlinのコード上で logd と入力してみましょう。
・・・爆速!
最後に
Android開発で便利なテンプレート、その他開発ツール等あればぜひぜひご教示ください!!
最後までご覧頂きありがとうございました。
参考