iPhone SDKとその制限:いいことずくめではないディテール

次の記事

Zicasso―完璧な旅のプランづくりはおまかせ

今日(米国時間3/6)のSDKリリース発表(ライブ)ではスティーブ・ジョブズとアップルのチームが全部の詳細には触れなかったようで、どちらかと言うと上辺だけなぞらえた印象だった。でも、サードパーティーの開発者がiPhoneに諸手をあげて飛び込む前にキチッと考えておく必要があるのは、ディテールだ。

昨年Facebookが「Facebook Platform」を発表した際、開発者はこれを無視して標準のWebサイトと平行してFacebook対応のアプリを作るか、あるいはFacebook対応のものだけ作るかの決断を迫られた。そしてFacebook Platformがプロプリエタリだった(今もそうだ)にも関わらず、ベンチャーキャピタリストのJosh Kopelmanは一部開発者に向け、MySpace用にではなくFacebookで今すぐ開発すべきだとの主張を展開した。

Facebook Platformには新規スタートアップを支援する独自のベンチャファンドがある。本日付けでiPhoneにも同じようなファンドができた

iPhoneアプリ開発の決断にしても2つは非常によく似ている。これからは既存製品にiPhone対応のものをひとつ加える開発者もいれば、iPhone対応のものだけ作る開発者も出てくるだろう。

またあのKopelmanが新エントリでiPhoneアプリ構築に今すぐ取りかかれ、早ければ早いほどいいと開発者に発破をかける出番かな? たぶんね。ただし、今日ブロガーと開発者が大勢で虫眼鏡で詳細を掘り下げてみたところ、ちょっと細かい点で問題もあることが分かった。

iPhone SDKにかかる制限の一端は今日のイベントでも発表となった。例えばVoIPサービスは基本的にツキがなく、ネット接続はWiFiだけ。携帯電話のネットワークで繋いでも使えない。これはだが、もっと大きな問題のサインとも取れる。―アップルとしてはiPhone収入の流れをちょっとでも脅かすアプリは認める気がない、ということだ。同じ理屈でSIMロック外しも禁止だ(←イベント最後の質疑応答で「App StoreではSIMロック外しのアプリも認めるのか?」と尋ね、ジョブズの答えが「NO」だった件について、質問したエンガジェット編集長が所感を書いてるエントリ)。 しかし、これ以外のブラックでなく、もっと白(合法的)なアプリはどうなのか?「アマゾンはAmazon MP3ストアから楽曲購入できるiPhoneアプリ(OS X Touchアプリ)も作れるんだろうか?」、John Gruberはこう疑問を投げかけている。これはすごく良い質問で、今のところこれに対する答えはない。

これ以外の制限は開発者同意書を探すと見つかる。開発者が使えるのは発行されたAPIだけで、アップルが良いと言う使用法でのみ使える、とか。まあ、これで安定性は上がるだろうけど。さらにアプリは所定の領域以外の場所にデータの書き込みができない、とある。つまり開発者は他のアプリのデータ修正はできない。

が、唯一最大の問題は全100ページの『iPhone Human Interface Guidelines』の中にあった。これは一般公開のドキュメントだが閲覧にはiPhone開発者として登録が要るため、下にdocstocで貼り付けておいた。

ユーザーは一度に1個のアプリだけ実行できる。そしてユーザーがアプリを離れるとアプリは停止する―大した問題には見えないが、この一文は、あるアプリから別のアプリに切り替えができない上、作業の継続もできないことを意味する。iPhone上に今あるWebサイトサポートにとってこれは大問題だろう。―ブラウザから中座するとすぐ接続が切れてしまうのだ。みんなてっきりiPhoneではインストールしたアプリはバックグラウンドで動作を続け、ウェブから情報を集めたり、ウェブに情報を送ることができるものと期待していたのに。

一度に実行できるiPhoneアプリは1個である。サードパーティーのアプリはバックグラウンドで決して動作しない。これはつまりユーザーが他のアプリに切り換えた時、入ってきた電話を取った時、あるいはメールチェックの際、それまで使っていたアプリが停止することを意味する。(p. 16)

これは一部開発者にとって深刻な問題となりそうだ。例えば、そうだな…ある開発者がiPhoneから位置情報を回収して(携帯電波塔を使って現在位置を割り出すiPhonesの三角測量機能を使えば位置情報は生成できる)、それをヤフーのFireEagleに放り込んで回った先々の情報を追跡したいと考えたとする。まあ、これも無理な相談なのだ。移動中アプリをずっと開きっ放しにして追跡以外のことにiPhone使わないんなら別だが。

あと例えばIMアプリ。今日のイベントではAIMバージョンのデモを見たが、このIMもバックグラウンドで実行できないので、何か他の作業をしながらメッセージは集められない。電話がかかってきてアプリ開けっ放しで受けたら最後、IMの相手にはオフライン表示が出てしまう。要するにボトムラインはこう。 ―何かするのにウェブと定期的に情報のやり取りが必要なアプリは、絶えず頻繁にやり取りが実行できないのだ。

おそらくiPhoneもこれから出るバージョンではCPUとメモリー容量も追加となるだろうし、こういった制約はなくなるだろうけど、今のところアプリは全クラス使い物にならないか、本来(制約がなければ実現できるかたち)より格段に有用性が下がってしまう。

もしこれ以外にも重大な制約をご存知の方、見つけた方がいたら是非コメント欄でリンクや文章でご教示いただきたい。何かあれば本稿に追加しよう。


iPhones Human Interface Guidelines – Get more free documents

[原文へ]

(翻訳:satomi)