ふと思ったのですが、なんでAndroidはiPhoneみたいにヌルヌル動かないんでしょうか?
特許がらみでしょうか。
どなたか事情をご存知の方、教えていただけませんでしょうか。
iPhoneもAndroidも両方使っていたので、ヌルヌルの意図するところはだいたいわかると思っています。iPhoneユーザーや開発者の間ではこの表現は結構使われていますが、個人的には以下の性能が高いと「ヌルヌル動く」「指に吸い付く」という感覚に結びつくと思います。
1については、マルチタッチに関するかなりの部分の特許をAppleが抑えているようです。同じタッチディスプレイを使って端末を作っても、それを操作者の意図に変換するドライバの部分次第で実際の操作感は変化します。Appleは他者に先駆けてその部分を開発し、特許として申請しているので、同じものを実現しようとするのはかなりの困難があるものと思われます。誰でも真似できるハードウェアは外注して安く上げ、真似しづらいソフトウェアの部分で参入障壁を作っているという構図ですね。
個人的に使った範囲では、Xperia Arc、Galaxy Sが比較的高いタッチ追従性能を持っていたと思いますが、それでも初代iPhoneには及んでいませんでした。
2についてはOSのUIをレンダリングをする部分に構造上の問題があると思います。iOSは当初からGPUのアクセラレーション機能を活用してUIをレンダリングする機構を持っていました。これはMac OS X由来の技術です。スマートフォンの貧弱なCPUに頼らず、画面はGPU上のテクスチャとして表現することで、スムーズなスクロールやアニメーションを実現しています。こうした点が重要であることはアプリ開発者にも比較的浸透しており、フレームレートを表示しながら、自分の書いた処理がUIのスムーズさを妨げないようにチューニングするというのは割と普通です。
Android端末も高速なGPUを備えている端末は多いです。3DゲームやすべてOpenGLで実装されている内臓ギャラリーなどはiOSと同等以上にスムーズに動作するものもたくさんあります。しかし日常的に使う各アプリのView部分にはGPUアクセラレーションが活用されていないようです。Galaxy SやHTC端末はアニメーションやスクロール速度が他社の端末より早い部分がありますが、これは標準のUIパーツにメーカーが手を入れていると推測しています。
この部分についてはOSの進化、もしくは端末メーカーのカスタマイズ次第で改善される可能性が高いです。実際Android3.0以降では標準のViewでもGPUアクセラレーションが使用されているようです。
まとめると、タッチパネルについてはAppleの特許を回避してメーカーががんばる必要があってかなり大変。スクロールやアニメーションについては今後のAndroid OSの進化で改善される可能性が高い、という感じだと思います。
わかりやすいご回答ありがとうございます!
やはりAndroidもハードのスペック的にはiPhoneに劣らないですよね。
問題はいかに描画をGPUに投げているかということですね。
たしかにOpenGLで実装したアニメーションはiPhoneと同等の滑らかさで動きました。
つまり現状のもっさりしたUIに関しては、GPUを活かしきれていないということですね。
タッチに関しては当分追いつけない気がしますね…。
新しい機種では、単発でタップした時の精度はそこまで気にならないのですが、ドラッグ時に座標を検出する頻度など、まだ雲泥の差があると思います。
そこはハードウェア的な理由ではなく、ソフトウェア的な問題なんですね…。