概要
「Hotwireは難しいUIはできない」、「エンドユーザ向けの画面はやはりReactを使った方が良い」 という話はよく聞きます。これは大きな誤りです。「フロントエンドエンジニアのためのHotwire入門」で実証している通り、一般的な範囲であればHotwireが劣るところはありません。Hotwireの方がむしろ優れているケースは珍しくありません。
HotwireはJSON APIがありません。APIの両岸でフロントエンドエンジニアとバックエンドエンジニアが対峙するのではなく、互いに細かく連携し、自主的に協力し合いながら製品を作り上げていくチームに向いています。
Hotwireが生まれた37signals社のチームサイズは3名です。デザイナー1名とプログラマー2名。37signalsはこのチームでフロントエンドもバックエンドも、ウェブアプリとモバイルアプリも作ります。そういうチームではHotwireが最適です。
ウェブデザイナーがコーディングもするケースは非常に多くあります。特にWordpressなどを駆使して店舗のウェブサイトやマーケティングサイトを制作するところでは普通です。
HotwireはMPAをベースとした技術です。HTML/CSSには精通しているけれども、React/Next.jsはよくわからないウェブデザイナーにとっても、非常に学習しやすいのではないかと思います。
OOUI(オブジェクト指向UI)の世界では、デザイナーやフロントエンドエンジニアもデータ構造を大雑把に理解している必要があります。理解していなければ良いデザインが作れません。
そのような意識がチーム内にあれば、フロントエンドエンジニアはデータ構造もRubyも理解しようとするでしょう。バックエンドエンジニアもそれを伝えようとするでしょう。こういうチームならHotwireは向いています。
分業体制は社員のモチベーションやエンゲージメントのネガティブに作用しがちです。最終成果物に対するコミットメントが薄くなります。全員がデザインからインフラまでできる必要はありませんが、技術的な垣根はなるべく取り払った方が良いのではないでしょうか?
Hotwireでデザイナーからバックエンド・インフラが一丸になれば、社員のモチベーションを高める効果が期待できます。
Hotwireでも難しいUI/UXは作成できます。しかし優れたライブラリーがReact用に既に存在していることもあります。この場合、車輪の再開発は必要ありません。いいとこ取りをしましょう。
MPAのページにReactを埋め込むのは簡単です。Reactの公式サイトによると、Facebookも長らくこの使い方がメインでした。Apple StoreなどもMPAのページにReactを埋め込んでいます。Hotwireを使っていてもReactを埋め込むことは問題なくできます。
