2010-06-08(火) [長年日記]
■ iPhoneユーザが目の色を変えるAndroidの機能紹介(1) - インテント
あ、なんか釣りっぽいタイトルになってしまった(笑)。
いやね、行く先々で「たださん、Androidどうですか」って聞かれるんだけど、けっこうみんな、Androidのこと知らないんだよ。GoogleがAppleに対抗して作ったiPhoneOSの真似っこにすぎなくて、たいして違わないと思い込んでる(白状すると、おれもそう思っていた)。で、iPhoneとの違いを重点的に説明してあげると、「わー、いいなー」っていう反応がかなり返ってくるんだな*1。
というわけで、(だんだん個別に説明するのが面倒になってきたので)ウケのいい機能をいくつかピックアップしてみようと思う。まずはマルチタスクOSの面目躍如、アプリケーション間連携機能「インテント」について。
iPhoneで撮った写真をメールで送るという場面を考えてみる。iPhoneOSは「ユーザの自由度を制限する代わりに適切なデフォルトを与える」という思想で作られているから、カメラで撮ったままの解像度の高い写真をメールに添付すると、有無を言わさず800x600にリサイズする*2。このサイズはなかなか絶妙で悪くないデフォルトだけど、もっと小さい/大きいサイズで送りたい場面はいくらでもあるので、使っているとちょっとずつ不満が蓄積するんだよね。
もちろん画像をリサイズできるアプリはたくさん出ているから、それを使った上でMMSを使って送信すればいい。しかしその手順ときたら:
- カメラアプリで写真を撮って
- カメラアプリを終了して
- リサイズアプリを探して立ち上げて
- いま撮った写真を探して選び
- リサイズして(保存するのを忘れずに!)
- リサイズアプリを終了して
- 画像ビューアを探して立ち上げて
- いま保存したリサイズ済み写真を探して選び(隣に並んだまったく同じサムネイルを持つリサイズ前の写真と間違えないように注意!)
- メール(MMS)で送る
……うわぁ、気が遠くなるね! 特に「探す」作業があまりに多くて苦痛。これならデフォルトで我慢するわ。
Androidだとこうなる。ちなみにおれが使っている画像リサイズアプリはImage Shrink。あとは標準アプリだけを使って同じことをしてみよう。
1. まずカメラで写真を撮るところまでは同じ。右のスクリーンショットはそのあとカメラアプリ内蔵のビューアに移ったところ。画面下部にいくつかアイコンが並んでいて、左から2番目に「○から矢印が2本出ているアイコン」が見えるだろう。これがインテントの送り先(アクティビティ)を選ぶアイコンで、Androidアプリの多くについている。
2. インテントアイコンを選ぶと出てくるのがこのリスト。これは、画像を受け取ることができるアプリの一覧を示している。そのままメールに添付もできるけど、今回は画像を縮小したいので「Image Shrink」を選ぼう。
3. するとその場でImage Shrinkが起動して、サイズを選ぶ画面に。今回は相手の回線事情に配慮して、少し小さめの640x480にしよう。いつも同じサイズに変更する場合は何も聞かずに実行する設定にもできる。
4. Image Shrinkはリサイズを終えるとすぐさまインテント選択画面を表示する。「今リサイズした写真をどこに送る?」と聞いているわけだ。ここではGmailを選ぼう。
5. すぐにGmailのメール作成画面が現れる。写真が添付状態になっているのがわかるだろう。あとはアドレスと本文を入れて送るだけ。
ここまで、写真を「探す(選ぶ)」場面が1回しかなかったことに注目。また、数あるアプリの中から必要なものを探し出すのに、インテント機能によって絞り込まれた一部の中から選ぶだけだったことから、iPhoneに比べて「ものを探す」労力がはるかに少ないのがわかる。
インテントはこのように、アプリが「自分はこの手のデータを受け取れる」という情報をあらかじめ登録しておくことで、OSが送り手とのマッチングをはかってくれる機能だ。画像だけでなくテキストでもいいし、URLでもいい。例えば、メールに貼られたTwitterのURLをクリックするとブラウザでなく使い慣れたTwitterクライアントが起動することもある。
この機能がギークにウケるのは、Unixシェルのパイプ処理のようなツールボックス・アプローチを想起させるからだろう。iPhoneOSで先のようなことを簡単にさせようと思ったら、カメラと画像編集機能とメール送信機能が合体した巨大アプリを作るしかないのだけど(キッチンシンク・アプローチ)、Androidではゆるやかに連携した単機能アプリがシームレスに仕事をしてくれる(ツールボックス・アプローチ)。
リソースが潤沢なPCではiPhoneアプリのような作り方でもいいが、スマートフォンのようにリソースの限られた機械では、どちらが良いアーキテクチャかは言うまでもない。Android 2.2ではこのインテントを、ネットワーク越しにも送れるようになるそうで、これはもうwktkせざるをえない。AndroidはけっしてiPhoneOSの模倣だけしているわけではないのだ。
iOS4からは「in-app SMS」というAPIで、そのアプリから直接送信することが可能になりますよ。また、写真をメールで送る場合、(オリジナルも含めて)サイズを選べるようになっています。
それと、「Photo Library Access」という新APIによって、どのアプリからも直接呼び出せるようになるので、画像ビューアを探す必要はなくなります。
多分、不便を解決する為のアプローチが異なるのだと思いますが、今比較するのならば、iOS4の1500以上の新APIで何が出来るようになるのかという点を把握した方がフェアなものになると思います。
iOS4は決して、マルチタスクや統合メールボックスみたいにユーザー側から見える新機能だけが主役でもないと思いますよ。
あのー、写真のリサイズやメール添付はあくまで例示にすぎなくて、さまざまな情報をアプリケーションが相互に交換できる汎用的な仕組みがあるよ、というのがこの記事のポイントなんですが。
もっとも、ご指摘のとおり新APIについて不勉強なのはたしかです。ただ、教えていただいた「in-app SMS」や「Photo Library Access」という名前からして、汎用性のある仕組みとは思えませんが……。それとも「in-app Twitter」とか「in-app FLickr」「in-app Facebook」「in-app Mixi」(以下、無数にある写真の送り先として想定できるものすべて)なんかもあるということでしょうか?
確かに、iOSでのアプリケーション連携は、Androidに比べれば、見劣りするかも知れませんね。
だけど、現状だとそういう作り方をしていない。(やろうと思えばできるはずなのに)
そこは、トータルのエクスペリエンスを考えるAppleのやり方なんでしょうね。
機能毎では、Androidの方が便利だけど、結局iPhoneの方を使ってしまう人の方が多くなる。
なんだか、ひどい論理の飛躍があるように思えるのですが。
ださだささんは、iPhoneのどんなところにAppleらしい「トータルエクスペリエンス」があるとお考えですか? 「Androidに比べれば見劣りする」にも「やろうと思えばできるはず」にも同意しますし、実際「Androidの方が便利」ですが、そこまでわかっていながらなぜAppleの方が良いと言い切れるのか、さっぱり理解できません。
ただただしさん、返事が遅くなってしまいました。
iOS4からはドキュメントサポートが追加されていて、アプリ側が扱えるファイルタイプを宣言しておくことで、そのファイルを開くアプリを選べるようになるみたいです。
まあ全てはiOS4が一般公開されてアプリ側が対応してみないことには、使い勝手も実際の機能も何も現時点での判断は難しいのですが。
ださだささんみたいに抽象的すぎるかも知れませんが、個人的にはJavaVM系(AndroidにもNDKがありますが)よりネイティブアプリ環境としてのOSの強化が好きな点ですかね。GCDとかアクセラレートAPI(OpenCL?)とかそっちの方にトキメキます。アプリ単体のリッチさに基因した「コンテンツの質と充実」が好きです。一方で、Androidのクラウド化やアプリ間の連携に重点をおいていて実に羨ましいです。iPhoneの場合は逆にアプリ環境、APIの充実に重点を置いていると思います。クラウド化も重視すべきだし開発してはいると思いますが、要は優先順位や完成度の問題でしょう。ここを得意とするGoogleよりもやはり時間は掛かると思います。
AndroidとiPhone(WindowsMobile7まで含めた?)競合関係は理想的な情況だと思いますし、これからもどんどん競争して高みを目指して欲しいですね。
>iPhoneOSで先のようなことを簡単にさせようと思ったら…巨大アプリを作るしかない
と,
> リソースが潤沢なPCではiPhoneアプリのような作り方でもいいが、スマートフォンのようにリソースの限られた機械では、どちらが良いアーキテクチャかは言うまでもない。
の間に,「もしAppleが<簡単にさせるためだけの巨大アプリ>を作らせてくれるなら」ってのがあって,単にアーキテクチャの比較だけではない気がします。
AppleのハードはiPhone 4を見てもまだ貧弱感があります。初代iPhoneも切り捨てちゃうぐらいにマルチタスクってAppleのハードにとっては負荷が高いと思います(まあ切り捨ては単にハードウェア能力の問題ではないと思いますが)。
Android 2をいじってからiOS 4を触ると,SunOS 5やNT 4を触ってから漢字Talk 7を見たような感じになるんじゃないかって思います。iPhoneOS 2とか3を見てAndroid 1を触ってみた,ってのがちょうどMacユーザがWindows 3.1を見たような感じですかね。
Appleにとってはインテントというのは「クリップボード」「ファイルタイプとクリエータ」「サービス」など,過去にやってきていることなので,やろうと思ってやれないことはない,でも今やりたくない,って感じと思います。ハードの縛りがなくなれば,Appleあるいは他のどのOSも似たようなマルチタスク,似たようなアプリ連携方式になるんじゃないでしょうか。
ただAppleの歴史を踏まえれば,iPhoneはどこかでプロセッサが全然違うモノに変わって,贅沢な実行環境ができて,まあ既存アプリもほとんどそのまま動くんだけど,でも色んなものが色々変わって見劣りしちゃうんで,やっぱりついていこうとするとデベロッパ大変だね,っていうふうに切り替わっていくように思えます。
>iOS4からはドキュメントサポートが追加されていて、アプリ側が扱えるファイルタイプを宣言しておくことで、そのファイルを開くアプリを選べるようになるみたいです。
と書きましたが、これ間違いでした。
正確には、メールの添付ファイルをアプリを指定して開くことができるというものでした。
不正確な情報でした申し訳ないです。
>これ間違いでした。
としましたが、間違いではありませんでした。
iPadのOS3.2の「Document Support on iPad Devices」がiOS4に実装されるようです。
(何度かコメントしたのですが、コメント欄に反映されないので多重投稿になっているかも知れません。 )
himoさん、spamフィルタがキツすぎるみたいで、なんどもお手数おかけしました。
少なくともファイルに関しては他のアプリに受け渡しができるようになるんですね。Macには詳しくないけど、Windowsで言えば拡張子の関連付けみたいな感じでしょうか。しかし、なんで今どき「ファイル」なのかなー、とは思いますねぇ。テキストの断片とか、ファイルとは粒度の違う情報がいっぱいあるのになぁ。
インテントについて良くわかりましたw
Android側はやはりオープン的な志向がiOSより強い側面があって、PC的な機能性を求めるなら、アプリ間の連携をサポートするAPIなりライブラリなりが必須ですよね
アプリ開発者がそう言った事を意識的に実装はするんでしょうが、そこにかかるコストをOS側が楽にしてくれるのが、ベンダの仕事だと思います
私は3GSユーザで、購入して丸一日試験をしてダメだコリゃと悟りw翌日にはJailbreakをしました
現在JBアプリには独創的で便利な物が多数あり、将来Appleが採用しそうな機能やアプリが盛りだくさんですw
アプリ間の連携は各種PC向けのOSではそれぞれの想いで独自に実装されていますが、中を見ると昔は混沌としていましたね
セキュリティーホールしかり、安定性しかり
初めからそちらに行くには、真面目にコストを掛け、ユーザビリティや開発者のコストを考えた上に、Appleは優先度を下げたんじゃないかと思います
♯マルチタスクやバックグラウンドについてのAppleのコメントを見ていると、そんな事なんじゃ無いかと想像しました
Appleはできるけどやらないだけだみたいな信仰はどこから来るのが不思議ですね
iOSよりAndroidの優れる点は何一つあるわけがないと思っているのでしょう
>信仰はどこから来るのが不思議ですね
おそらくジョブズのカリスマ性からだと思います。
Apple製品は何一つ持っていない私ですら、彼は偉大だっという印象を持っています。
そして彼のカリスマ性が今のAppleブランドへの信頼を作っていると考えています。
彼がなくなってもその信仰はしばらく失われることは無いと思います。