昨日会社のspacesでちょっと話してたけど、プロダクトの機能実装時にUIの配置やアピアランスを決定するのにコストがかかってしまうと、なかなか機能を実装しづらい問題があるなって思った
で、最近思ってるのはそれなら最初にUIは実装しなくていいっていうこと
----
たとえば「公開する」ってボタンがあるとする
このボタンを
画面上のどこに配置するのか?
どういう文言にするのか? i18n対応は?
どういうアイコンをつけるべきか?
どういう色、サイズ、外観にするのか?
ホバー時にどういうアニメーションをするか? ツールチップを出すのか?
使用不可時にはどうするのか?
フォーカスできてアクセシブルにできるか?
…などなど、ちゃんと考えるといろいろとめんどくさい。ボタンであればまだシンプルだけどもっと凝ったUIだとさらに大変だ
実装してみていまいち良くないねってなったときに、後からやっぱ変えますってなるとユーザーにとっても不親切で良くない
なので機能を実装したくても先に詳細な検討が必要になってしまい、なかなかできないというのがあるなと思った
----
で、UIを作らないUIとはつまりコマンドになる
いまキーボードショートカットをもっと充実させようという取り組みをやっていて、そうすると概念としてキーバインドとコマンドというものに実装が分離される
コマンドはUIとは分離されているので、キーボードショートカットから呼んでもいいしボタンから呼んでもいい。コマンドランチャー(これも現在制作中)から呼んでもいい
以前から思ってたけど、欲しいなと思った機能は最初からユーザー向けに作るよりはまずは開発者用機能として実装してみるのがいいんじゃないかと思う。開発者向けなら簡易なUIやキーバインドで済ませられる
もちろん最終的にはUIも含めた体験性も必要なんだけど、「ふさわしいUIが無いから機能を提供できません」という状況になりがちなのが良くないな~と思ってる