iPhone SDK, ついに実機でのテストが可能に

Img_0140  ようやくiPhone SDKのDeveloer Certificateも入手し、実機でのテストが可能になった。さっそく、エミュレータ上で作ってあった「はてな人気エントリー・リーダー」を走らせようとしたのだが、XMLパーサーとして使っていたXMLParserが(OS-Xには標準装備だが)iPhoneOSには存在しないことに気がつき、libxmlで代用することに。これに結構手間がかかったのだが、なんとか解決してビルドに成功。

 WiFiに繋いだiPod touchにインストールすると、一発でちゃんと動く。非同期でブックマークの数を入手してくる仕組みもきちんと動いている。こうなったら、もう少し手を入れてからiTunes Storeで売ってみるのも悪くないかも知れない。これで会社は作れないだろうが、ブロガーの副収入としては十二分だろう(→はてなユーザーのみなさん:いくらぐらいなら買っても良いかのアンケートにブックマークコメントで答えていただけるとありがたい)。

 しかし、こうやってiPhone用のプログラムを書いていると、やはり私は「デバイス上のプログラミング」が好きなんだな、とつくづく思う。「今年こそはRuby on Railsをマスターするぞ」と予定していたにも関わらず、ここのところはiPhone/Objective-Cばかり書いているが、これが楽しくてしかたがないのだ。

 Safariというれっきとしたブラウザーが動くiPhoneでわざわざObjective-Cを使ってウェブ・サービスとのマッシュアップ・アプリを作るなんて酔狂なことをするエンジニアがそれほど沢山いるとは思えず、その意味では、その超ニッチな世界で誰よりも良い仕事をしてスティーブ・ジョブズから感謝をされる、というのを今年の目標にするのも悪くないかな、と思う今日この頃である(ちなみに、古川さんによると、私はジョブズに会ったことがあるどころが、自分が書いたソフト「Candy」を見せて悔しがらせたことがあるらしいのだが、さっぱり覚えていない...)。


iPhone SDK、ヒューマンインターフェイスと微調整のおもてなし

Sign 今回、シアトルに戻る飛行機でチャレンジしたのがタッチ入力のベクトル化。指の動きを単純に繋ぐとグダグダになってしまうので、そこを適宜補完してナチュラルなカーブにする必要がある。

 プログラムはあっさりと書けたのだが、パラメータの調整が難しい。理想はサインペンでササッと書いたイメージなんだが、これがなかなかできない。大きな曲線を優先すると細かな部分が省略されてしまうし、逆に細かな部分を優先すると大きな曲線がきれいにでない。

 とりあえずエミュレーター上でできるとこまではやり、あとは実機で試しながら微調整するしかないところまで来たのだが、こんなことをやっているとあっというまにシアトルに到着。

 少し前に書いた金魚のシミュレーションの時もそうだったが、この手のプログラム作りで一番手間がかかるのが、プログラミングそのものではなくて、細かなパラメータの調整だったりするのが、ヒューマンインターフェイスを作る時の難しさというか面白さ。ホンダのAsimoとかも、きっとこの手の微調整で苦労しているんだろうな、と勝手に想像してみる。


iPhoneでお絵描き、色指定が可能に

Flower_2  昨日作ったiPhone用「マルチタッチお絵描きソフト」。今日はとりあえずストロークごとに色が指定できるようにした。ライブラリとして提供されているToolbar用のコントローラを使うとこの手のUIが簡単に実現できる。ただし、本来は複数のビューを切り替えて表示するために使うものなので、こんな風にモード切り替え(この場合は色の切り替え)に使うのは少し邪道かも。

 しかし、そろそろundoがないと絵を描くのが辛くなってきたので実装したいが、セッション間のundoをどうやって効率良く格納するかが悩ましいところ。iPhone OSはPalm OSと同じく、アプリケーションの切り替えの際にアプリのプロセスが完全に停止されるため、セッション管理をキチンとやらないと使い心地が悪くなる。

 今描いている絵を保存するぐらいは当たり前だが、undoスタックの中身をキチンと保存しておいてあげたりするのがリッツ・カールトンなみのおもてなし。

 ちなみに、このiPhone OSのプロセスモデルに文句を言っているエンジニアがいるようだが私はそうは思わない。モバイル端末のようにリソースが限られているデバイスの場合、各アプリケーションが使えるメモリの量を最大にするにはこのアーキテクチャが一番正しい。特にストレージがFlashメモリの場合、不要な書き込みは寿命を縮めるので、バーチャルメモリはread-onlyな部分にとどめておかなければならない。なぜ今のままのWindows Vistaがモバイル端末では使い物にならないかの理由がここにもある。