AppleしかiPhoneを作れないわけ

こないだiPhoneを買った。そろそろ一ヶ月になるだろうか。
賛辞も批判もたくさんあると思う。プログラマとしてプログラマでないと書けない視点からiPhoneの売りを書いてみたいと思う。


まず、iPhoneの最大の売りはブラウザである。これは疑う余地もない。
なので、インターネットをブラウジングすることに生活の一定の時間を割り割いている人には絶賛されるだろうけど、そうでない人には価値がわからないかもしれない。今までインターネットを触れなかった時間に、インターネットをすることができる。余った時間を他のことにまわせる。これは革命的なことだと思うのだけれども、あまりに地味なウリなせいか、大きく取り上げられた記事を見たことがない。


閑話休題。ところで、iPhoneSafariには、「指で画面をはじくとスクロールする」という機能がある。もう一つの機能に、「画面をタップすることでリンクをクリックできる」という機能がある。この2つの機能は競合する。どういうことかというと、「指でスクロールさせようと思ったけど、思わずリンクをクリックしてしまった」ということが起きるわけである。iPhoneSafariではこれをどう解決しているかというと、「タップしたままスライドさせた場合、たとえリンクをクリックしていようが、無視してスクロールさせる」という動作を行うことで解決しているのである。
なぜこれがAppleにしかできなかったか?それは、このような機能競合が発生した場合多くは下流行程で見つかるため、手戻りを防ぐためにも、機能を限定させる方向にプログラマ(SE)は動くからである。


たぶん、iPhoneのような端末を開発しているときに上記のような問題に当たった場合、「スイッチか何かでタップモードとスクロールモードを切り替えられるように」と提案するだろう。それは、タップされたときのハンドラと、スライドされたときのハンドラが別であるために、機能を排他的フラグでオンオフできるのが一番コストのかからない解決策だからである。また、仕様を考える人たちも、Safariがやったようなスマートな対策を思いついても、技術的に詳細を提案できないと覆せないし、実際そういう不遇な機能は、僕の携わった機種にも、実はある。
Appleの場合、ジョブズのもと、上から下まで「徹底的にこだわりぬいたUIを開発する」という意思が徹底されていると思われる節がある。なので、前述の「工数を最小にする提案」はおそらくはねられるだろう。UIをデザインする人から、実装する人、テストする人まで、徹底的にUIにこだわりぬく。そういう文化がないとiPhoneのようなイノベーションは起こせない。
プログラマはできるだけ残業しないように、最小の工数で仕様をごまかそうとするし、UIをデザインする人たちもそれに対して反抗できない。商戦期という納期を逃してしまっては、企業にとって大きなマイナスになる上、仕様書に明記されていなかった仕様に関しては無理強いをできないからである。ましてや、テスターは使いにくいということを不具合にはできない。使いにくさ、パフォーマンスの悪さは仕様書に明記されていないから、不具合ではないのである。バグではあるだろうけど。


おそらく、ここ2、3年のうちに日本でもiPhoneクローンはたくさん出るだろう。SamsungのInstinctやOmniaGoogleAndroidも同じようなUIを提案してくると思う。ただ、これだけは断言できるのは、iPhoneよりも使いやすいUIを提案してくる端末は出ないということである。機能面ではより充実を計れるかもしれないし、MicrosoftWindowsのような例をあげるまでもなく、これからのスマートフォンデファクトスタンダードとなるような端末が出現することはありえる。iPhoneを越える端末は登場するかもしれないが、iPhoneイノベーションするような端末は、やはりAppleでないと作れないだろうな、と思う。これがiPhoneを一ヶ月触った上での感想。上記のUIは一例で、ほかにも、「徹底的にこだわりぬいたUI」は随所にある。スクロールバーとかね。