本文へ移動
vast-cowのブログ
前のページへ戻る

Android Studio 向け `.gitignore` の考え方と実務での定番構成

この記事を編集

Android Studio 向け .gitignore の考え方と実務での定番構成

Android Studio(Gradle / Kotlin ベース)で Android アプリを開発する際、.gitignore をどう書くかは多くの開発者が一度は悩むポイントです。実際には、ネット上の議論や実務の知見はある程度収束しており、「何を Git 管理から外すか」という考え方はかなり共通しています。

この記事では、広く参照されている公式テンプレートや実務上の論点を整理し、まず採用しやすい無難な .gitignore と、意見が分かれやすいポイントを簡潔にまとめます。

Android 向け .gitignore の基本方針

Android Studio 向けの .gitignore は、主に次の4カテゴリを除外する方針で構成されます。

この考え方の出発点として、多くの人が参照しているのが GitHub 公式の Android.gitignore です。 Stack Overflow や日本語記事でも「まずはこれをベースにする」という扱いが一般的です。 (GitHub)

基準としてよく参照される公式情報

GitHub の Android.gitignore

GitHub が公開している Android.gitignore には、次のような項目が含まれています(要旨)。

これは GitHub の gitignore リポジトリ全体の趣旨とも一致しており、 「公式テンプレをベースにする」という姿勢自体が広く支持されています。 (GitHub)

JetBrains(IntelliJ / Android Studio)の公式見解

一方で、.idea ディレクトリをどう扱うかについては意見が分かれます。

JetBrains の公式ガイド(2025-11-26 更新)では、次のように整理されています。

つまり JetBrains 的には「.idea を丸ごと ignore するのは必ずしも正解ではない」が、 Gradle ベースの Android プロジェクトでは、実務的な柔軟性も認めています。 (JetBrains)

Kotlin を使う場合の注意点

Kotlin Gradle Plugin は、プロジェクト直下に .kotlin/ ディレクトリを生成します。 これは公式ドキュメントで 「コミットしないこと」 が明言されています。

そのため、Kotlin を使うプロジェクトでは .kotlin/ を ignore に追加するのが定番です。 (Kotlin)

意見が分かれるポイント①:.idea/ をどうするか

実運用では、次の2つの考え方に大別されます。

A) .idea/ を丸ごと ignore する

「プロジェクト構造の正は Gradle にあり、IDE 設定は個人差が大きい」という考え方の人は、 このシンプルな運用を選ぶことが多いです。 (Qiita)

B) .idea/ は共有できるものだけ残す

Android Studio をチーム標準 IDE として運用する場合には、 この折衷案が選ばれることもあります。 (GitHub)

意見が分かれるポイント②:google-services.json

google-services.json は秘密鍵そのものではありませんが、扱いは方針次第です。

GitHub の Android.gitignore は、デフォルトでは ignore に含めています。 (GitHub)

実務で無難なおすすめ .gitignore

以下は、

を踏まえた、初手として採用しやすい構成です。

# ===== OS / editor =====
.DS_Store
Thumbs.db
*.swp
*.swo

# ===== Gradle / Kotlin =====
.gradle/
.kotlin/
build/
local.properties

# ===== Android Studio / IntelliJ =====
*.iml
.idea/
*.ipr
*.iws
out/

# ===== Android build outputs =====
*.apk
*.aab
output-metadata.json

# ===== Android Studio generated =====
captures/
.externalNativeBuild/
.cxx/

# ===== Profiling =====
*.hprof

# ===== Signing / secrets =====
*.jks
*.keystore
keystore.properties
signing.properties

# ===== Google Services (方針で決める) =====
# google-services.json

この構成は「差分が荒れにくく、チーム内で揉めにくい」という理由から、 多くの現場で無難な選択とされています。 (GitHub)

.idea/ を共有したい場合の落としどころ

.idea を完全に無視せず、ユーザー固有・生成物だけを除外する方法もあります。

.idea/**/workspace.xml
.idea/**/usage.statistics.xml
.idea/**/shelf/

.idea/**/tasks.xml
.idea/**/dictionaries/

.idea/**/modules.xml
.idea/**/gradle.xml
.idea/**/libraries/

*.iml

JetBrains の公式方針と、Gradle プロジェクトの実情を組み合わせた現実的な折衷案です。 (JetBrains)

.gitignore を生成する便利な方法

OS やツールをまとめて指定したい場合は、gitignore.io(Toptal 提供)が便利です。

curl -L "https://www.toptal.com/developers/gitignore/api/android,androidstudio,gradle,kotlin,macos,windows,linux" > .gitignore

(Toptal)

ありがちな注意点


この記事を編集
この記事を共有:

コメント


前の記事
Codex アシスタントの返信と PR メッセージをクリップボードにコピーするブックマークレット
次の記事
Google TV(Android TV OS)向け:Android Studio + Kotlin で 最小構成アプリ を起動するまで