Hatena::ブログ(Diary)

ちくたく このページをアンテナに追加

2012-04-04

Android4.0(ICS)のオプションメニューに物申す

AndroidのICSにおいて、オプションメニューは、タイトルではなく、画面の右下に表示したい。

なぜなら、画面の右下に表示したほうが右手だけで操作しやすいからだ。タイトルにオプションメニューがあると、どうしても、両手で操作しないといけなくなる。また、タイトルのないアプリだと、オプションメニューが表示されない。

しかし、ICSでアプリを作るとタイトルにしかオプションメニューを置けない。何故か。

答えは以下のページ。

http://stackoverflow.com/questions/8346064/options-menu-not-showing-in-ics-using-compatibility-library

ポイントは、Androidマニフェストファイルから、

android:targetSdkVersion="14"

をはずすこと。最新バージョンを指定すると、オプションメニューが画面の下側に表示されなくなる。

しかし、何故、ICSではオプションメニューの位置を変えるのだろうか。ICSからハードキーをなくそうとしていることはわかるが、ユーザの操作性を考えて、キーレイアウトをアサインすべきだと思う。

このあたりのちぐはぐさがAndroidのfragmentation問題を引き起こしている。根が深い。

2012-04-03

new iPadの性能課題に対する疑問

new iPadが発売されて、一番気になったことは、解像度が4倍になったこと。解像度が4倍になるということはUI開発者にとってはとんでもない問題であるはず。つまり、性能が4分の1に劣化することを意味する。この課題意識は解像度の問題に直面してきた携帯電話AV機器の開発者にとってはあまりにも当たり前のことである。

しかし、あのAppleがいとも簡単に解像度を4倍にしてみせた。4倍にしつつ、性能劣化を防ぐことができたとしたら、new iPadは恐るべき能力を持つこととなる。Appleが解像度を4倍にしつつ、さくさく動くアプリを作る基盤を構築したとしたら、世界中の組み込み機器の技術者はいったい今まで何をしてきたのだろうか、と危惧した。

Appleに脅威を感じていた今日この頃であったが、そんなすごい技術をAppleが持っている訳ではないことを知り安心した。

http://satoshi.blogs.com/life/2012/03/ipad3.html

上の記事によると4倍の解像度に対応するためには、アプリ側でチューニング必要となるのである。ハードウェアアクセラレータビットマップの転送速度はUIが求める60fpsを実現するにあたっては、それほど十分な性能を持っているわけではない。アプリ側でチューニングを施すことでユーザに気持ちよく使ってもらえるUIを実現することが可能となる。これは組み込み技術者がよくやってきたチューニング方法の一つである。

ハード性能とソフト性能のバランスを保つためのソフトチューニングは永遠の課題であると、再認識した。Appleでさえ、クリアできていない。Androidフラグメントがよく取り上げられるが、アプリ開発者にとっては、Androidだけにそういった問題がある訳ではなく、iPhone/iPadにも根強く残る問題なのである。

2012-03-22

WebViewの使い方

基本的な使い方

http://stackoverflow.com/questions/5342399/how-to-send-a-referer-request-in-a-url-for-a-webview

HTTPヘッダをカスタマイズする方法

http://stackoverflow.com/questions/5342399/how-to-send-a-referer-request-in-a-url-for-a-webview

ベーシック認証の仕方

WebViewを使いこなしたいんなら、ベーシック認証くらい理解して、実装しておこう。

http://mrd.ne.jp/2011/04/webviewweb.html

ダイジェスト認証ってのもあるから忘れないように。

http://x68000.q-e-d.net/~68user/net/http-auth-2.html

Androidアプリとの連携方法

http://dayafterneet.blogspot.com/2011/08/androidwebviewjavascript.html

2012-02-12

MacでAndroidの開発環境構築

Androidの環境構築はなかなかうまくいかない。という訳で、備忘がてら、手こずった事象の解決策を書いておく。

ソース取得はAndroid理解への早道なので、上達したい人は取得しておくこと。特に、初心者ほど取得しておき、興味のある機能のソースを読むことをお勧めする。Androidのソースがどのような思想で作られているのか、Androidアプリをどのような思想で作っておくべきかがわかるるようになる(かもしれない)。

2011-10-03

ユーザの私生活を丸裸にするAmazon Silk

米国時間9月28日朝のイベントで発表された7インチの「Kindle Fire」。

Kindle Fireは「Amazon Silk」と呼ばれるウェブブラウザが搭載される。Amazon Silkはスプリットアーキ技術を使うことで、ユーザに高速なWeb体験を提供できるそうだ。

このスプリットアーキ技術とはKindle Fire上で動作するクライアントアプリとなるブラウザとAmazonのクラウドEC2を連動させ、クラウド側でコンテンツの先読みや圧縮などを行うことでクライアントとなるブラウザ上の処理を速くできる技術だ。

こういったサーバ側で処理をさせるという技術は10年くらい前に山のようにアイデアや特許が出されているし、最近ではOperaMiniとかもサーバと連動するといったアプローチをとっている。そのくらいの時期に次世代ブラウザを考えていた技術者にとって、このスプリットアーキ技術は「えっ、何これ??」といったものであろう。

クライアントの代わりにサーバ側で処理をするという方式は、クライアント側の処理性能が高くなってきたこの時代にはあわないアーキだと思っていたし、どちらかというと当時からキワモノ技術的な扱いをうけていた。

それがAmazonによって生まれ変わろうとしている。スプリットブラウザ技術により性能の悪いマシンでも高速なWeb体験を得ることができるというベーシックな、誰でも考えつく方式*1を実際にAmazonが採用した。「コロンブスの卵」的に流行るのだろうか。それとも「イノベーションのジレンマ」のようにブラウザそのものを再定義するのだろうか*2

何にせよ、ユーザによりよいWeb体験を提供するということは悪いことではない。ユーザから取ったら、裏で何が行われていようが、気持ちよく動けばそれでよい。

という建前はよく聞く話だが、意味もなくAmazonがサーバを使ってまで、ブラウザを革新しようとしているわけではないことは明らかである。

そう、ユーザのブラウザ操作を抑えることにより、「ユーザの行動履歴」を取得しようとしていることはあきらか。ユーザがどのコンテツにいつ、何時、アクセスしたのか、その文脈は何であったか、などなど、Amazonにとっては嬉しい情報が山のように取得できることとなる。まさに、スプリットアーキ技術はユーザの私生活を丸裸にする技術と言えよう。

ユーザの行動履歴をマーケティングに活かすことで、よりよいユーザ体験をユーザへ提供できる。Amazonのマーケットのレコメンドに使えるだけでなく、次の新しいニーズを見つけ出すのにも使える。*3

新しいユーザ体験を提供するという建前のもと、ユーザの行動履歴を搾取するスプリットアーキ技術。どこまでユーザを惹きつけることができるか楽しみだ。

*1:アイデア自体はしょーもないが、実際にサービスまで持って行こうとすると恐ろしい技術力が必要とされる

*2:とか言って、もてはやしている輩が多い

*3:とは言え、行動履歴のマイニングは難しくて誰にでもできるものではないが・・・