オルタナティブ・ブログ > jargonaut >

技術、動向、製品、その他いろいろなことについて(脈絡無く)話題を振ろうと思います。

iPhone OS 4.0って、OSのあり方に一石を投じることになるのかもしれないと思った

»

最近、マスメディアに関連した話が多くなっていたので、本来の技術屋の立場に戻ってみたいと思います。最近のフラストレーション、これが原因のひとつにもなっていますし。^ ^;

iPhone OS 4.0については、本当のマルチタスクではないとか、利用できる開発言語に対する制限で開発者側の不満が高まっているとか、いろいろな話が聞こえてきます。

そこで、私なりに調べてみたことを簡単に整理してみました。深く知るためにはアップルとのNDAが必要だったりしそうなので、あまり突っ込んだところまでは入れてません……。


▼ かなり徹底していると思われるユーザー寄りの視点

まず最初に感じたことは、とてもよく考えられているなという点です。

たとえば、マルチタスク。一部では本当のマルチタスクではないといった話がありますが、それは違います。「本当の」という言い方が微妙ですが、iPhone OS 4.0のマルチタスク機能は、ごくごくまっとうなマルチタスク機能を提供します。なぜこのような話が出てきたのかは不明ですが、少なくとも、その点については誤解であると言えそうです。

で、実はここからが重要なのですが、iPhone OS 4.0は“お行儀が悪い”アプリは強制的に排除します。場合によっては、強制終了もあるということでしょう。

なぜ、そのようなことをするのか? その疑問は、少し調べていくと「ユーザーのメリット」という視点を持つことで解消します。

ちょっとここで、ひとつの例を挙げてみましょう。あるマルチタスクOS上で、とても多くのリソース(メモリとかCPUパワーなど)を消費するアプリを動かしたとします。ユーザーは、続けて、そのアプリを動かした状態で別のアプリを起動します。

このとき、バックグラウンドにまわったアプリが多くのリソースを抱えたままになっていると、ユーザーがそのアプリを終了し忘れた場合、さまざまな不具合を生み出します。たとえば、他のアプリの実行を遅くする。バッテリーを使っている場合、その消費がどんどん進み、想像していたよりもはるかに短い時間でマシンが使えなくなる。不要な熱を持つ(熱は、装置に対する直接的なダメージになりえます)、などなど。

こうした不具合は、あまりリソースを必要としないアプリでも起こす可能性を持っています。それは程度の違いであり、本質的には変わりがありません。むしろ、“軽い”アプリのほうが終了し忘れる可能性が高い(リソースを使うもののほうが挙動に現れるので気付きやすい)ので害になりやすいとも言えます。iPhoneのように、リソースが限られていて、常時起動が前提かつリブートの機会も極めて少ない端末(マシン)ではなおのことでしょう。

私の考えですが、バックグランドで動き続けなければいけないアプリはそうは多くないはずです。ネットワークやユーザーからの入力を待つといったことはOSからの割り込みで対応するわけですから、それまではバックグランドでおとなしくしていればよい。そして、“特別な待ち”のないアプリなら、それこそサスペンドしてくれたり、場合によってはユーザーに代わって誰かが終了してくれるようになってくれるとありがたいですよね(リソースがいっぱいあるマシンならそうしたことを考えなくてもいいのかもしれませんが……)。

たとえば、電子ブックを見ていて、そのまま他のことをし出したら、どのページを開いていたかを記憶して電子ブック(を読むためのアプリ)を終了してもらったほうがシステム的にはいい(余分な負荷が減る)。再度電子ブックを開くと、前回終了した時点の状態で再開されるとか。

そういうことは、たぶんOSと連携するととても便利になるんじゃないかと思います。なんといっても、アプリは自分の世界以外のことは分かりませんけど、OSはそのマシンの状態を知っているわけですから。

いろいろ調べていくと、iPhone OS 4.0は、こうした問題にOSの立場から切り込んだのかもしれないと思うようになりました。


▼ ユーザー寄りを実現するための取捨選択

私が知る限り、多くのユーザーを直接のターゲットとしたOSで、ここまでユーザーを向いたものは経験がありません。(違いを明確にするためにあえて「従来型」と呼びますが)従来型のOSは、ユーザー重視とか言いながら、その実、開発者を優先している部分がかなりあります。これは、そのOS上で動くアプリこそがユーザーにとって重要なのだから、そうしたアプリをいっぱい作ってほしいというOS提供側の目論見があるからです。実際、そのOSで利用可能なアプリが多いことはマーケティング上の大きな“売り”になりますし、私たちユーザーも、自分たちが使えるアプリの有無をものすごく気にします。

しかし、ここには落とし穴があります。たとえば、OS自体が過去との互換性を維持するために大きく肥大化したり、要求するハードウェアのレベルがどんどん高くなることはよく知られた事実でしょう。それ以外にも、長時間稼働させているとなんとなくでも「処理がどんどん重く(遅く)なる」、「バッテリーの持ちが悪くなったような気がする」ということを経験されている方も多いのではないでしょうか。もしかすると、その原因が“お行儀の悪い”アプリにあるかもしれないのです。

ここで、最初のほうで話題にした“お行儀の悪い”という言葉の意味を少し考えてみます。直感的にまず思うのは、本来は不要とも思えるほどのリソースを要求すること。元開発者として正直に言えば、自分の作るアプリこそが王様であり、他のことは気にしないというのが本音です。他のアプリのことを考えて自制しても、それが原因になって自分のアプリの評価が下がったらイヤだとか、どんな状況で使われるのかわからないので考えてもしょうがないとか、いろいろな理由があります。ただ、これによる影響はあまり大きくないのではないかと思います。

むしろ問題なのは、メモリリークを頻繁に起こすとか、アプリ自身がバックグランドの奥底に入らない(常にオンメモリーになるような)ように小手先を使うといった問題を内包している場合な気がします。実際、ガベージコレクション(GC)という、本来はアプリから開放されなければいけないメモリを回収する仕組みの価値がどんどん高まっているという事実もあります(メモリリークについては開発者の不注意だったり、開発ライブラリ側に問題があるということもあるでしょう)。

そうした様々な問題や原因を考えると、それらを防ぐためにはアプリの開発環境を限定するのもやむを得ないのかもしれないとも思えます。しかし、そのことは逆に、開発者にとっての負担となり、生まれてくるアプリの数を減らすことにもつながります。


▼ iPhone OS 4.0の今後に注目したい

私のいまの興味は、iPhone OS 4.0が世の中にどのように受け入れられていくかという点にあります。もう少し正確に言うと、iPhone OS 4.0のコンセプトがどのように評価されるのか、ということです。

現実的には、マルチタスクを含めたiPhone OS 4.0の機能をフルに使おうと思ったらiPhone OS 4.0に対応したアプリの登場を待つ必要があります。ですから、当初は、そのメリットを感じるケースは極端に少ないのではないかと思えます。普通に考えても移行にはある程度の時間がかかると思われますし、アプリをiPhone OS 4.0に移行させる際に開発環境の制約がどの程度の影響を及ぼすのかといった未知の部分もあります。そういうことを含めて、最初に飛びついたユーザーの評価、それに続くユーザーの評価、そして、開発者側の評価を注意深く見ていきたいと考えています。

 

# いろいろ他にも思うところはあるのですが、今回このへんで……。

Comment(0)