2012/01/29

Android Usability Seminar 2012

日経BP主催のAndroid Usability Seminar 2012というのに参加してきました。ホームページの開催のお知らせから内容を察した限りでは、Androidアプリを作成する際のUX的な内容かと思い参加したのですが、内容的にはちょっと自分の思ってた方向とは違ったものの、かなり面白かったので、簡単に紹介したいと思います。

1. アップルから学ぶユーザビリティ 山中俊治氏
Suicaの自動改札機のデザインを担当。Suicaに限らず電子マネーなど、いまでは常識となっているタッチするという行為を人々にどうデザインの力で認知させるのかという課題を解決する為に、ユーザビリティテストを行い検証を行った。

ユーザビリティテストを行う上で重要なこと
  • 開発の初期段階で行う
  • 少ない人数でも構わない(回数を多く回すことの方が重要)
  • 周到に計画する(ユーザーを疲れさせない)
  •  クライアントを巻き込む
とにかくいままでに無いものを作るのだから、考えすぎても意味が無い。こうあるべきというイメージは人それぞれに違う。そして、何よりもユーザーは予想もしないことを平気でする。なので、沢山の施策を試してみて、結果(事実)を皆でシェアすることが重要。

この仕事が山中さんにとってユーザビリティテストの重要性を認識する転機になったようで、その後の大根おろしの仕事につながったそうです。この話もかなり面白かったのですが発表されてた資料なしに伝えるのは難しいかな?

膨大な大根おろしの刃の試作がなかなか圧巻でした。ポイントは、機械的な規則正しさを廃して、刃の並びにある程度のランダム性を持たせること。そうすると、大根を持ち替えたりおろす方向を変えたりしなくても、最後まで気持よくおろせるものができるそうです。

で、話は変わって山中さんから見たアップル製品の凄さは、「無垢」な塊としてのハードと赤子にもわかるインターフェース。特にハードに関しては、デザインの為に日本メーカーではまず考えられないような高コストなNC切削加工による量産技術を立ち上げたことがスゴイと。

そしてNext Stepとして、次の時代のデザインは生きものらしいデザインが来るのではないか?人間は生きているかどうかに敏感であるので、生命を感じられるもの、そしてコマンドによらないコミュニケーション、など。

2. 最新事例に学ぶユーザーインターフェースの研究 増井俊之氏
増井さんはいまの携帯電話でもはやデファクトとなっている予測漢字変換をソニーPCL時代に考案して、その後アップルに行って、かの有名なフリック入力の漢字変換システムの開発に携わったそうです。

その為か、話しのほとんどが漢字変換システムに関する話だったのですが、面白かったは、いまのスマホの漢字変換システムに全く納得されていないようで、曰く、何故にガラケーと同じようなキー配列や入力システムを採用しているのか?せっかくタッチインターフェースになったのに、新しいチャレンジが何も無いとのこと。

iPhoneの漢字入力に関しても全くお気に召さないご様子(あれ、開発に携わったはずでは?)で、あれを有難がって使っているのは、スティーブ・ジョブスに絶対騙されてるだろうと(笑)。

後は連文節変換なんてものは全く無用の長物で、かな漢字変換というのは本当は簡単で誰でも作れ、自身がRubyで600行程度で書いたかな漢字変換システム(名前失念)とか、Android用に作ったSlimeの紹介とかとか。

そして、増井さんの考えるユーザーI/F開発のタブー
  • 素人の意見を聞く
  • 多くの意見を聞く
  • 古いものを無意味に模倣
逆に正しいユーザーI/Fデザインの方法
  • 有能な人が少人数で作る
  • シンプル
  • 捨てる勇気
  • ユニバーサルのデザイン
  • 素人の感想は聞くが意見は採用しない
まぁ、言わんとするところは何となくわかるような気もします・・(^_^;

で、増井さんによると、GUIに関しては20年前から全く進化していない。スクロールバーなんてあれが使いやすいとは思わないけど、あれ以上のものを何で誰も思いつかないのか?

ということで、ご自身の活動としてGoldfishというAndroidの実世界GUIのフレームワークの開発をされています。どういうものかは、ここの blogで紹介されている記事をご参照いただくのがわかりやすいかと思います。

3. iCloudとSiriに見るサービスデザイン 奥出直人氏
本題であるはずのSiriに関しては、冒頭にかの有名なナレッジナビゲーターのビデオを数秒紹介して終わり(えーっ?)。

で、後はDesign Thinking(デザイン思考)というメソッドでのプロダクトやサービスデザインの話でした。カルボナーラを誰でも美味しく作れるシステムとか、医療関係のサービス開発の話で、個々の内容は興味深かったのですが、デザイン思考とはなんぞや?というところに関しては、頭が悪いのかあまり理解できませんでした(汗。

基本的な考え方として、どういう課題を解決したいのか?どういう付加価値を提供するのか?(Human Value)というところから入るのですが、そのフェーズでの重要な点は、現場が何に困っているのかを理解すること。

だけど、それを現場に行って実際に見させてもらうことが、そもそも非常に難しいこと何だと(これは多分医療用サービスを携わったことから来る経験談だと思われる)。なので、ユーザーとの信頼関係を築くことがとても重要。

そして、ここでも作ったものをユーザーに実際に使ってもらい、そのフィードバックから何度も作り直したという話を聞きました。

後は、その課題を解決する手段のTechnologyとして、いまのクラウド環境やスマートフォン、タブレット端末などは非常に強力で安価なツールになってきているので、プロトタイプがすぐに作れるからチャレンジしてみたらどうか?

そして、それがある程度成功したら、最終的にはそれをどうBusiness(どこで儲けるのか)に結びつけるのかを考えなければならないので、サービスのデザインが重要(だからデザイン思考なの?)。

そのヒントとして、大量のデータをクラウドのパワーで処理した結果を端末のI/Fの面白さにどう結びつけるのかを考えてみればいいのでは無いか?とのことでした。

とまぁ、思ってた内容とは多少違ったけども、話としては面白くて得るものが多かったセミナーでした。

2012/01/24

Hello Android1.0

最近、ネイティブのAndroid SDKを使ってアプリを作ってみているのですが、Androidの複数解像度に対応する仕組みにはほんと関心してしまいます。

1280x720でも480x320の画面でも、同じソースで全く問題が無いように(≠ 全く同じように)表示されます。もちろん、そうなるように作っているわけでしょうが、実際にやってみると、ね。

あと、UIのフレームワークとして、大画面への対応が着実に進んでいるんだなという感じがします。例えば、Androidはタブが画面の上部に表示されますが、端末を片手で操作するにはタブが上部にあると非常に使いづらいわけです。

ただ、iOSのようにタブを下部に配置するとハードキーとの兼ね合いから、それはそれで難しい問題もあるわけです。それに両手で使うタブレットでも同じアプリを使うことを考えた場合には、今度はタブは上部に配置されてた方が使いやすいはずです(持ち方にもよるが、端末下部が体に近くなる為)。

そこで、ViewPagerというものが導入されて、スワイプで画面を切り替えられるようになりました。まぁ、こいつは単にWindows Phoneの真似だろうと言われることもありますが、大画面化が進む端末に対応するには、必然的な対応ではなかったのかな?と。

そういう意味ではWindows PhoneのUIが当初からそこを見越した設計にしてるのは素直にすごいなと思うわけです。動きとしても、演出としても面白いしね。

あと、これは当初から考えてたのかどうかはわかりませんけど、いまになってみるとAndroidのバックキーがハードキーとして画面下部に配置されてるのは非常に使いやすいですね。

そういう意味で、画面の左上にバックボタンが配置されているiOSは画面の大型化には対応しづらいような気もします(あくまでも右利きを基準にした感想ですが)。

まぁ、AndroidのUIは当初からいろいろ叩かれてましたが、未完成だった分、ユースケースや端末の進化に合わせてブラッシュアップできたのが良かったのかな?

そう言えば、最近GoogleがAndroid Designのサイトを公開しましたね。これまでもUser Interface  Guidelinesのページは存在してましたが、こうやって大々的にデザイナーに向けてサイトを立ち上げたってことは、UIは当面はこれで行くよという宣言なのかも知れません。

そういう意味で、長らくオープンβ?(違うw)だったAndroid OSがICSになってようやく製品版になったんだなぁ、という印象です。ICSになってハードキーが廃止されたのも、端末によって並びが違うというのを避ける意味合いもあったのでしょうね。

というわけで、Hello Android 1.0

2012/01/15

書評:Android Security 安全なアプリケーションを作成する為に

ご挨拶が遅れましたが、2012年もどうぞ当ブログをよろしくお願いいたします。

年末くらいからネイティブのJavaでAndroidアプリの開発を始めたのですが、その際に「Android Security 安全なアプリケーションを作成する為に」という書籍が非常に参考になりそうだったので、ご紹介したいと思います。


昨今、スマホアプリのセキュリティー関連がニュースを賑わすなどしておりますが、アプリ開発者の立場としては、そのようなセキュリティ事故を起こさないようにとか、ユーザーに無用な誤解を与えるようなことはなどは、なるべく避けたいわけです。

で、この本にはAndroidアプリを開発する上で、注意すべきポイントが(これで全部では無いのでしょうが)非常によくまとまっていますので、個人的にはAndroidでアプリ開発を行なう全ての方に読んでいただきたい内容だと思いました。

特にAndroid OSは当初からアプリ連携の為の仕組みがよく考えられていて、OSから提供される機能も様々ですが、知識として知っておかないとそこの部分に脆弱性を盛りこんでしまう危険性がかなり高いことが、この書籍を読むとよくわかります。

また付録にセキュリティ対策のチェックリストが付属していますので、アプリをリリースする前にはこれで必ずチェックするなどの工程を入れておけば、うっかりミスを防ぐなどの効果がありそうです。

逆に個人的に少し残念だったのは、アプリケーションにマルウェアなどを仕込まれるなどの改竄をされた場合の検出や対策に関する内容が無かったことでしょうか?

人気の有料アプリが改竄されてGoogle以外のマーケットで無償版として配布されるなどの事例が実際に発生してますので(まぁそこまで責任取れんわという気持ちもありますが)、知識としてどういう防衛策を取り得るのか?というのは知っておきたいような気もします。

最後にこの本を全部読んだ後の感想としましては、現在のAndroidのpermissionの仕組みは細分化され過ぎてて、非常にわかりにくいのと、開発者の自助努力に頼るのだけでは限界があるような気がします。

なので、例えば設定されたpermissionのレベルに応じては、マーケット側できちんと事前審査を行うとか、あるいは端末情報を取得するようなpermissionを設定するアプリを作れるのはGoogleで認可された特定のデベロッパーだけにするとか、もう少し仕組みとして堅牢なものにして行くことを考える必要もあるのではないかと思いました。

ただ、開発者側で最低限出来ることはしっかりやっておくべきですので、この本を参考にご活用させていただきます!

[update]
アプリの改竄に関して、著者の@tao_gakuさんからblog上でご回答いただけました。感謝感激!

http://www.taosoftware.co.jp/blog/2012/01/android_security_2.html