Edited at

普段使っている道具を見直す〜Android Studio編〜

More than 1 year has passed since last update.

まつもとゆきひろさんのインタビュー記事の、以下やりとりに感化されてしまったので、普段使っている道具を見直す、ということを最近よくやっています。


—— まつもとさんが社会人になりたてのころに意識して取り組んでいたことが他にもありますか?

できるだけ仕事を早く終わらせて、自分の環境を整備する時間を作るようにしていましたね。世の中には開発のためのいろいろな道具がありますが、どれがいいのかは試しに使ってみないと分からない。仕事の空き時間ができるとすぐに、どちらのツールがいいのか比較検討したり、ないなら自分で作ってみたりということをやっていました。

まつもとゆきひろ氏が「生涯プログラマー」でやっていきたい若手に贈る3つの言葉


まずは、最近一番使っている道具であるAndroid Studioを見直してみました。

その結果、新たな便利機能を知ったり、改めて便利さを認識できたりしたので、メモがてら少しまとめてみました。

※ 特によく使う機能に関しては :sunny: をつけてみました。

※ 以下すべて環境はMacです。


Code


Generate :sunny:

command + n

GetterやSetter、equals、toStringなど、よく使うものを良い感じに自動生成してくれます。

スクリーンショット 2015-08-09 23.05.48.png

ex) toString

スクリーンショット 2015-08-09 21.02.19.png


GetterやSetterの自動生成時にPrefixがつかないようにする

変数にPrefixとしてmやsをつけている場合、初期状態だと以下のように生成されてしまいます。

スクリーンショット 2015-08-09 21.04.54.png

なので以下の設定をします。

Preferences(command + ,) > Code Style > Java > Code Generation

Name Prefixのところに、使用するPrefix(mやs)を入力しておきます。


Override Method :sunny:

ctrl + o

お馴染みのOverrideメソッドを生成できる機能です。

スクリーンショット 2015-08-09 21.06.39.png


Surround With... :sunny:

option + command + t

範囲選択した箇所に対して、try/catchやifで囲います。

スクリーンショット 2015-08-09 21.14.02.png


Unwrap/Remove...

shift + command + fn + delete

「Surround With...」の逆でtry/catch等を外します。


Completion Basic :sunny:

ctrl + space

お馴染みの補完機能です。Macの場合、Spotlightのショートカットと被るため、そのままだとショートカット経由では使えません、、、

(Android StudioかSpotlightの設定を変更する必要があります)


Insert Live Template... :sunny:

command + j

テンプレート機能です。

スクリーンショット 2015-08-09 21.31.13.png

最初からいくつかプリセットされていますが、自分で追加することもできます。

Preferences(command + ,) > Live Templates


Surround with Live Template...

shift + command + j

範囲選択した箇所に対して使用する、囲うタイプのテンプレート機能です。


Comment with Line Comment

command + /

お馴染みのコメントアウト機能です(//)。


Comment with Block Comment :sunny:

shift + command + /

お馴染みのコメントアウト機能です(/* */)。


Reformat Code... :sunny:

option + command + l

コード整形機能です。以下の設定に基づき、範囲選択した箇所を整形してくれます。

Preferences(command + ,) > Code Style


Optimize Imports...

ctrl + option + o

import機能です。自分の場合は、宣言時に勝手に実行されるように設定しています。

Preferences(command + ,) > Editor > Auto Import


View


Parameter Info :sunny:

command + p

カーソルがメソッドの上にある状態で実行すると、引数の種類を表示してくれます。

スクリーンショット 2015-08-09 10.00.52.png


Quick Document

F1

カーソルの位置にある対象のドキュメントをpopupで表示します。


External Document

shift + F1

カーソルの位置にある対象のドキュメントをブラウザで表示します。


Jump to Source :sunny:

command + ↓

or

command + b

カーソルの位置にある対象が定義されている箇所にjumpします。


Recent Files :sunny:

command + e

最近開いたファイル一覧からファイルを開くことができます。

スクリーンショット 2015-08-09 9.59.46.png


Enter Presentation Mode

View > Enter Presentation Mode

以下のようにコードだけを全画面表示します。ピンチイン、ピンチアウトで拡大縮小もできます。

スクリーンショット 2015-08-09 9.55.56.png


TODO :sunny:

View > Tool Windows > TODO

TODOコメントした箇所をリストアップしてくれます。

スクリーンショット 2015-08-09 10.05.07.png


Edit(IdeaVim)

コピペやファイル内検索など基本的なエディター操作です。

初期状態でも基本的な機能は備わっているのですが、自分の場合はIdeaVim :sunny: という、Vimなキーバインドを再現してくれるPluginを導入しています。

Preferences(command + ,) > Plugins

↑からIdeaVimを検索してインストールしてください。

IdeaVimは.vimrc的な設定ファイルも使用することができます。

使用する場合はホームディレクトリに .ideavimrc というファイル名で設置します。

Android StudioのショートカットとIdeaVimとがコンフリクトしてしまうものがいくつかあり、どちらを優先するかを、設定することができます。

Preferences(command + ,) > Vim Emulation

基本的なエディター操作はIdeaVimでOKなのですが、Replaceが少し使いづらく感じたので、それだけショートカットを覚えました。


Replace

command + r


Navigate


Symbol... :sunny:

option + command + o

プロジェクト内のクラスやメソッドを検索します。

スクリーンショット 2015-08-09 10.44.03.png


Toggle Bookmark :sunny:

F3

ソースコードにブックマークします。

ブックマークした箇所でもう一度実行するとブックマークを解除します。

ブックマークしておくと、次で紹介する「Show Bookmarks」機能からjumpしたりできます。


Show Bookmarks :sunny:

command + F3

Bookmarkした箇所にjumpできます。

スクリーンショット 2015-08-09 10.50.05.png


Test :sunny:

shift + command + t

↑のコマンド実行時に参照しているクラスに対応するテストコードのひな形を作ります。

既にテストコードが存在している場合はjumpできます。

スクリーンショット 2015-08-09 11.02.02.png


File Structure :sunny:

command + F12

クラスのメンバーを一覧表示します。選択するとjumpします。

スクリーンショット 2015-08-09 11.09.00.png


Type Hierarchy

ctrl + h

classの階層を表示します。

スクリーンショット 2015-08-09 11.22.43.png

IdeaVimを有効にしているとコンフリクトして動作しないので、ショートカット経由で実行したい場合は、IdeaVimの設定を変更してください。

(設定方法については、本記事の「Edit」の項目で説明しています)


Next Highlighted Error :sunny:

F2

エラーの出ている行にjumpします。shift + F2で逆方向。


Analyze


Inspect Code...

Analyze > Inspect Code...

コードをInspectしてくれます。

Inspection関連は以下の記事が詳しいです。

AndroidStudioのInspectionでコードチェックを楽にしてみた。


Analyze Data Flow to Here

Analyze > Analyze Data Flow to Here

変数に値が代入されるまでの、flowが表示されます。

スクリーンショット 2015-08-09 20.28.43.png


Analyze Data Flow from Here

Analyze > Analyze Data Flow from Here

変数がどこに参照されていくのかが表示されます。

スクリーンショット 2015-08-09 20.35.37.png


Refactor

Refactorにも便利そうな機能がたくさんありそうなのですが、まだ自分の中でコントロールできる感じではないので、Renameくらいしか、まともに使ってないです、、

(勝手に生成してくれる分には良いのですが、勝手に変更されるのはちょっと怖い、という感じです、、)


Rename :sunny:

shift + F6

リネーム機能です。

スクリーンショット 2015-08-09 20.44.24.png


Tools

この項目だけで別の記事が書けそうな気もするので、簡単に紹介できそうなものだけ紹介します。


Generate JavaDoc...

Tools > Generate JavaDoc...

項目をポチポチ選択するだけで、JavaDocを生成できます。

スクリーンショット 2015-08-09 12.18.11.png


Open Terminal...

Tools > Terminal...

Android Studio内でTerminalを開くことができます。

スクリーンショット 2015-08-09 12.29.53.png


VCS

gitはコマンド派のため、ほとんど使っていません。

もしかしたら便利機能があるかもなので、気が向いたら使ってみるかもしれません。


Window


Split Vertically :sunny:

Window > Editor Tabs > Split Vertically

ウィンドウを垂直分割します。

スクリーンショット 2015-08-09 12.24.43.png


Split Horizontally

Window > Editor Tabs > Split Horizontally

ウィンドウを水平分割します。

スクリーンショット 2015-08-09 12.26.49.png


その他


Search Everywhere

shift*2(2回素早く押す)

Classやメソッド名だけでなく、Android Studioの設定やら機能までもが検索できます。

スクリーンショット 2015-08-09 22.12.43.png


Postfix Completion

式を書いた後に補完してくれる感じの便利機能です。

スクリーンショット 2015-08-09 22.16.50.png

以下の記事が詳しいです。

AndroidStudioのPostfix Completionで爆速コーディング


JavaDocコメントの雛形を生成 :sunny:

/** を入力した後にenter

以下のようなJavaDocコメントの雛形を生成してくれます。

スクリーンショット 2015-08-09 22.19.18.png


Color Themeの変更

Color Themes にたくさんあるので、気に入ったものをimportします。

File > Import Settings...

スクリーンショット 2015-08-09 22.22.09.png


Find in Path... :sunny:

shift + command + f

プロジェクト内grepな検索ができます。

スクリーンショット 2015-08-09 22.27.53.png


Quick Fix :sunny:

option + enter

お馴染みの、Quick Fix機能です。


Project tool windowの開閉 :sunny:

command + F1

Project tool windowを開閉できます。


Project tool window内での検索

Project tool windowにフォーカスを当てた状態で、文字を入力すると検索できます(展開されているディレクトリのみ)。

スクリーンショット 2015-08-09 22.25.15.png


折りたたみ機能を無効にする

個人的に好きではない、デフォルトで有効になっているCode Folding(折りたたみ機能)を無効化します。

Preferences(command + ,) > Editor > Code Folding


Project Template

ProjectのTemplateは自前で作ることができるようです。

以下の記事が詳しいです。

Android Best Practices のディレクトリ構成を作れるテンプレート作った


メモリプロファイラ

Tool系の話ですが、Android Studio 1.3からメモリプロファイラが新しくなったようです(自分はまだ試せていません)。

ハイパフォーマンスAndroid


ショートカットが覚えられない

CheatSheet が便利です。

commandを長押ししているだけで、使用しているソフトウェアのCheatSheetが表示されます。

スクリーンショット 2015-08-09 23.24.53.png


さいごに

初めてAndroid Studioを使い出した頃は、「GradleでAndroidアプリをビルドできる不安定で癖の強いエディター」くらいにしか、思ってなかった気がしますが、慣れてくるとかなり快適です。

自分は普段Web開発をするときは、普通にVimを使っているのですが、現在はWebStorm or 他のIDEA製品の導入を考えている程に、Android Studioが馴染んてきた感があります。

やはりIDEは便利で、Vimで同じだけの機能を持たせようと思うと、相当な茨の道な気がしますし、開発時のスイッチングコストが小さくなりそうなのも魅力的です。

ちょっと脱線しましたが、Android Studioには、まだまだ便利な機能がたくさんありそう(追加されていきそう)なので、冒頭で述べた、まつもとゆきひろさんのインタビューのように、今以上に使い倒していきたいと思います。