moleculeライブラリで感動したところ
Created at Sun, Jan 2, 2022moleculeは、Cash App(Square)社が公開したライブラリです。
このライブラリを使うかどうかは置いておいて、良いな、面白いなと思ったところをつらつらと述べたいと思います。
Coroutine(RxJava)などの複雑なオペレーターを覚えなくて済む
複雑な画面になると、複数のデータソース(Flowなど)をcombineLatest等のオペレータで束ねて、処理を書くことをすると思います。 しかし、データソースが増えると、どんどんエラーハンドリングなどが複雑になり、スケールしない印象があります。
これを、moleculeでは命令型コードで書くことができ、データソースが増えてもスケールしてコードを書くことが出来ます。
RxJavaに傾倒していたときに感じていたのですが、いろいろなオペレーターがあるのは便利ではあるんですが、複雑になりやすいというか、誤用しがちなので、そういうのを防ぐことが出来ます。
Jetpack Composeのエコシステムに乗っている点
おそらく、このmoleculeのような機能を実現しようとすると、KSPなどのアノテーションプロセッシング的なことをする必要があります。 そうなると、
- メンテナ目線: 実装、メンテにコストがかかる
- ユーザ目線: 学習コストが高くつく
などのデメリットがあります。
それを、Jetpack Composeという、Android開発者であれば、いつかは勉強しなければならない、導入するであろう機能を使って、実現しており、このデメリットを回避しています。
一番メンテしやすいコードは、コードを書かないこと、みたいな言葉があったような気がするんですが、それを体現した実装だと思います。
まとめ
実現したい機能に対して、極力コードを書かなくて済む方法を考える大切さを感じました(小並感)