Android Studio最速入門~効率的にコーディングするための使い方

第9回 エディタの話[その1]─見た目の話

この記事を読むのに必要な時間:およそ 7 分

「ガーターエリア」について

「ガーターエリア」にはオーバーライドした/された,実装した/された,といったJavaのコードを辿るマーカーが表示されます。それ以外にブレイクポイントやブックマーク。ファイルがバージョン管理下にあれば,その変更情報などが表示されます。このあたりはEclipseと遜色ないと思います。

図12 ガーターエリアのアイコンの例

図12 ガーターエリアのアイコンの例

珍しい点といえば,次のような再帰呼び出しにもマークが付きます。

図13 再帰呼び出しを示すガーターアイコン

図13 再帰呼び出しを示すガーターアイコン

この再帰マーク以外の「ガーターエリア」に表示されるアイコンはクリック可能で,なんらかのアクション(ジャンプ,ON/OFF,etc...)が実行できます。

「マーカーバー」「問題ビューはどこにあるの?」

右上端のインジケータ(むかしは「Compile status」と呼んでました)とスクロールバーを兼ねた縦方向のエリアにカラーのマーカーが表示されてます。Eclipseも似たようなインターフェイスを持っているので,それほど違和感はないのでは?と思います。

図14 マーカーバーの例

図14 マーカーバーの例

右上端のインジケータはファイルの状態に応じて緑,黄,赤を示します。色合いから想像が付くと思いますが,主な状態を表1にまとめました。

表1 インジケータの示す状態

インジケータ意味
灰:検査機能を無効にしている
-:検査中
緑:問題なし
黄:警告あり
赤:エラーあり

ややこしいことがあって,この警告やエラーは,コンパイラが指摘のではなく,Android Studioのコード検査機能(Inspection)が指摘した内容だと言うことです。さすがに赤は,コンパイルエラー相当を含んでいるので,赤でもコンパイルに通ることはありませんが,黄はAndroid Studio側の設定を相当細かく設定しないと緑にすることができません。

コード検査機能(Inspection)はAndroid Studioの特徴のひとつでもあるので,詳細については後であらためて説明します。

ここで取り上げておくことは「Project全体で問題のあるファイルの一覧はどこで見るの?」ですが,Eclipseの「問題ビュー」のようなものは残念ながらAndroid Studioにはありません。なによりインクリメンタル・ビルドがありませんし,自動ビルドもGradle連携で封印されています。

しいて言えば「Projectツールウィンドウ」で問題のあるファイルは赤線で表示されるくらいです(当然,手動でビルドすれば「Messagesツールウィンドウ」にコンパイルエラーが表示されます)⁠

図15 問題のあるファイルの見分け方

図15 問題のあるファイルの見分け方

さらに言うと「Projectツールウィンドウ」「Problems」ビューを使うと,問題のあるファイルだけをピックアップすることができます。

図16 ⁠Projectツールウィンドウ」のProblemsビュー

図16 「Projectツールウィンドウ」のProblemsビュー

Eclipse使ってる人からみれば「こんなん違う……」ですよねぇ。このインターフェイスに馴れている身からすればどうってこと無いのですが,Eclipseからの移行組や併用組には大きなストレスなのでは?と思います。

改行コードのファイルエンコーディング,ついでにハードタブ

エディタの見た目の話とはちょっと違うのですが,説明する機会を逸しそうなので,ここで補足をしておきます。

デフォルトでは,改行コードはプラットフォームデフォルト,ファイルエンコードはUTF-8に設定されていますが,その設定箇所について説明します。

改行コード

「Preferences / Code Style / General」Line separator (for new files)で指定します。

図17 ⁠Preferences / Code Style / General」

図17 「Preferences / Code Style / General」

ただし,これはファイルを新規に作成したときの改行コードで,すでに作成済みのファイルには適用されません。既存のファイルの改行コードはステータスバーに表示してあるので,それをクリックして改行コードを変更できます第7回参照)⁠

ちょっと操作がわかりづらいのですが,特定のディレクトリ以下のファイルの改行コードを一括で変換したい場合は「Projectツールウィンドウ」で該当ディレクトリを選択してからメニューバーの「File → Line Separators」で任意の改行コードを指定します。

図18 メニューバー「File → Line Separators」で改行コードの一括変換

図18 メニューバー「File → Line Separators」で改行コードの一括変換

コラム Code Styleのスキーマ

カラースキーマ同様,Code Styleのスキーマもデフォルトの設定は変更できません。別途専用のスキーマを作成してから設定を変更しますが,一部例外があり「Projectスキーマ」はそのまま変更できます。

ややこしい話なのですが「Projectスキーマ」はProject固有の設定のため,設定内容は<PROJECT_HOME>/.idea/codeStyleSettings.xmlに保存されるからです。⁠Defaultスキーマ」はIDE共通のプリセット値のため変更できません(実際に変更してみるとどうなるか分かります)⁠

「Projectスキーマ」は現在開いているProjectに対する設定になりますが,どのProjectでも共通の初期設定というのも可能です。メニューバーの「File → Other Settings → Default Settings」か,ウェルカム画面の「Configure →Project Defaults → Settings」で設定します。

ファイルエンコーディング

「Preferences / File Encodings」Project Encodingで指定します。IDE Encodingとの違いはよくわかっていません(IntelliJの時は,Javacに与えるエンコードがIDE Encodingでした)⁠

図19 ⁠Preferences / File Encodings」

図19 「Preferences / File Encodings」

設定画面を見ればわかりますが,プロジェクト内のディレクトリ/ファイル別にエンコーディングを指定できます。残念ながら拡張子別の指定はできません。

あと,設定画面の下の方にさりげなくプロパティファイルのエンコーディング(⁠Default encoding for properties files」⁠とNative-to-Asciiを透過的に行うかどうか(⁠Transparent native-to-ascii conversion」⁠の指定があります。Android開発でJavaのプロパティファイルを利用するのかわかっていませんが,参考まで。

改行コードと同じく,編集中のファイルのエンコーディングもステータスバーに表示してあるので,ここからエンコーディングを変更することができます(指定したエンコーディングに変換する/開き直すを選択できます)⁠

図20 ステータスバーでエンコーディングを変更したときに表示するダイアログ

図20 ステータスバーでエンコーディングを変更したときに表示するダイアログ

「Reload」で指定したエンコーディングで開き直し,⁠Convert」で指定したエンコーディングに変換します。

先ほどの改行コードと異なり,エンコーディングを一括変換することはできません。

Java製でかつ海外モノのソフトウェアにしては日本語のエンコーディングの処理はまともなほうです。NEC特殊文字・IBM拡張文字も正しく保存され,UTF-8⇔Windows-31Jに相互変換してトーフ('□')やはてな('?')に化けることはなかったです。

ハードタブの使用

最近,ソースコードにハードタブを使っているのを見かけません。Android StudioもデフォルトではハードタブをOFFにしています。一応,どこで設定しているかを説明しておきます。

「Preferences / Code Style / General」Use tab characterで指定します。ここをONにするとハードタブを使うようになります。改行コードと違って言語ごと(Groovy/HTML/Java/XML)に指定することが出来ます。

図21 ⁠Preferences / Code Style / General」⁠クリックすると動きがわかります)

「⁠Preferences / Code Style / General」` &title=`図21 ⁠Preferences / Code Style / General」` &width=`400` />

目立たない機能なのですが「Preferences / Editor」Allow placement of caret inside tabsをONにするとハードタブ内をカーソル移動することができます。

編集中のファイルのインデントをタブやスペースに変換する場合はメニューバーの「Editor → Convert Indents」で行います。

図22 メニューバー「Editor → Convert Indents」でタブ⇔スペース変換

図22 メニューバー「Editor → Convert Indents」でタブ⇔スペース変換

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai