Generationg ViewHolder pattern with Gradle

Preview:

Citation preview

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

Recommended