概要
「Hotwireは難しいUIはできない」、「エンドユーザ向けの画面はやはりReactを使った方が良い」という話はよく聞きます。これは大きな誤りです。「フロントエンドエンジニアのためのHotwire入門」で実証している通り、特殊なケースでない限りHotwireがNext.jsに劣ることはありません。個別に見ていくと、Hotwireの方がNext.jsよりむしろ優れているケースも珍しくありません。
優れたUI/UXを提供したい場合、Hotwireは良い選択肢です。
HotwireはJSON APIがありません。APIの両岸でフロントエンドエンジニアとバックエンドエンジニアが川の両岸で対峙するのではなく、互いに細かく連携し、自主的に協力し合いながら製品を作り上げていくチームに向いています。
Hotwireが生まれた37signals社のチームサイズは3名です。デザイナー1名とプログラマー2名。37signalsはこのチームでフロントエンドもバックエンドも、ウェブアプリとモバイルアプリも作ります。そういうチームではHotwireが最適です。
多くのウェブデザイナーはJavaScriptやjQueryのコーディングできます。特にWordpressなどを駆使して店舗のウェブサイトやマーケティングサイトを制作するウェブデザイナーの多くは、自分で動きをコーディングします。
jQueryができれば、Hotwireはできます。Reactと異なり、新しいコンセプトを理解しなくても、JavaScriptをしっかり勉強し直さなくても、Hotwireは学習できます。
ウェブデザイナーを活用したい場合、Hotwireは最適です。
OOUI(オブジェクト指向UI)の世界では、デザイナーやフロントエンドエンジニアもオブジェクトやその属性を理解している必要があります。理解していなければ良いデザインが作れません。
Hotwireを使うとフロントエンドとバックエンドの距離は一気に縮まります。フロントエンドエンジニアもバックエンドのデータ構造を常に確認します。双方でデータ構造の理解が深まり、議論できます。これがオブジェクト指向UIの成功に繋がっていくでしょう。
分業はモチベーションやエンゲージメントにネガティブに作用します。成果物に対するコミットメントが薄くなります。
Hotwireでデザイナーからバックエンド・インフラが一丸になれば、社員のモチベーションを高める効果が期待できます。
HotwireのページにReactを埋め込むのは簡単です。Reactの公式サイトによると、Facebookも長らくこの使い方がメインでした。Apple StoreなどもMPAのページにReactを埋め込んでいます。Hotwireを使っていてもReactを埋め込むことは問題なくできます。
例えばCRUD画面をRuby on Railsで高速に開発し、高度なインタラクティビティが要求される箇所だけは慣れたReactを使うこともできます。良いとこどりができます。
私たちの目的は良いUI/UXを作ることであって、Hotwire vs. Reactのどちらか一方を選定をすることではありません。良いとこどりできる場合は積極的にやりましょう。