PR
[画像のクリックで拡大表示]

 「iPhone向けアプリケーションは,十徳ナイフではなく,切れ味鋭いシンプルなナイフを目指すべし」。東京・目黒で開催されたソフトウエア開発者向けカンファレンス「Developers Summit 2009(デブサミ2009)」で2009年2月12日,「iPhone開発者座談会」と題したセッションが行われた。実際にiPhone向けアプリケーションを開発している5人のソフトウエア開発者が参加し,開発で苦労した点や,開発を進める上での注意点などを披露した。

 司会を務めたのは,日本Rubyの会会長である高橋征義氏。座談会に参加したのは以下の5人である。

中川智史氏
Wikipediaビューア「Wikiamo」,IRCクライアント「LimeChat for iPhone」開発者

瀧内元気氏
日めくり手帳「PokeDia」,毬藻鑑賞ソフト「iMarimo」開発者

shachi氏
メモ・ソフト「Evernote for iPhone」開発者(請負)

森琢磨氏
Twitterクライアント「夏ライオン for iPhone」,投稿専用Twitterクライアント「Tweeter」開発者

吉田悠一氏
2chビューア「2tch」,モザイク・ソフト「hideHere」,軽量Webブラウザー「dharma」開発者

 まず,実際の開発で困ったことを各々が挙げていった。瀧内氏が挙げたのは,多言語対応の問題。同氏が開発したPokeDiaは,日本語や英語など17言語に対応している。このため,少し機能を追加して設定画面に1行追加するだけでも,すべての言語に対応する必要があり,大変だという。しかも,ただ意味を訳せばいいのではなく,限られた面積の設定画面でバランスよく要素を配置しなければならない。「万国共通のシンボルのアイコンあればいいのだが,そうしたものはなかなかない」(瀧内氏)。

 他の開発者が挙げたのは,米Apple Inc.の対応に関するものだ。中川氏は「iPhone OSのバージョンが上がると,細かい仕様,例えばユーザー・インタフェースのイベントの仕様などが勝手に変更されることがある」と指摘する。ユーザーがiPhone OSをアップグレードすると,それまで動いていたアプリケーションが一部動かなってしまうのだ。しかも,新しいiPhone OSに対応するようアプリケーションを修正しても,公開されるまで1週間程度かかる。「アプリケーションの説明文は,修正が2~3時間で反映されるので,とりあえずそこで告知するようにしている」と同氏は語る。

 森氏は「Pending Contract」という問題に苦しめられたという。審査は終わったが,その後アプリケーションがなかなかApp Storeに公開されない状態を指す。同氏は2カ月も待たされたという。「個人の場合は,できるだけ早めにダミー・ソフトを公開してアカウントを作っておくといった対策が重要だと思う」(森氏)。吉田氏の2tchも,提出してから公開されるまで3カ月かかったという。「アダルト向けのコンテンツは見ることができないように」,「日本語でしか読めない掲示板のビューアを米国で公開するのはいかがなものか」といったさまざまな指摘を受けた。バージョンアップの際にも,前のバージョンの審査で通った話題を蒸し返す審査員がいるという。

 shachi氏は,iPhone向けアプリケーションを開発しようとしている人は,Apple社が示しているユーザー・インタフェースのガイドラインに注意した方がいいとアドバイス。「FlashのアプリケーションをそのままiPhoneに移植してしまうと,ユーザー・インタフェース・ガイドラインに沿っていないという理由から,結構な割合でリジェクトされるはず」と指摘した。

マニアックな機能はすべて削る

 次の話題は「アプリケーション機能をいかに取捨選択するか」。中川氏は「Apple社のドキュメントには『iPhoneにデスクトップのアプリをそのまま移植してはならない』と書いてある。80%の人が使う機能だけを実装して,残り20%は落とすということだ」と語った。実際に,WikiamoではWikipediaの編集機能を意図的に削っているという。shachi氏も「一つのアプリケーションでできることは一つでいい。十徳ナイフは要らない。単純なナイフの切れ味を上げていく方がいい」と語った。吉田氏も「『こんな機能を追加してほしい』という要望は多いが,全部入れるとカオスになってしまう。操作の流れもぐじゃぐじゃになる。最初の哲学からズレ始めると,作っている本人が何を作っているのかわからなくなる。取捨選択にセンスが問われる」という意見だ。

 ユーザー・インタフェースについては,中川氏は「基本的にはApple社が作ったアプリケーションを見て学ぶことが重要。『なぜここにはボタンがないのだろう』といったことを考えれば,iPhoneのユーザー・インタフェースの考え方がわかる」と語った。現場では,さまざまな工夫もある。瀧内氏は,開発を始める前に,アプリケーションのイメージを実際に320×480ドットの画像として作ってみたり,インタフェースの構築ツールである「Interface Builder」で部品を並べてみたりして,使い勝手をシミュレートしているという。shachi氏が使うのは紙とはさみだ。「パソコンを使うといちいちサイズを合わせたりするのが面倒だが,紙は適当に切っても感じをつかめる。ダメだと思ったときにもすぐに作り直せる」(同氏)。

 森氏は「ユーザービリティを高めるにはパフォーマンスも重要。そのためにはユーザーが触る部分をできるだけ速くすべき」と指摘した。既存のあるTwitterクライアントは,見た目はきれいだがスクロールが重かったという。そこで,夏ライオン for iPhoneのスクロールは,コードは多少汚くなっても,動作速度を優先して実装した。森氏は夏ライオン for iPhoneのソース・コードを公開しているため,吉田氏は2tchのスクロールに夏ライオンのソース・コードを流用して高速化しているという。

 最後に,これからiPhone向けアプリケーションを開発しようとしている人に各自がメッセージを送った。メッセージは以下の通り。

中川氏
「世界には自分が作ったアプリケーションを使ってくれる人が必ずいる。ぜひiPhoneでアプリケーションを開発してみてほしい」

瀧内氏
「iPhone向けアプリケーションの開発には落とし穴や罠がいっぱいあるので,いろんな人と情報を交換する方が不要なトラブルに遭わなくて済む」

shachi氏
「iPhoneでの開発を始めてから,個人的に海外から仕事が来るようになったので,海外で仕事をしたい人にはおすすめ。あと,Twitterに入ってわからないことをつぶやいてみると教えてくれる人が多いのでTwitterも活用すべき」

森氏
「自分はObjective-Cの勉強から始めた。iPhoneはサンプルがいっぱいあるので,SDKをまだ触っていない人はぜひダウンロードして触ってみてほしい」

吉田氏
「App StoreとiPhoneという仕組みは,自分のように自己満足が好きな人間にはとてもいいフレームワークだと思う。いろいろ作るのが好きな人は挑戦してみると楽しいはず。あと,すごい遠方の国でダウンロードされるとうれしい。『フランスで2chを見てる人がいるんだ』と思うと楽しくなる」