RIBs

2018年か2019年くらいにUberが作成したRIBsというArchitecture frameworkがあります。

Cross-platformとなっていますが、C++などを利用しているわけではないです。アーキテクチャの考えがCross-platformで利用できるということです。

そういう点ではMVCやMVVMなどのアーキテクチャパターンのうちの一つと言えると思いますが、明確に違うのはテンプレートを作成してくれるツールが存在します。
ツールがアーキテクチャパターンの実装を示してくれるので、MVVMとして正しいのか?といった議論は発生しないと思います。

PluginのinstallはiOS, Androidについてそれぞれあります。

私はAndroidのほうが得意なので、とりあえずAndroid Studioにpluginをinstallしてみました。

File -> New -> New RIB..を選択すると以下のようなダイアログが表示されます。

未だにKotlinがExperimental supportなのが気になりますね。。。

Rib NameにRootと入力して作成すると以下のようにBuilder,Interactor,Router,Viewが自動で生成されます。

導入は非常にスムーズだと思います。

iOSについても調べようかと思いましたが、あまりモチベーションが上がらなかったので、ここまでにしました。

理由は以下です。

RIBs自体の進化は止まっている?

https://eng.uber.com/tag/ribs/

2年前から特にアウトプットがないようです。

一度作ってしまえば、そこまで大きく変化するものではないとは思いますが、2年も記事が一つもないということは、Uber自身あまり関心が高くないのかもしれません。

Kotlinがexperimental

2年くらい前もKotlinはexperimentalでした。
iOSやAndroidが提供している技術への追従に時間がかかるのは理解できます。

ただ、KotlinがAndroidで正式にサポートされると発表されたのが2017年の5月のGoogle I/Oでした。それから4年経ってもexperimentalのままであるということはpluginの開発が止まっているようです。

historyを見ても利用しているライブラリのバージョンアップをしているくらいのようです。

RIBsは、ライブラリではなくアーキテクチャフレームなので、一度完成したあとは開発する必要がないのかもしれませんが、追従がおそすぎるとあまり利用されていないのかな?と感じてしまいます。

SwiftUIは未対応

2年前に作成されたIssueですが、特に更新はありません。

コメントで2年遅れになると思うとありますが、もうすぐ2年たちますね。

感想

RIBsの技術面については何も触れていませんが、RIBsの考え方自体は気に入っています。

テンプレートを用意する。
Viewごとにまとまりを作って分業をしやすくする。
iOSとAndroidで同じ構造になるのでAndroidが得意な人もiOS側のコードのどこに何が記述されているのか何となく分かる。

など、良いところはたくさんあるのだと思います。
特にテンプレートが作成されて、アプリ全体でアーキテクチャが揃うというのは大きなメリットだと思います。ものすごく良いアーキテクチャが複数混ざっているよりは、RIBsが最高でなくても一つに統一されている方がわかりやすいですし。

ただ、話題になってから2,3年たっても開発は活発とは言えないようです。頻繁に更新が必要ない分野とはいえ、更新が少なすぎて、世の中の関心は薄いと感じます。

あまりマイナーなものを利用しても不具合に遭遇したときに情報がなかったり、人が集まらなかったりするので、積極的に利用する方向にはなりにくいかなと感じます。

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Hiroshi Matsunaga
Hiroshi Matsunaga

No responses yet

Write a response