Konifar's ZATSU

私はのび太の味方じゃないわ、悪の敵よ

フォームバリデーションと送信ボタンの状態の最適解

タイトルを見て「あーあれね」と思った人もいると思うが、アプリデザインの世界ではすでに議論され尽くされているであろうこの話題について雑に考えをまとめておきたい。とは言っても明確な答えがあるわけではないので意見がほしいというのが正直なところなので、もしフィードバックがあれば @konifarまで直接教えてもらえると嬉しい。

何を言いたいのかというと、『フォームに入力されていない or 入力された文字が異常である場合に送信ボタンを押せる状態にするか押せない状態にするか』という話だ。たとえば次のように氏名を両方入力しなければいけないケース。

f:id:konifar:20180129112140p:plain

f:id:konifar:20180129112258p:plain

初期状態の送信ボタンがdisabledで、入力に応じて状態が切り替わる。

f:id:konifar:20180129112621g:plain

本当に送信できる時だけ送信ボタンがenabledになるというのはわかりやすそうだが、問題もある。入力項目が多くなってきた時に、ユーザーがなぜ送信ボタンを押せないのかわからないかもしれないということだ。

これに対するやりかたとして、最初から送信ボタンはenabledにしておいて、押した時に教えてあげるという方法もある。たとえば次のような感じ。

f:id:konifar:20180129113014g:plain

こちらの場合、送信ボタンをタップできずにオロオロするということは防げる。

先に結論をいうと、バリデーションつきのフォームが複数ある場合、リアルタイムでもエラーを表示しつつ送信ボタンはenabledにしておくのがよいのではないかというのが自分の考えである。今までの自分の経験でいうと「それはさすがにわかるやろ?!」という画面の操作をユーザーはわかってくれない。これはユーザーが悪いわけではなく、作る側は自分の常識を全て捨てて考えて作る必要があるということだ。

たとえフォームと送信ボタンが画面にひとつずつだけだったとしても、送信ボタンはenabledにしておいた方がいいと思う。もちろん「押せる状態だったから押したのにエラー出るんかい!」というユーザーの期待値と異なるフィードバックを返すことにもなるかもしれないが、すべてのユーザーを考えて最適解をひとつに決めるとすれば、送信ボタンはつねに押せる状態にした方がいいと思う。

あとは、押した時にどこが間違っているかをどう教えるかという問題である。ダイアログを表示するのか、問題の箇所までスクロールするのか、といった細やかなサポートを考える必要があるが、それは画面によって違うのだろう。

ちなみにアプリの話でいえば、一画面にそんなにたくさんのフォームとバリデーションを置くのはそもそもよくないという話がある。そこまで行くと議論が広がってしまうので、今回はフォームバリデーションと送信ボタンの状態についてだけに話をとどめておく。私からは以上です。

猫を飼い始めた

ただの日記を書く。

猫を飼い始めて生活が変わった。毎日5〜6時に起きているし、朝はブラッシングをしながらスケジュールのチェックをするようになった。

そんなにハマらんやろと思ったが、気がつけばおもちゃの山が部屋に散らばり、ついに猫タワーを買ってしまったと思ったら、2週間後には2匹目が家にいた。

猫でさえこんなに生活が変わるのだから、子どもがいる人はマジですごいと思う。パパママエンジニアを本当に心から尊敬している。

猫、仕事の癒しすぎてもはや会社に猫がいてほしい。猫がいる会社は行ってみようと思うかもしれない。会議の時に猫を触りながらだといいアイデア出る気がする。今の会社は絶対そういうのないだろうけれど、どこかの会社がやってくれたら遊びに行きたい。

SHIROBAKOと後輩の門出

これはSHIROBAKO Advent Calendar 2017最終日の記事である。

3年くらい前、ちょうどSHIROBAKOが放映されていた頃、職場にスペイン人のインターンがやって来た。彼は自己紹介で「日本のRPGはすごい!日本の会社でゲームを作りたくて日本に来ました!」と言っていた。宮森にとってのアンデスチャッキー、遠藤さんにとってのイデポンのような存在が、彼にとってはテイルズやFFだった。

最初はたどたどしかった日本語もみるみるうちに上手くなった。Android開発の勉強も同時並行で、今思い出しても大変だったと思う。「速く描くには上手くなる。上手く描くにはいっぱい描く。いっぱい描くには速く描く」と杉江さんが言っていたが、実際にやるのはとても気力がいるし大変なことだ。

彼にはまわりを明るくする不思議な魅力があった。バグをドラゴンに見立て、リリース直前に「もう少し狩りに行くぜ」と言ってバグを潰してくれたり*1、「これできる?」と聞くと「もちろんできるけどやり方はわからない!」と笑って答えてくれたりした*2。宮森の素直さを持ち、行動が伴った太郎のような感じだった。

今でもよく覚えているのだが、ある日の飲み会で彼が 「僕にとってSHIROBAKOは人生だから!」と叫んだことがあった。彼はちょうど就活の真っ最中だった。「宮森が何度も就活で失敗してるところとか、ずかちゃんがオーディションに受からないところとか、これは僕だと思った」とも言っていた。そう、SHIROBAKOにはこれでもかというほど色々な立場のキャラクターの感情が盛り込まれている。とはいえ、まさかスペイン人から「SHIROBAKOは人生」というパワーワードを聞けるとは思わず感動してしまった。

後日、もう少し詳しく状況を聞いてみると、どうやら彼が憧れている大手コンシューマゲーム会社に中途で入るにはゲーム開発の実務経験が必須なようだった。当然ながら、言語やビザのハードルというハンデもある。何社も受けて同じ数だけお祈りされたらしい。まさにずかちゃん状態だ。しかし、23話のずかちゃんのような幸運がすぐに起きるはずもなく、結果的に彼はスマホゲームを作っている会社に入社することになった。言語のハンデもある中で、内定を決めただけでも本当にすごいと思ったし、寂しい気持ちはありつつも彼の健闘を祈りながら送り出すことになった。

それからしばらくは、Twitterで彼の様子をうかがい知るだけになった。基本的には楽しそうだったけれど、帰りが毎日遅くて疲れたとか丸一日会議でつらいとか、そういうツイートをたまに見かけるたびに、彼が平岡みたいになってしまったらどうしようと心配していた。いくらゲームが好きとはいえ、スマホゲーム開発は課金売上やグロースなどの要素が絡み、「自分はこんなことをしていてよいのだろうか」とみーちゃんのように不安になるかもしれない。

心配はしつつも、そもそも自分自身が人のことを気にかけられるほど余裕があるわけでもなく、日々の締切に追われたり、思い悩んで転職をしたりしているうちに早2年が経った先日、久しぶりに彼からDMが届いた。読んでみると、「転職するから飲みに行きましょう!」と書いてあった。嗚呼、やはり彼もみーちゃんのように次のステップに向けて踏み出すのだな、めでたいことだ、なんて思っていたら、「○○に転職します!夢に大きな一方近づきました!」*3と続けてDMが届いた。○○というのは、彼が憧れていた会社だった。あまりの不意打ちに不覚にもちょっと泣いてしまった。どうやら、10話のみーちゃんではなく、23話のずかちゃんだったらしい。その朗報を聞いて、将来に悩む宮森のような焦燥も感じたが、それ以上に嬉しさが大きく、スペイン帰省から戻って来たら盛大にお祝いしようと返した。

1回目の就活で門前払いを受けていた彼が叫んだ 「僕にとってSHIROBAKOは人生だから!」という言葉は、2年経ってさらに深みを増したようだ。やはりSHIROBAKOは最高だなと思う一方で、自分の中のロロが「目先のこと(金)ばかり考えている時期はもう終わりだよ。そろそろ、少し高いところから遠く(人生)を見る時がきたんだよ」とささやいていた。


SHIROBAKO Advent Calendar 2017お疲れ様でした。書いてくださった皆さん、読んでくださった皆さん、ありがとうございました。松亭新年会*4、または来年のAdvent Calendarでお会いしましょう。

それでは、最後はこの言葉で締めたいと思います。 "どんどんドーナツどーんと行こう!"

*1:http://konifar.hatenablog.com/entry/2015/05/02/003449

*2:http://konifar.hatenablog.com/entry/2015/04/19/140322

*3:原文ママ

*4:Advent Calendar参加者の皆さんには後日日程を調整させてください。

会員制の馬肉を食べてきたので雑にまとめてみる

知り合いに誘ってもらって馬肉の店に行ってきた。ここは会員の人しか入れないらしく、リーズナブルな値段で信じられないほどハイクオリティな馬肉が食える楽園だった。全員エンジニアだったのだけれど開発や現場の話は一切出ず、とにかく肉に集中していた。話はしたがなんというか異様な雰囲気だった気がするので、雑にまとめておこうと思う。

感想

店員「こちらはカイノミとオビですね。それぞれ美味しい切り方があって〜(略)」
「なるほど」
(食べる)
「(無言)」
「(無言)」
「(無言)」
「(無言&笑顔)」
「(無言&頷き)」

日本酒

店員「こちら"亀泉"ですね」
「いいですねぇ」
「有名なの?」
「高知は日本酒が有名なんですよ。他には〜(略)」
「ダルマはなんでも知ってるな」

日本酒2

「なんか、なんかないですか?うまいやつ」
「雑すぎる」
「高いのがいいです」
店員「そしたら"聚楽第"はどうですかね?昨日#{芸能人}さんが来てて持ってきてくれたんですよ」
「じゃあそれで」

タテガミ

「ハードルめっちゃ上げますけど、タテガミの常識が崩れますよ」
「めっちゃくちゃ美味いですよね」
「マジかー…ってのが正しい反応です」
(食べる)
「(無言)」
「(無言)」
「(無言)」
「(無言&笑顔)」
「(無言&頷き)」

本わさび

「本わさび自分でするやつじゃん」
「僕やりますよ」
(シャリシャリシャリシャリ…!)
「おぉ、慣れてるねぇ」
「それ前も言われましたけど、無心ですってるだけです」

集中

店員「このヒモ(部位)美味いんですよー!脂の味が濃くて!」
「(無言)」
「聞いてないでしょ?」
「ごめん、集中してて全然聞いてなかった」

本わさび2

「ダルマがするわさびは美味い」
「そう思うんだったらお金をください」

しゃぶしゃぶ

「ここ実は馬肉のしゃぶしゃぶもあるんですよ、重課金すれば」
「次回やりましょう」
「2月でいいですか?」
「DroidKaigiの後でお願いします…!」
「はい」

予約

「しゃぶしゃぶ食べたい。3月予約していいですか?」
店員「(無言)」
「ありがとうございます!」
店員「いや何も言ってねえよ!予約早えよ!冬終わってんじゃねえかよ!」
「(わかる)」

心意気

「ここ美味すぎて20回以上通ってて、普段お世話になってる人を連れてきたい気持ちなんですよ」
「かっこいい」
「すごい」
「ダルマは味の違いがわからない奴は連れてきたくないって言ってたんですけど」
「なるほど?」


集中してたのであんまり覚えてないんだけどだいたいこんな感じのことを話した気がする。とにかく美味かったので連れてきていただいて感謝しかない。次回『個室・馬肉・しゃぶ』は3月予定です。

相対的幸福感のコントロール

ホラー映画が好きだと言うと、嫁氏が信じられないという顔をする。嫁氏は小さい頃に見た明智小五郎 地獄の道化師に出てきたピエロが怖すぎてトラウマとなり、それ以来ホラー映像を避けている。

「なぜあえてホラーを見るのか全く理解できない。お前には感情がないのか?」と聞かれるが、そうではない。自分も人並みに怖がりだし、だからこそホラーが好きなのだ。この気持ちを雑に書き記しておこうと思う。

一言で言うと、相対的な幸福感を引き上げるためにホラー映画を見ることがある。幸福感というのはわかりづらいものだ。仕事をしていると辛いこともたくさんあり、風呂でシャワーを浴びている時、夜寝る前に布団に入った時、朝家をでた時、ふとしたタイミングで「死にたい」「つらい」「帰りたい」「にゃーん」などと口走ってしまうこともあるだろう。そんな状況を根本的に打破するのは難しい。そもそも簡単に解決できるなら悩んでいない。

そんな時にうってつけなのがホラー映画だ。とにかく人が理不尽に死んでいくやつがいい。"怖い"という感情が残っていることを実感できると、不思議とつらさに対して冷静になれる。自分はSAWや笹野鈴々音さんの出ている映像を見ることにしている。次第に「なんかつらいけどこの被害者よりマシでは…?」と思えてくるのだ。いわば、相対的幸福感のコントロールと言ってもいい。

なるべく自分が苦手なものを見るといい。痛い系が嫌ならSAWはオススメ。その上でもし「ああ、もういっそjigsawにGame Over...!とか言われて無残に死にてえ…」とか思ったら、その時は病院に行きましょう。

仮想通貨よくわからん

先に言っておく。詳しい人ごめん。情報集めてない人の独り言だと思ってほしい。

仮想通貨に資産の十分の一くらい雰囲気で突っ込んでいて、倍ちょっとくらいになってるんだけど全く実感がない。

なんで実感ないかというと、今はまだこのまま資産として使えないからなんだよな。日本円に換金すると手数料もったいなくてつらいし、10倍くらいになるまでは利確したくない。ちなみに以前ビットコイン50万くらいの時に全部売ってそのあと80万まで上がったのでそれ以来長期で持つようにしている。

ブロックチェーンの勉強をもっとちゃんとしてから手を出した方がいいんだろうけど、勉強したとしてもこの上がり方説明できる気がしない。

ビットコインが上がるのはなんとなくわかる。イーサリアムもわかる。けどイーサリアムクラシックはなんで上がってるの?なんか安いし底値っぽいと思って雰囲気で買ってた自分には何も言う権利はないんだけど、あれ"雰囲気"以外のロジックってあるのだろうか。モナコインもちょっとした買いの操作であんなに上がって、そんなに不安定なのに通貨として大丈夫なのだろうか。完全に素人の考えだけど、マイナーが掘るのやめるぜって言ったらどうなるんだろうか。仮想通貨よくわからん。

普通に考えたら何もしてないのにこんなに含み益上がってすごいとは思うんだよ。思うんだけど、なんか嬉しさがないというか。副業の収入がどかっと入ってきた時の方が10倍くらい嬉しい。あまりに不安定で「どうせ下がるやろ」という気持ちが拭えないからだろうか。100円の時に1000ビットコインくらい買ってたら嬉しかったかもしれない。こういうことを言ってる時点で自分は投機には向いていないことは明らかである。よくわからないからこそそういうものをちゃんと調べてリスクを取れる人が幸せになるのかもしれない。よくわからんと言ってる自分はまだ覚悟が足りないのだ。きっとそうだ。

なんかもう雰囲気で価格が1/10くらいになって阿鼻叫喚するのを見てみたいという気持ちにすらなってくる。仮想通貨よくわからん。

どういうデザイナーとだと仕事しやすいか

デザイナーさんと昼飯を食っていたら急に「どういうデザイナーとだと仕事しやすいですか?」と聞かれ、しばらく考えて色々話したけれどいい感じに伝えられなかったのでここに書き出しておきたい。

先に言っておくと、これはデザイナーさんの良し悪しの話ではなく、あくまで自分の経験的にこういうことを意識してくれていると楽だったなーやりやすかったなーという感想でしかない。人によって仕事のスタイルが違うのは当たり前だし、やり方を強要するつもりはない。ただ、お互いにこういう振る舞いだと仕事しやすいというのを伝え合うのは大事だと思うので、あくまでこういう風に考える開発者もいるんだなぁくらいにとらえてもらうのがいいのかもしれない。

  • 1回目に見せるラフを作るまでがとにかく速い
  • 人に見せる時に、今の完成度やどういう粒度のフィードバックを期待してるかを先に伝えられる
  • 何かフィードバックを受けた時に、なぜ自分がそうしたかを論理的に説明できる
  • 目的を常に意識している
  • ビジネス的な諸事情は考慮しつつも、デザイン上ここは譲れないというところははっきり主張する
  • 実装コストを意識しすぎないでデザインしてくれる。最初に出してくれるデザインはエゴの塊であってほしい。その上で各プラットフォームの実装に精通したエンジニアと落とし所を探る方がやりやすい
  • 譲れるポイントと譲れないポイントが明確に伝えられる
  • 何か言われてもそのまま受け取らず、意見を整理する時間を要求する
  • シンボル化、命名規則などにもこだわりがある
  • 理想はこうしたいということを伝えつつ、落とし所もいくつか考えている
  • 絵がないと判断しかねる時に何パターンか叩きを用意してくれる

書き出してみたけど、デザイナーさんのやること多いし大変。お互いに歩みよってリスペクトしていきたい。