Android Studio の Code Style をプロジェクトで共有する方法

2016.08.05

コードフォーマッタを共有しよう

スペースの位置や空行の行数、インデントのスペース数などは人によって好みが分かれるところです。
ですがチームで開発している以上、それらを統一しなければプロジェクトのコードは一貫性のないバラバラなものになってしまいます。
そのような コーディング規約 はプロジェクト開始の早い段階でよく話し合って決めておくのが吉でしょう。

今回はこのようなコーディング規約をコードフォーマッタに設定し、プロジェクトで共有する方法をご紹介します。

コードフォーマッタの設定方法

Android Studio -> Preferences... -> Editor -> Code Style を選択します。

1

Scheme の初期値は Default となっています。
これは Android Studio デフォルトのコードフォーマッタです。

まずはこれを元にしてカスタムの Scheme を作りましょう。
Scheme の右側にある Manage ボタンをクリックして Save as... を選択します。
ここで Scheme の名前を決めれば Default Scheme のコピーができあがります。

2

Default Scheme の設定を直接変えても Default (1) のようにコピーが作成されます。Default Scheme は残り続けるので安心してください。

作成した Scheme が選択されていることを確認してください。
この状態で設定を変更していきます。
Code Style の設定は数多く存在するため詳細については書きませんが、私の好みの設定を 3 つピックアップします。

Java

  • Wrapping and Braces
    • 'if()' statement
      • Force braces
        • Do not forceAlways に変更
        • これによって if 文は全て {} で括られるようになる
  • Blank Lines
    • Keep Maximum Blank Lines
      • In declarations: 1
      • In code: 1
      • Before '}': 0
      • これらによってコード内に 2 行以上の連続する空行は存在しなくなる

XML

  • Android
    • Layout Files
      • Insert line break after last attribute を 有効
      • これによって最後の属性と > の間に改行が入る

プロジェクトへの反映方法

Scheme の右側にある Manage ボタンをクリックして Copy to Project を選択します。

3

これで選択した Scheme の設定がプロジェクトに反映されます。
設定後の Scheme が Project に変わっていることを確認しましょう。

4

Project Scheme の変更はプロジェクトディレクトリの .idea/codeStyleSettings.xml に保存されます。
.gitignore ファイルで .idea/ ディレクトリを git 管理から外している場合は codeStyleSettings.xml に対して除外設定を行いましょう。

.idea/*
!.idea/codeStyleSettings.xml

以上です。
コードフォーマッタは可能であれば「プロジェクト」単位ではなく「部」や「会社」単位で統一したいところですね。

こちら は Open Source で有名な Square の Java Code Styles です。
Code Style で悩んでいる方は参考にしてみてはいかがでしょうか。

ミレニアム・ファルコン製作日記 #28

28 号 表紙

mfd_28_1

パーツ

mfd_28_2

mfd_28_3

mfd_28_4

成果

mfd_28_5

mfd_28_6

今回の作業は以下の 2 つでした。

  • 左舷通路を組み立てる
  • 内部ディテールを仮組みする

久々に来ました、クッションパッドの取り付け。
このクソ暑い時期にチマチマした作業はこたえますね。
これが最後のアーチであってくれ。

仮組みでは主船倉に繋がる通路を取り付けました。
コクピットへの通路もしっかりついています。
最近はパーツを合わせた際の規模が大きくなってきたのでとても楽しいです。

・・・置き場に困るけど。

それではまた次回。

May the Force be with you!