Yelp/bento
Yelp が作った Android の framework。
複雑でモジュール化された Android UI をいい感じに構築できる。
ListView とか ViewPager の管理もできるようだが、ここでは RecyclerView に関してだけ。
RecyclerView に限っていうなら Groupie に似ている。
Component を定義して、それを controller (RecyclerViewComponentController) に add する。Groupie なら Item を定義して GroupAdapter に add する。
Groupie は本当にシンプルな component から色々なレベルに柔軟に fit するけど、Item 内で状態管理な場合など、複雑な component に対してはベストな解決策を見出しにくいという部分があった。自由度が高く機能が抑えられていて扱いが容易と言える。
Bento はその辺りに対して、Component に対して Presenter を渡すことが出来るという点が良さそう。別に Groupie でも出来るのだけど、Framework で解決策が示されていた方がチーム開発に於ける設計周りの議論はスムーズに進む場合もあるだろうし。
Nullable で渡さなくても良いので、ほとんどの箇所で Presenter が null になるなら Groupie でも良さそう。
Epoxy から着想を得たと書いてあるけど、結構 Epoxy とは異なる部分が多そう。Epoxy ほとんど使ったことないからな気もする。Epoxy と DataBinding の相性について、個人的にはうーんそこまでという気持ちがあったりするけど、そこらへん Bento は上手くやっているように見える。というか、特にサポートせず inflate をユーザーに任せているのでご自由にどうぞという感じ。こちらの方が個人的には楽で良い。
結論としては、各 Item で状態管理が必要だったり、複雑な処理をしたりするなら Bento はありだと思う。
親の Presenter を使ってごにょごにょしたりもまぁできるし、普通に書くよりは読みやすいかも。
ここら辺を比較した Repository はここに
複雑な layout を作っているわけではないので単に Item 定義が面倒くさくなってるだけに見える Library がある。