目的
- 実装パターンのサンプルコードを共有したい
- gist.github.comやpastebinのようなものを共有目的で利用するのは面倒
そんな時の一つの手段として、BuildVariants の仕組みを利用してコードの断片を共有してみる
効能
- サンプルコードの共有がIDE上で完結する
- プロジェクト内のどの実装がベストプラクティスかを確認・記憶・共有するコストが下げられる
- とりあえずサンプルコードのあるパッケージを見ればよい、という状態に
- 実装パターンや役割毎にパッケージを区切れば、IDE上での閲覧性が上がる
- 特定のパターンに関係のないコードが存在しない、すっきりしたサンプルコードにしやすい
- お手本コードを管理する場所が出来る
- アプリ内に実装パターンが散乱している場合には特に便利
実践例
サンプルコードを共有するための buildType snippets
を追加する
// build.gradle
android {
buildTypes {
debug {}
release {}
// コードを共有するための BuildType を用意
snippets {}
}
}
snippets
用のディレクトリを作成する。
# 一般的なAndroidStudioのディレクトリ構成です
# 今回の説明に不要なディレクトリは省略
/MyProject
|
`- app/src
|
|- main/
`- snippets/ # ここに共有したいものを置いていく
|
|- java/
`- res/
後は snippets
に共有したいものを適当に放り込んでいくだけ。
所感
本実装もちょっとした設計相談もボイラープレートも、みんなPull Requestベースで管理出来たり、IDE上でのやりとりが便利になっていい感じ。
アプリの本実装に影響しないように BuildType の追加という対応をしているので、仮に snippets
由来のコンパイルエラーがあったとしてもアプリ本体には影響はないはず。
アプリ内のベストプラクティスを更新する必要があったら snippets
を更新する Pull Request を送ればよいし、それによって設計や実装に関する共有・相談もしやすくなって便利。