iPadアプリを作ってみた
── 出渕亮一朗 ──

投稿:  著者:


今年5月、iPadが解禁になった日に速攻で予約に行った。というのも、この手のものが現実となる日が来ることは、けっこう私には思い入れがあったからだ。

digitalimage2000.jpgインプレス社発行の「デジタルイメージ ギャラリー 2000」に、私は未来のデジタル機器のアイデアスケッチを、CGコミック風にした作品を掲載した。「News Receiver(TM)」と名付けたその機器は、折りたたみ可能なダブル液晶見開きA4サイズ、カバンに入っていつでもどこでも見ることができる。余計なボタンやキーボードは一切なし、すべてタッチスクリーン操作、無線ネットから購読している新聞や雑誌の情報が転送されてくる。もちろんマルチメディア、画面は拡大縮小自由自在といったものだった。

今のiPadとニンテンドーDSを足して2で割った感じ(?)をもっと薄くて大きくして軽くして、2画面の継ぎ目をなくしたものだろうか。この漫画自体がそのデジタル機器に表示されているという設定で、どんなページめくりのUIになるかとか想像を膨らませていました。

また、以前、ひつじ書房の松本功さんらによる「投げ銭システム」の話があった。今はインターネットはタダ見のものだけど、良い、役に立ったと思ったものに10円でも100円でも投げ銭できればいいんじゃないだろうか、といったものだったと思う。iTuneやAppストアのシステムは、それに近いものを実際うまく実現していると思う。

そこで、iPad/iPhoneのアプリって実際どんなふうに開発するんだろう? と体験したくなり、ひとつ挑戦してみることにしたのだ。


まず、iPhoneデベロッパプログラム(有償)に登録しなければならない。Appストアに登録しているIDで、このプログラムをクレジットカードで購入するのであるが、開発者名の日本語表記、ローマ字表記の問題でうまくいかず、Appleの日本支社に連絡して対応してもらった。

そして、iPhone SDKをダウンロードする。最新版はiOS SDK 4.1 Xcode 3.2.4(2010/10/17現在)である。

Xcode(開発ツール)のプログラミング言語は基本、Objective-Cというものである。ここでざっくりとプログラミング言語の話をすると、ネイティブなアプリケーション開発言語は、WindowsはおもにC++、話題のAndroid OS等はJava、MacやiPhoneはObjective-Cということになるが、実はすべて、C言語の子孫だと言える。オブジェクト指向言語(プログラミング用語です)に進化するときに、個々にまあこだわりというか主張があって微妙に異なってきたものなのだ。

iPhoneプログラムを始めてわかったことは、実は、Xcodeは、C++も使えるということだ(これをObjective-C++と呼ぶこともある)。そのため、Windowsで開発したアプリのソースコードをごっそり移植することができるのだ。

ただ、OSやハードに依存するコアな部分はObjedtive-Cで記述する必要があるが、自分の作りたい部分のクラス(プログラミング用語です)はそのまま使うことができた。

OSやハードに依存するものとは、この場合、
・基本ループの部分、描画ルーチンのイニシャライズ
・デバイスの扱い、例えば、マウスをマルチタッチに変更
・描画ルーチンのOpenGLを OpenGL ES に変更(OpenGLは3Dを描画するためのプログラム規約、ESは組み込み用に特化させたもの)
・サウンド等のメディアの扱い
・iPad固有の加速度センサーの処理等
などである。

Objective-Cを使うことは、C++やJavaと違ってここがいいんだ! みたいなことは、何かというと、抽象的な表現となるのですが、ここで「スタートボタンを押す」とプログラムしておけば、動作中にカメラでも、CDプレイヤーでも、洗濯機でも、掃除機でも何がきてもそれをスタートさせることができるという点かな。あたり前のようですが、このあたりの人間の感覚に近いことが他ではなかなかできなかったのです。

このように、プログラミングは意外とすんなりといったが、実はそれよりも、アプリを実機のiPad本体で動作させたりする手続きにすごい時間が取られたのだ。アプリの開発には何重もの関所が設けられており、また、この辺りはすべてデベロッパーサイトの英文を読みこまなければならないのだ。

例えば、アプリのIDは固有なものとするために、<ドメイン名>.<アプリ名>とすることが推奨されており、このために、自分のドメインを取得することにした。アプリサポートのURLが必要ということもあったのだが。

アプリが完成したら、Apple社にネット経由でアプリ情報とともに提出するのだが、ここで巷で問題にされている審査がある。私のアプリは8月の段階ではあっさりと審査を通った(審査開始と合格メールから推定すると審査時間2分!?)。だが、今はまた状況が変わったようである。(後述)

ここで、iPhone/iPadアプリ開発の参考本をいくつか紹介します。

・徳井直生著「ユメみるiPhone クリエイターのためのiPhone SDKプログラミング」
イラストや文体等、初めての人でも楽しく読めるように工夫されています。
< http://www.amazon.co.jp/exec/obidos/ASIN/486267058X/dgcrcom-22/
>

・横江宗太著「OpenGLで作るiPhone SDKゲームプログラミング」
中級者向け、3Dに挑戦したい人に。
< http://www.amazon.co.jp/exec/obidos/ASIN/4844328085/dgcrcom-22/
>

・橋本佳幸著「iPad プログラミングの作法」
中級者向け、iPad対応本。
< http://www.amazon.co.jp/exec/obidos/ASIN/4798026417/dgcrcom-22/
>

・大津真著「Xcodeによる、Objective-C入門」
初心者向け、そもそもプログラミングは? という人に。iPhoneアプリは作れないが、Macのアプリは作れます。
< http://www.amazon.co.jp/exec/obidos/ASIN/4839931879/dgcrcom-22/
>

但し、OSの仕様やサンプルコードはどんどん変わっていくので、常に最新情報はデベロッパーサイトでチェックすることがやはり必要だ。

●最近の状況

この9月にiPhone/iPadアプリ開発の状況が変わってきたようだ。まず、今までブラックボックスであったアプリ審査であるが、Appストア審査ガイドラインというものがApple社から公開された。

その中で気になるのが、「特に役に立つか、長続きするエンタメアプリでないとだめ」という項目である。実用的なアプリかゲームアプリ以外は締め出すということかもしれないのだ。携帯アプリアート(mobile app art)というシーンも盛り上がってきそうだったのだが、水をさされるかもしれません。

また、今までは、iPhone/iPadアプリ開発はXcode等のみしか使えなかったのだが、サードパーティのものでもOKとしている。たぶん、ウイルスを恐れてFlash非対応だったのだが、今後は変わっていくのだろう。HTML5を使ってウェブアプリを作れば、iPhone/iPadアプリと同じようなものができるとのコメントもある。

携帯タブレット、スマートフォン業界は、Apple社のiOS、Google提供のAndroid OS、MicrosoftのWindowsPhone 7と三つ巴の戦いとなり、今後どうなっていくか目の離せないシーンではありますね。

◎AL Volvox こうして完成したiPad向け無料アプリ
< http://itunes.apple.com/jp/app/al-volvox/id386460460
>

AL Volvox(エイエル ボルボックス)は顕微鏡で覗いたミクロワールドをイメージしてみました。ボルボックスは隠れファンも多いという、小さなマリモのような美しい微生物です。しかし、ほっておくとちょっとリアルな敵の微生物、プロトゾアにどんどん食べられてしまいます。特に何をするというアプリでもないのですが、熱帯魚を眺めるようにのんびりと楽しんでいただければと思います。

参考:iPad/iPhoneアートがいろいろ紹介されているサイト
CreativeApplications.net
< http://www.creativeapplications.net/
>

【出渕亮一朗】ryoichiro.debuchi(a)gmail.com
コンピューターグラフィックス、インタラクティブアート分野のアーティスト、グラフィックス分野のプログラマー
< http://www.debuchi.com
>