コーダーがデザインすべきなのか | try! Swift Tokyo 2018 Day1-6

ほとんどのソフトウェアエンジニアは、デザイナーがコーディングする世界がより良い世界であることに同意します。 このトークでは、反対の考えを探求したいと思います。 コアデザインの原則を知っていることによって、時間を節約し、よりプロダクトに実用的な課題に対する弾力性を持たせ、ユーザーとのコミュニケーションを改善し、スマートで楽しいプロダクトを作るのに役立つということを探究したいと思います。

Facebookでニュースフィードを作っている

コーダーがデザインすべきなのか

f:id:niwatako:20180301122131j:plain

f:id:niwatako:20180301122309j:plain

菌学?を学んだがソフトウェアしか仕事でやっていない

より良いソフトウェアエンジニアになるには設計が分かっていたほうが良いということに気づきました。

直感的に得ていた感覚を共有したいです。

デザインという言葉には様々な定義があります。

デザインのコースを検索すると何らかのツールの使い方が出てきます。 ですがそれだけで良いエンジニアになるわけではありませんね。

ジョブズは、デザインは見た目だけではない、機能も含まれると行っています。

f:id:niwatako:20180301122448j:plain

どう動くかにフォーカスをあてて話します

コンテキストを見失うことは犯してはいけない

f:id:niwatako:20180301122458j:plain

美しいコードに夢中になりがちですがユーザーの体験を阻害してはいけない

きれいなタイヤは良いですが、 悪路を走れるか

f:id:niwatako:20180301122545j:plain

何ヶ月も書けて火星を探索できるか

f:id:niwatako:20180301122548j:plain

要件を満たす必要がある

f:id:niwatako:20180301122623j:plain

SketchやPhotoshopでもデザインできて修正できる

f:id:niwatako:20180301122645j:plain

デザイナーはすべてのエッジケースを想像しないがエンジニアは想像がつくし関連のあるデータを知っている。得られる。

ユーザーならどれを使いたいかを考える必要がある。リトライのためのボタンが有るべきなのかエラーメッセージを返すべきなのか。クラッシュをスクリーン上で起こすのはあまりいいアイディアではないです。ユーザーなら何を望むかを考えるのが良いと思います。

他の人達に啓蒙活動を行っていくことも大切ですね

f:id:niwatako:20180301122755j:plain

これを使ったほうが良い、TypeCaseが欠けているということを指摘するだけでなくコンテキストをあわせて指摘していく

どうしたらチームメンバーとしてより良い貢献ができるでしょうか

f:id:niwatako:20180301122849j:plain

f:id:niwatako:20180301122852j:plain

最初の画面からラーメン屋を探して住所から場所を教えてくれる

ロケーションセンサーを使えばスキップできる画面がありますね

f:id:niwatako:20180301122912j:plain

iPhoneが有しているテクノロジーはみなさんがよくご存知かと思います

常にそれらを使ったよいソリューションがあり、UIをシンプルにできる

f:id:niwatako:20180301123000j:plain

たとえばAIでも、いろいろな側面がある側面がある

プロダクトマネージャーがすべての側面を知っているわけではない

自動運転のアプリケーションや翻訳のアプリケーションなどがあります。特定のテクノロジーについては知らないというデザイナもいるかもしれませんが、テクノロジーがどのくらい有効かソフトエンジニアのほうが分かる

トニーファてるが面白いことを言っている。iPodをデザインした人

TedTalkで考え方がわかる。製品デザインをどう捉えているか

f:id:niwatako:20180301123125j:plain

f:id:niwatako:20180301123131j:plain

習慣化という話をしているのですが

運転のし始めは気にすることがたくさんでストレスがかかる

それにだんだんなれていく

f:id:niwatako:20180301123204j:plain

端末でアラートが出ることがありますね?なれるとみないで押したりします。

習慣化というのは自分より他のアプリケーションのほうが問題に気づきがちです。

不便なところをどうやったらスキップしていくことができるか、直面する問題にどのようなものがあるのか

習慣化はユーザーの状況を可能な限り認識すること

そして広い見方をしていくこと

f:id:niwatako:20180301123247j:plain

サーモスタットを使うと電気代が上がる

サーモスタットでより省エネができればいいということででてきたと思うのですが

一番心地よい温度は何度で、といった設定はできなかった。

もともとの問題を会越するソリューションを提供するのが大事

広く見るのも大事だが接近してみるのも大事です。

Touch ID をタッチする時、指紋を登録していくわけですが、どれかを消して足したい時、どれを消して足せばいいのかわからないわけです

iPhoneではタッチした指がなにか出てくる

f:id:niwatako:20180301123423j:plain

ユーザーが知りたい情報が出る。

子供がいる人は子供が1秒に何回質問するかわかると思います。

f:id:niwatako:20180301123445j:plain

子供がするような質問にも答えが出せるように考えていくことが大事だと思います。

60、70年代のこどもの言葉から未来を考えていた 冷蔵庫に自動で物が補充されるとか空飛ぶ車とかが可能になりつつある。子どもたちがなぜ車は自動では知らないかと言った質問に、そういうものだと答えていたわけですが、今はできるようになったわけです。

なぜこうした原則が大事なのでしょうか。

Appleの事例をご紹介したいと思います。最初はカメラです。

f:id:niwatako:20180301123627j:plain

写真や動画を撮る時に効果音が出る。

そうすると録画時にキャプチャ音も録音してしまう。 それを逆の音で消すということをしている。

ActiveDeviceという考え方

f:id:niwatako:20180301123717j:plain

ユーザーが使っているすべてのデバイスに通知を送ることができれば良い

例えばスマートフォンのロックを解除していたら、それをみているなら、底に通知を送るのが理にかなっている。

通知を一番アクティブなものに遅ればユーザーのアテンションを得ることができる

Siriの事例

f:id:niwatako:20180301123805j:plain

色んなデバイスの中で、そのリクエストを受けられれば良い

テレビドラマを再生してとか言った時に、TVがあればTVでやればいい。

FaceID

f:id:niwatako:20180301123901j:plain

f:id:niwatako:20180301123904j:plain

f:id:niwatako:20180301123908j:plain

登録時に化粧をしていると認識できないわけですが、パスコードで解除した時に、機械学習で修正して、次回は認識できるようになる。

f:id:niwatako:20180301123949j:plain

Photoshopで何かを書くのがデザインではありませんでした。

f:id:niwatako:20180301124010j:plain

何がどう動くかを設計する。

絵を描く、動きを設計することが協力する事が素晴らしい体験に必要

面白かったら、ためになったら

  • はてなブックマークSwift タグをつけてブックマーク!
  • 「インターネットで生活を楽しく豊かにしたい」仲間を募集しています
  • Bitcoin: 3KGqXtR1ZaGVdkvcw8CCNrkDxDhdbZBYHL