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

第35回 バージョン管理 ─プロジェクト管理ファイルについて[後編]

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

はじめに

「プロジェクト管理ファイルについて」三部作の最後は,.ideaディレクトリについてです。無駄に長いので,もうオススメ設定を公開しておきます。

リスト1 オススメのHOME>/.idea/.gitignoreの例

*.xml

!/codeStyleSettings.xml
!/copyright/*.xml
!/fileColors.xml
!/encodings.xml
!/gradle.xml
!/runConfigurations/*.xml

!/inspectionProfiles/*.xml
/inspectionProfiles/profiles_settings.xml

!/scopes/*.xml
/scopes/scope_settings.xml

!/templateLanguages.xml
!/vcs.xml

なぜ,こうしたかは本編のお楽しみです。

プロジェクト管理ファイル(.ideaの中身)

プロジェクト作成ウィザードに従って標準的な構成でプロジェクトを作成したときの.ideaディレクトリは図1のような構成になっています。

図1 初期状態の.ideaディレクトリの例

図1 初期状態の.ideaディレクトリの例

この後,ライブラリを追加したり,Preferencesで「Project Settings」の項目を変更することで,いくつかの設定ファイルが追加されていきます。

.idea/workspace.xml とはナニモノ?

.idea/workspace.xml

プロジェクト付属の.gitignoreにもはじめから除外ファイルとして設定されている .idea/workspace.xml にはAndroid Studioの今の状態(コンテキスト)が保存されます。

具体的には,以下のような内容です。

  • エディタで開いているファイルの一覧や,タブの並び順など
    • 「今まで開いたファイルの一覧("Recent Files")⁠なども含む
  • それぞれのツールウィンドウのオプションやツールウィンドウが保有する情報
    • 「Projectツールウィンドウ」のオプション
    • 「Favoritesツールウィンドウ」「お気に入りリスト」「ブックマーク」
    • デバッガのブレイクポイント,などなど
  • Android Studioのレイアウト
    • エディタのレイアウトやカーソル位置
    • ツールウィンドウの並び順,開いている/閉じてる,などなど

Android Studioを使えば必ず更新される設定ファイルです。ばっちり個々人の環境に依存した内容を保存するので,バージョン管理システムの管理対象にしても仕方がありません(そんなことしたらコンフリクト発生しまくりです)⁠

ただし,個人が異なる環境で作業を継続する場合は,このファイルを共有したくなるときはあります。たとえば,ツールウィンドウのオプションは環境が変わるたびに設定し直さなければならず,ちょっと面倒なのです。

コードスタイルの設定(Code Style)

.idea/codeStyleSettings.xml

本連載ではまだ紹介していませんが,ソースコードを整形するコードスタイルに関する設定が保存されています。コードスタイルの機能そのものについては,いずれ紹介します。

設定は「Preferences / Code Style」で行います。コードスタイルは,スキーム(Scheme)と呼ぶ設定のセットを複数を持てるのですが,管理が独特で,プロジェクトで共有できるスキームは「Project」だけ です。

図2 ⁠Preferences / Code Style」設定画面

図2 「Preferences / Code Style」設定画面

「Project」以外のコードスタイル設定は,<AS_CONFIG>/codestyles/<スキーム名>.xmlで保存されます。

結論

プロジェクトでコードスタイルを共有したいのであれば,このファイルはバージョン管理対象にすべきです。難点を言えば「現在使用しているコードスタイル(のスキーム名)⁠も同じファイルに記録されているため「ちょっと個人用のスタイルに変えてみよう」などと気の利いたことをすると,途端にファイルが更新され,コミット候補にあがってしまいます。

このヘンな仕組みをわかった上で共有しておかないと,ちょっと大変なことになると思います。いずれコードフォーマッタについて紹介するので,それまでは「⁠スキームの)"Project"は絶対にいじるな!」と思っていれば十分です。

著者プロフィール

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

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

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

Twitter: @masanobuimai

コメント

コメントの記入