ViewHolderGenerator
ListView/ViewHolderのベストプラクティスを考えてみた
#potatotips 2014/2/12@__gfx__
Wednesday, February 12, 14
ListViewのセルのView
長年の経験からViewHolder patternというものが編み出された
しかし依然として面倒くさい…
cf. No more 手書きViewHolder (by @sys1yagi)
http://www.slideshare.net/bs_yagi/potato01-no-more-viewholder
Wednesday, February 12, 14
ViewHolderパターン
<View android:id=”@+id/name” /> から
`View name;` を作る
基本的には固定パターン
それゆえにIDEによる自動生成するプラグインもうまれた
Wednesday, February 12, 14
コードは生成しよう
固定パターンの変換は自動的
自動的に生成できるものは機械にまかせよう
ビルド時にlayout/*.xmlを調べて対応するViewHolderクラスを生成すればいいのでは?
Wednesday, February 12, 14
CodeModel
CodeModelというライブラリでJavaのソースコードを生成できる
明らかなcompile errorはコード生成時に検出してくれるので便利
インデントも勝手にやってくれるので便利
Wednesday, February 12, 14
コード生成のベストプラクティス
自動生成したコードを更に編集してはいけない
自動生成したコードは独立したファイルにおく
Wednesday, February 12, 14
PROBLEMS
重複したandroid:idがフィールド名に展開されてerror
android:id=”@+id/android:list”
<include ... />
custom Viewの名前空間解決…
Wednesday, February 12, 14
Gradle Plugin
Groovyクラスとして実装する
Android Projectのgradle pluginがまだなさそうで、で作法がよくわからない
ベストプラクティス模索中
Wednesday, February 12, 14
デモ
Wednesday, February 12, 14
Generator
完成しなかった…(´;ω;`)
できたらOSSとして githbub.com/cookpad で公開します!!!
Wednesday, February 12, 14