こんにちは、おいしい健康の真崎です。
おいしい健康ではAndroidアプリの開発を行っています。
日々、Android開発を行っていて、開発効率を上げるために、テンプレートを作成した話を紹介します。
弊社では以下のような構成で開発を行っています。
- MVVM
- DataBinding
- DIとしてKoin
そのため、既存の テンプレートであるFragment ( with ViewModel )
を利用していました。しかし、既存のテンプレートでは以下の作業が発生してしまいます。
- Databinding対応のための書き換え
- DIとしてKoinを使う書き換え
この手間が毎回発生していたので、もっと楽にできる方法はないかと調べいたところ、Android Studioのテンプレートをカスタムする方法にたどり着きました。
Android Studio のテンプレートとは
Android Studio では、Android の設計と開発におけるベストプラクティスに基づいたコード テンプレートが用意されているため、適切な道筋に沿って美しく機能的なアプリを作成することができます。
Android Studio のテンプレートカスタマイズについて
Mac の場合は以下のパスにテンプレートがおいてあります。
cd /Applications/Android\ Studio.app/Contents/plugins/android/lib/templates/other/
今回はFragment ( with ViewModel )
のテンプレートをカスタマイズするので、適当なディレクトリ名でコピーします。
cp -r ViewModelFragment MyViewModelFragment
中身を見てみると以下のような構成になっています。
% tree . ├── globals.xml.ftl ├── recipe.xml.ftl ├── root │ ├── res │ │ └── layout │ │ └── blank_fragment.xml.ftl │ └── src │ └── app_package │ ├── BlankFragment.java.ftl │ ├── BlankFragment.kt.ftl │ ├── BlankViewModel.java.ftl │ └── BlankViewModel.kt.ftl ├── template.xml └── template_blank_fragment.png
テンプレートを記述方法としてFreeMarkerが使われているようです。
書き換えたファイルとしては以下のようなことを作業しました。
- template.xml の name を書き換えて自分のテンプレートの名前を決定します。
- BlankViewModel.kt.ftl, BlankFragment.kt.ftl, blank_fragment.xml.ftl を Databinding + Koin に対応した形に書き換えました(弊社ではkotlinを使っているので、java側のテンプレートは書き換えず削除してしまってます。
結果
テンプレートを作成したことにより、あらたな画面を作っていくときにすぐその画面の実装作業に映ることができるようになったので、開発効率は上がったと感じています。
以上です