Apple SIMがあまりに素晴らしく破壊的なのでいろいろ書いてみた

先日の発表会ではなぜか言及されなかったApple SIMなんですけど、これすごいですね。キャリアのビジネスを根こそぎ破壊しかねないほど革新的。

Apple SIMの衝撃 キャリア主体のスマホ販売が激変する - 週アスPLUS

新iPadの目玉、「Apple SIM」の破壊力 | オリジナル | 東洋経済オンライン | 新世代リーダーのためのビジネスサイト

もし日本で使えるようになったらどうなるかという話は石川温さんのコラムにまとめられていて、このあたりさすがです。

石川温のスマホ業界新聞:アップルが「Apple SIM」でデータ通信サービスも掌握か ━━キャリアと端末、ユーザーの関係が一変する恐れも - ITmedia Mobile

まずキャリアとアップルの関係性。Apple SIMのUIからキャリアを選ぶとなれば、キャリアはアップルにショバ代のようなものを払うことになりかねない。そして、SIMを窓口で契約しなくてもよいということであれば、窓口からの収入も当然減るし、窓口を通してやっていた料金施策が打ちにくくなる。キャリアとショップ巻き込んでビジネスモデルが大きく変わってしまう可能性が非常に高いです。

ただそれ以上に影響が大きいと思われるのがキャリアとユーザの関係性。ユーザが書くキャリアを手元で切り替えられるとなれば、いままではっきりとわからなかった「どのキャリアが本当につながりやすいのか」がわかるようになるわけです。もうキャリアが「カバー率○○%」的なコマーシャルをする必要はなくなりますね。だってユーザはその都度繋がるところを使えばいいわけですから。

この「ユーザがいつどこでどのキャリアを使ったか」というデータが集まるといろいろ面白そうなんですが、アップルが公開してくれるのか、はたまたSNSなどで収集されるのか。そのうちユーザの位置情報にあわせて契約キャリアを自動的に変えてくれるアプリとか出てきそうだなとか、いろいろ妄想できてこのあたり非常に楽しいですね。

気になるのは「契約期間の最小単位はどうなるのか」ですが、今のところ最小で1日のようで、移動しながらころころキャリアを変えるというのはまだできない模様。まぁキャリア側のシステムが対応するのも大変でしょうし、料金体系だって変わらざるを得ない。おそらく従量課金制に戻るんじゃないですかね。

あとはMVNO関連ですね。これ、Apple SIMのおかげでMVNO事業はさらに伸びていくんじゃないかという話も聞きますが、正直どうなんでしょうね。確かに料金でガチンコ勝負ができるようになるとは思うので、キャリアに比べて安い料金で出しておけばユーザは使ってくれるかもしれません。でもMVNO同士のつぶしあいが加速するのではないかと。デフレ起こして体力削りあって気づいたらみんな倒れてたとかよくある話ですからね。どの企業がどんな形で生き残るのか興味深いです。

MVNO関連で言うと直近でこんなニュースが。

「mineo」、iOS 8.1でも利用不可――原因は「調査中」 Appleへ要望も - ITmedia PC USER

こういう問題も起きなくなる、というか起きてもユーザに影響が出にくくなるはずなので、MVNO事業としてのリスクが減るという意味でApple SIMはメリットがあると思います。

あとはなんでしょう。月額契約があたりまえだったサービスはどうなっていくんでしょうね。特にSIMに紐付いた契約が必要なサービスは、今後も存在し続けられるんでしょうか。この手のサービスはキャリアにとっては大きい収入源になっているはずなので、どういう手を打つのかというのも非常に気になるところです。

もしかしたらApple SIMが日本に入ってくる前に日本で代わりの何かが作られるんじゃないかとか。

CEATEC JAPAN 2014:ウェアラブルの展開も視野に――ドコモが「ポータブルSIM」のデモを実施 - ITmedia Mobile

こんな感じでSIMの形が変わっていきそうな流れもあることですし。

思いつくままにいろいろ書きましたけど、とにかく今のケータイ業界をガラッと変えてしまいかねないものが世に出てきてしまったので、これからの1,2年でいろんなことが起きそうでとても楽しみ。

Play Frameworkが出力するHTMLをJSoupで整形する

前回の記事の続き。

Play Frameworkが出力するHTMLをいったんJSoupに食わせて、その結果を出力するようにしました。

まずHTMLを整形するメソッドが以下。

public static Html tidyUp(Html html) {
    Document document = Jsoup.parse(html.toString());
    return new Html(document.toString());
}

HTMLを受け取って一度String型に変換し、JSoupでパースした結果を再度Html型にして戻しています。

あとはこのメソッドを以下のように用います。

public static Result tasks() {
    return ok(
        tidyUp(views.html.index.render())
    );
}

これで、余計なインデントや改行のない見やすいHTMLが出力されるようになります。

まあ、はっきりいって動作上無駄でしかないですし、実際のところこの処理によってサービスのレスポンスは悪くなります。ただHTMLが見やすくなることのメリットもあるので、使うかどうかはケースバイケースですね。

Play Frameworkで外部ライブラリーを使おうとしてハマる

最後の更新が5月15日。我ながらほったらかしすぎ。

 

最近Play Frameworkを使って遊びはじめました。

で、こいつが吐き出すHTMLの汚さが気になって仕方がなかったので、JSoupを使って整形することにしました。

ところがいざ動かそうとすると以下のエラーが出る。

Package org.jsoup does not exist.

 eclipse上でjsoup-1.8.1.jarを外部ライブラリとして登録してあるし、現にeclipse上エラーは出ていない。なのに動かそうとすると怒られる。

あーでもないこーでもないといろいろ設定をいじったり調べたりして、ようやくbuild.sbtに利用する外部ライブラリを追記しないといけないという答えにたどり着きました。

で、こんな感じで追記。

libraryDependencies ++= Seq(
    javaJdbc,
    javaEbean,
    cache,
    javaWs,
    "org.jsoup" % "jsoup" % "1.8.1"
)

最後の行が今回追加した部分。ちなみに、外部ライブラリごとの記載方法は、http://mvnrepository.com/で検索するとわかります。

例えば今回で言えば、上記のサイトで「jsoup」と検索し、検索結果から「JSoup」を選択、次に表示されるバージョン一覧から自分が使うバージョンを選択、さらにタブから「SBT」を選択すると書くべき文字列が表示されるのでコピペすればOKです。

【コトバ】メンタルモデル

私はD.A.ノーマンの著書の影響もあって、UIを考えるときはメンタルモデル、シグニファイア、フィードバックを特に重視するようにしています。これらは主にUIの使いやすさを担う要素であって、私は勝手にこの3つをUIの三大要素と呼んでいます。

シグニファイアについては以前書いたので、今回はメンタルモデルについて書いていきます。

メンタルモデルとは、頭の中にある地図のこと

あなたが初めての土地に行ったとします。土地勘もない場所なので、念のため地図を用意してきました。駅を出て、目的の場所まで歩こうとしましたが、ここで困ったことが起きます。地図に描かれている道がありません。おかしい。方向を間違ったのだろうか。いや、目印のコンビニは確かにあそこにあった。ということは地図が古い?別の道を探そうとしたら、今度は目印のはずのガソリンスタンドが見当たりません。こうなるともう何を当てにすればいいかわかりません。あなたは見知らぬ土地で一人途方に暮れてしまいます。

想定外なことが起きると、人は混乱します。すぐに別の手段を考える人もいれば、打つ手なく途方に暮れる人もいるでしょうが、想定通りに物事が進めば、それに越したことはありません。

UIでも同じです。想定したものが表示されなかったり、想定外の動きをされると、ユーザは混乱してしまいます。

この想定をメンタルモデルと言います。ユーザはUIを操作する際に「こうしたらこうなるはず」ということを必ず想定し、その通りに操作しようとします。ですのでUIをデザインする時には、そのUIを利用するユーザがどんな想定をしながら操作するか、つまり「どんなメンタルモデルを持って操作するか」を考えながらデザインしていく必要があります。

メンタルモデルを構成する3つのフェーズ

UIをデザインする上でメンタルモデルをどう考慮すればよいか、を説明するために、まずはユーザの行動を3つのフェーズに分けます。それは「予想」「操作」「確認」です。UIを操作するとき、ユーザは「予想」と「操作」と「確認」を何度も繰り返しています。

ユーザはUIを操作する前に、「これはきっとこう操作することでこんな結果が起きるはず」と「予想」します。そしてその予想通りに「操作」をします。操作した結果、それが予想通りであったかを「確認」します。予想と結果にズレがなければ、それは「思った通りに操作ができた」ことになり、つまりは「使いやすいUIである」と言えます。ズレが大きくなるほど、「思った通りに動かない」「何が起きているのかよくわからない」と思われてしまい、「使いにくいUIである」と評価されてしまいます。

使いやすいUIとはすなわち、ユーザの「予想」「操作」「確認」に沿ったデザインがなされたUIであり、つまりは「正しいメンタルモデルに沿ってデザインされたUI」ということになります。

「予想」「操作」「確認」の各フェーズでユーザがどんなことを考えているかを理解することが、UIをデザインする上でとても重要な作業だということがお分かりいただけたでしょうか。メンタルモデルはユーザにとっては「地図」ですが、UIデザイナーにとっては「設計図」であるとも言えます。

さて、ここからさらに「予想」「操作」「確認」のそれぞれについて要点を解説していこうと思うのですが、書きだすとそれなりのボリュームになってしまうので、後日改めて書きたいと思います。

【書き物】UIでアニメーションを使う意味について

少し前にアフォーダンスについての記事を書いたので、次はメンタルモデルとフィードバックについて書こうと準備していたのですが、気になる動画が流れてきたので今回はその記事に絡めてアニメーションの話を書こうと思います。

動画の紹介とアニメーション表現

まずは流れてきた2つの動画の説明から。

最初にLivescribe社のスマートペン「Livescribe 3」の紹介動画です。


Introducing the Livescribe 3 smartpen - YouTube

この動画の0:20から0:22あたりなんですが、最初見たとき思わず「うまいなぁ」とPCの前でつぶやいてしまいました。

スマートペンで紙のノートに文字や図形を書くとアプリケーションに取り込まれ、取り込まれた文字をスワイプするとスワイプした箇所が横回転し、テキストが表示されています。おそらくスワイプ前に既に文字認識が完了するよう実装されているのでしょうが、スワイプによるテキスト化は見た目一瞬で完了しているように見えます。この動きと速度がかみ合いすぎていて、気持ちよさそうで自分でも操作してみたくなります。

この「気持ちよさそうな操作」はiOS登場以降UXと絡めていたるところで語られていますが、具体的な実装例としてとても参考になりますね。

次の動画は、Microsoft社の開発したOS「Windows 8」に実装されている「ライブタイル」というインターフェースについてのデモ動画です。


Interactive live tiles on Windows Next by Microsoft ...

 こっちは1:08から1:10を見ていただきたいのですが、メールアイコンをタップするとアイコンの右側にメールの一覧が表示される、という動作のデモです。

私はこのライブタイルというUIが大好きで、操作部品のデザインに、内包する情報の状態をリアルタイムに反映させるという考え方はとてもモダンで、UIの新たな方向性を示してくれた偉大な発明だと思っています。

ただ、操作時のエフェクトアニメーションには少し不満がありまして、それが先ほどの動画の該当部分なんですが、メールアイコンをタップするという動作と、メール一覧が表示される動作の関連性がこの表現だと少々希薄に思えるんです。

メールアイコンをタップしたことによるメールアイコンそのものの動きはあるし、メール一覧が表示される動きもあります。このあたりは最近のUIらしいデザインなんですが、メール一覧がメールアイコンから生み出されたものである、という表現がここには含まれていません。

私はUIにはできる限り文脈を盛り込むべきだと考えています。文脈とはつまりUIにおける操作と結果のつながりであって、これを明確に表現することが、ユーザにとってわかりやすいUIをデザインするためにとても重要だと考えているからです。

そして、その文脈を表現する手段がアニメーションです。

アニメーションと空間認識

アニメーションが担う重要な役割は「操作と結果の関係の可視化」です。

多くのユーザインターフェースには、ユーザの操作を受け付け、その操作に対して何らかの結果を出すという機能が備わっています。この「操作」と「結果」は必ずユーザにセットで認識される必要があり、その関係がわかりやすいほど「使いやすい」と評価されやすくなります。

少し生物学の分野の話をします。

人は常に自分の周辺に存在する物体の大きさや形状、位置を認識し続けています。これを「空間認識」と言いますが、この空間認識によって人は周辺の状況の変化も把握しています。これは、「一つ前に認識した状況」と「今認識した状況」の差分からどんな変化が起きたかを推測しているもので、実際に変化している様を見たかどうかは関係なく把握することができます。

なんでここで空間認識の話をしているのかというと、空間認識によって変化を把握するには、事象が自然な流れで連続していることが重要なんですが、それがUIにアニメーションを実装する際に必ず考慮すべき重要な考え方の一つだからなんです。

空間認識による変化の把握の例としてキャッチボールをあげますが、キャッチボールでどうしてボールをキャッチできるかといえば、投げられたボールが途中でワープしたりしないからです。投げられたボールが自然な流れで連続した変化(=放物線運動)をするからこそ、落下地点を予測してキャッチすることができるわけですね。

UIにおいても同じで、操作に対する結果が突然画面上に表示されたり、ユーザが想定していない箇所に表示されたりすると、ユーザがその変化を認識できず、「何かが起きたけど何が起きたのかわからない」という状態に陥ります。これはユーザにとって大きなストレスです。

これまでのUIデザインでは、操作と結果の位置を近づけたり、色や形をそろえることで変化を認識しやすくする、というのが基本的な対処方法でした。最近はその役割をアニメーションに担わせることが増えています。


Android ListView Add Cell Animation - YouTube

操作と結果をつなげるアニメーションの例としてこの動画を貼っておきます。リストビューに項目を追加するという簡単なデモですが、追加ボタンを押すたびにリストの最上段に新しい項目が追加される様がアニメーションによって表現されています。

これ、追加ボタンがリストビューの上に設置されていることも重要で、項目を追加する操作と項目が追加される場所が近いというのも、操作と結果の関係を明確にしています。

こんな感じで、UIにおいて操作と結果の関係を視覚的に表現してあげることで、ユーザにわかりやすさを提供することができ、これが操作に対する安心感を生み出してくれます。

【記事紹介】開発者は必見? GoogleがAndroidアプリのUXアンチパターン動画を公開 – すまほん!!

開発者は必見? GoogleがAndroidアプリのUXアンチパターン動画を公開 – すまほん!!

 

「targetSdkVersionはなるべく最新に」

「ナビゲーションではなく機能でオリジナリティを出す」

「他のプラットフォーム向けのデザインをしない」

AndroidOS向けアプリに特化したUXアンチパターン解説動画です。プログラマー向けだけど、デザイナーやプランナーにも知っておいて欲しい内容です。

UIやUXを検討するときには画面全体に神経を向けてしまいがちなんだけど、実は切り離してもいい箇所ってあって、どこまでをフレームワークに預けてどこを自分たちで考えなくちゃいけないかってところがわかってないと、無駄な労力を使って使いにくいアプリを作っちゃう。

AndroidOSもiOSフレームワークがよくできているので、UI屋さんはちゃんと最新の実装を勉強しておかないとね、という自戒もこめた記事紹介でした。

【記事紹介】好みのモジュールを組み合わせて自作するGoogleスマホ「Ara」の最新動画が公開されパーツの固定方法などが明らかに - GIGAZINE

好みのモジュールを組み合わせて自作するGoogleスマホ「Ara」の最新動画が公開されパーツの固定方法などが明らかに - GIGAZINE

 

 

個人的にものすごく気になってるプロジェクトです。

スマートフォンはその性質上、どうしても個性の無い似たり寄ったりなデザインになりがちです。

このプロジェクトが成功した暁には、デザインと機能の両面でカスタマイズができるすばらしいプロダクトが生まれるはずです。パーツの調達方法や組み合わせによっては低価格を実現することもできるでしょう。

来年早々には製品が登場するということで、非常に楽しみです。