Development」カテゴリーアーカイブ

Aptana IDE: iPhone Development Plugin

Aptana IDE用のiPhone Development Pluginがリリースされました。元々、Aptana IDEというAjax系の統合開発環境があって、それにiPhone用の機能が追加されたという訳です。

お約束のiPhoneプレビュー(縦横切替可)やiPhone用のスターター・ファイルが用意されていて、Ajaxライブラリの取り込みも簡単とか。開発したWebアプリはローカル・サーバですぐに実行できて、iPhone Firebugなるデバッガが使えるようです。具体的な導入方法はDeveloping for the Apple iPhoneを参考にすると良いと思います。

iphone-aptana.jpg

iPhone Development Plugin自体は、Aptana(スタンドアローン版)でもEclipseでも使えるようになっています。AptanaはEclipseをベースに開発されているので、EclipseのプラグインとしてのAptanaもありますね(ヤヤこしい〜笑)。ともあれ、iPhone/Webアプリの開発体制が整ってきましたから、そろそろ始めるのが吉かもですよ。

【追記】MorfikのWebOS AppsBuilderという統合開発環境もiPhoneをサポートしたそうです。PCオンリーなので、私には分かりませんが、PCな人は試してみてください。

iPhoneの開発指標

AppleからiPhoneの開発ガイドライン、Optimizing Web Applications and Content for iPhoneが公開されています。iPhone用のWebサイトやWebアプリを制作する時に考慮すべき事柄が載っていますので、一読をオススメしますです。

iphone-development-guidelin.jpg

それで、ですね、このサイトにiPhone情報を載せているのは、Max用のiPhoneアプリを作りたいからで、特に重要なのはマルチ・タッチなんだけど、まだまだ道が見えてきません。JavaScriptでマルチ・スレッドができるのか(多分できない)とか、複数のonClickを同時に呼び出せるのかとか…誰か教えてください。 

iPhone Dev Wiki

iPhone関係のWebサイトは雨後のタケノコのように立ち上がっているので、どこがメインストリームになるか分からないのですが、取り敢えず、注目のサイトをひとつ紹介しておきます。それはiPhone Dev Wikiで、その名の通り、iPhoneに関する開発情報を集約しようとしているようです。

今のところ、Webアプリなど真っ当な筋合いの情報はほとんどないものの、アクティベーションやファームウェアに関する情報が多くて、心強い限りです(笑)。きっと、WiiやApple TVとは比べ物にならない勢いで解析が進むんじゃないかな。以下は、Zoom to FitができるようになったiPhoney 1.1での表示です。

iphone-dev-wiki.jpg

【追記】同サイトへのリンクを外しました。サーバの負荷が増大するので直リンクは止めてくれ、との記述がサイトにあったためです。公開していいのは、IRC: #iphone @ irc.osx86.hu だそうです。

DSLua 0.7がリリース

DSLuaの新バージョン0.7がリリースされていました。なぜか今のところDSLua.comのダウンロード・セクションには登録されていないのですが、フォーラムの記事からダウンロードできます。

dslua.gif

バージョン0.5や0.6は、私の環境(R4)ではダメだったんですが、0.7はバッチリ動きました。インストール方法はココに書かれていますが、簡単に意訳しておきます。

1. DSLua 0.7をダウンロードする。
2. ダウンロード・ファイルを解凍する(自動で行なわれる場合もあり)。
3. DLDIを用いて、DSLuaのROMにパッチを当てる。
 - DSLuaのROMとは、DSLua.nds、DSLua.sc.nds、DSLua.ds.gbaのファイルのこと。
 - 私はDLDI Dropを使いました。ROMファイルをドロップして、リストからマジコンを選ぶだけ。
4. scriptsフォルダをマジコン(microSDなど)のルート・ディレクトリにコピーする。
5. DSLuaのROMをマジコンの任意の場所にコピーする。

以上で、インストールは完了。後は、マジコンを挿入してDSを起動し、DSLuaのROMを起動するだけですね。R4の場合は、DSLua.ndsが該当するようです。

iPhoneアプリの光と影

すっかりiPhoneサイトと化している今日この頃ですが(苦笑)、codedifferentがiPhoneアプケーションのメリットとデメリットを考察していますので、適当に省略しつつ、意訳してみます。もちろん、これはWeb 2.0+AJAXで開発してね、ということになったサードパーティ製アプリのことです。

まず、長所として挙げているのは次の事柄です。

・(Symbianのような)アプリケーションの認定が不要である。
・ユーザはブックマークするだけで良く、インストール作業が最小限で済む。
・サーバのファイルをアップデートするだけで、ソフトウェアの更新が簡単に行なえる。
・コピー・プロテクションが不要になり、サーバへのログインで代替えできる。
・Webベースの課金システムを利用できる。
・モバイル・アプリケーションとインターネット・アプリケーションの同期が簡単に行なえる。
・Webベース・アプリケーションのモバイル・インターフェースは素早く実現できる。

一方、欠点としては以下の点を挙げています。いずれも、Appleが何らかの解決策を提供することが望まれる、としています。もちろん是非とも!ですね。

・文脈(場所、状況、処理、動作環境など)に応じた処理ができない。
・自律的な動作(フロント化、スリープ解除、アラートなど)ができない。
・iPhoneのリソース(デジカメ,マイクなど)にアクセスできない。
・オフライン・アプリケーションが実現できない。
・国外では複雑で高額なローミング・サービスを使わざるを得ない。

ちなみに、私が今気になっているのは、マルチ・タッチは何点まで同時認識できるのか、そもそもWebアプリでマルチ・タッチが使えるのか?という点です。あと1週間少々で明らかになると思いますが、気になって夜も眠れません(笑)。

iPhoneのアプリ開発はAJAXで

私はまだニューヨークにいるので、夕方にホテルに戻ると、ちょうどWWDC2007の基調講演の概要が伝わってきました。今回のメインは「時空の覇者」Leopardであったのは言うまでもなく、AppleのUSサイトはトップページからガラっと変わってますね。JPサイトは毎度のことながら全然変化ありません(哀)。

それで、気になっていたiPhoneの開発に関しては、フル・スペックのSafariエンジンが搭載されるので、Web2.0+AJAXアプリを書いてね、ってことのようです。特別なSDKは不要で、そのアプリはiPhoneサービスと統合できるとか(本当はサービスじゃなくって、iPhoneそのものにアクセスしたいんだよな〜+マルチ・タッチ使えるんだろうな?)。Dashcodeも使えるようになるんだろうな、きっと。

iphone-development.jpg

ま、順当な路線ですけど、AJAXならIP通信も簡単だろうし(?)、Maxとの連携もバッチリできるハズ。ちょっと前に描いたお馬鹿想像図も現実になりそうです。MaxのGUI画像をジョークで埋め込んでもいいね。誰かMax風Canvasライブラリを作ってください(でも、Max5までの命かもですけど)。

しかも、iPhoneを持っていない人(現時点ではApple関係者やMadonnaじゃないThe Rest of Us)も今から開発を始められるってことですよね。Win版Safariも登場したので、PC君も安心です。もっとも、こーなるなら、AJAX勉強しておくんだった(涙)。AJAXって面倒&不可解っぽい印象が強かったからね。

iPhoneでのアプリ開発が可能に?

D5でSteve JobsがiPhoneでのサード・パーティによるアプリケーション開発を可能にすると発言したそうです。D5サイトでの発言要約は以下の通り。

Jobs says it’s a security issue, but Apple is working to find a way to allow developers to build applications for it. Jobs says he doesn’t want the iPhone to be “one of those phones that crashes a few times a day.” He adds: “We would like to solve this problem and if you could just be a little more patient with us, we’ll do it.”

Gizmodeでの要約では、今年中に公開するような話になっています。

We’ve got good ideas, and sometime later this year, we can open it up to third-party apps, and keep security.

これはQ&Aでの話だそうで、抜粋ムービーでは直接確認できないけど、これまで不可とされていたアプリ開発の道が開けるのは素晴らしい! なんてったってマルチ・タッチですから、複数のフェーダを同時操作するようなアプリとかもできるハズ。

iphone-max.jpg

個人的にはiPhoneをケータイだとは(iPodだとも)思ってないので、そーこなくっちゃ!と思います。伊達にADC会員になってるわけじゃないし。ただいま滞米中で、iPhone購入の算段を進めています(笑)。USでの発売日は6/29だそうです。皆さんも秘策を練っておいた方がいいですよ(っと煽ってみる)。

ちなみに、これでLemurあたりは売れなくなるかもね。サイズが違うとは言え、iPhoneを4台買ってもLemurより安くって、バッテリ駆動でワイヤレスなんだから。(こーゆー比較を思いつくのは、既に人道を外れている証拠ですね〜笑)

SensorWiki.org

ちょこちょこと質問を受けるのですが、こーゆーことがしたいんだけど、どのようなセンサーがありますか?とか、このセンサーを使いたいんだけど、A/Dコンバータはどれがいいですか?と言われても、私は専門家じゃないので、よく分かりません(笑)。

そこで、SensorWiki.orgという便利なサイトを紹介しておきます。全編英語ですが、なかなかの充実ぶりで、かなり参考になると思います。サイドバーのリンク集にも追加しておきました。

このサイトのSensorsセクションでは、加速度センサーや光センサーといったポピュラーなものから、脳波センサーなどの難易度の高いものまで30種類以上取り上げられています。回路付きの詳細に説明もあれば、概要説明だけ場合もありますが、市販品で手に入れられるセンサーは、だいたい網羅されているんじゃないでしょうか?

もうひとつの目玉はSensor interfacesセクションで、これまた20数種類のA/Dコンバータが網羅されています。各コンバータの価格、入出力数、分解能、接続方法などが一覧表になっているので、8ビット精度で64入力をOSC通信したいが、どれを使えば一番安く済むか、みたいな用途にも使えますね。

sensorwikiorg.jpg

惜しいのは、このサイトの対象はセンサー、つまり入力であって、LEDなどの表示系やモーターなどの駆動系といった出力についての情報がほとんどないことですね。どこかに、ActuatorWiki.orgみたいなのがないのかな?

Jitterオブジェクト開発講座(1) SDKのインストールとサンプルのビルド

UBオブジェクト開発講座に引き続き、今回からはJitterオブジェクトの開発方法を手っ取り早く見ていきます。もちろん、ユニバーサル・バイナリーとしての開発方法です。より詳しい説明はCycling ’74のWEBサイトの「Jitter SDKページ」にあります。このページからは、Jitter API ReferenceとJitter Programming Guideを参照することができ、SDKファイルをダウンロードすることができます。

さて、Jitterオブジェクト開発講座の第1回はSDK(ソフトウェア・デベロップメント・キット)のインストールとサンプルのビルドまで、です。以前のUBオブジェクト開発講座に近い形で書いてみますね。

Step 1: Xcodeをインストールする。

・Jitterブジェクトの開発には、Xcode 2.2以降とMac OS X 10.3.9以降が必要である。
(なぜかUBオブジェクト開発はXcode 2.2.1以降とMac OS X 10.4が必要となっている。いずれも最新のバージョンを用意した方が良いと思われる。)
・XcodeはMac OS XのインストールDVDに付属している他、最新版はApple社の開発者用サイトからダウンロードできる。

Step 2: SDKをコピーする

・ Cycling ’74社のWebサイトからJitter 1.6 Macintosh SDKをダウンロードする。
・Jitter1.6SDKディスクの内容をハードディスクの任意の場所にコピーする。例えば、Jitter SDKというフォルダを作り、Jitter1.6SDKディスクの内容をJitter SDKフォルダにコピーすると良い。

Step 3: フレームワークをコピーする

・Jitter1.6SDKフォルダのCopyContentsToLibraryFrameworksフォルダの中身をLibrary/Frameworks/フォルダにコピーする。
(Libraryフォルダは日本語環境では起動ディスクの「ライブラリ」フォルダのこと。)
(OpenGLを利用する場合は、OpenGL.frameworkが必要となるが、これはXcodeの一部として既にインストールされている。)

Step 4: サンプルをビルドする

・サンプルのプロジェクト・ファイルをダブル・クリックする。例えば、projectsフォルダにあるhelloフォルダのmax.jit.hello.xcodeprojファイルをダブル・クリックする。
・Xcodeが起動し、プロジェクト・ウィンドウが開く。
・Xcodeのプロジェクト・ウィンドウのビルド・アイコンをクリックして、プロジェクトをビルドする。
・ビルドが成功すれば、helloフォルダにbuildフォルダが作られるが、その中のDevelopmentフォルダにjit.hello.mxoというオブジェクトが作られる。ただし、これはエイリアスで、実際のファイルはJitter SDKフォルダと同じ階層に作られるsysbuildフォルダの中のDevelopment:Cycling ’74:jitter-externalsフォルダにある。
・何らかのエラーが発生する場合は、Jitter SDKの構成やフレームワークのコピーが間違っていることが考えられるので、再確認する。
・オブジェクト・ファイルが作成できれば、Maxを起動してオブジェクトの動作を確認する。sysbuildフォルダ下のjitter-externalsフォルダにjit.hello.help(あるいはjit.hello-test.patなど)といったテスト用のパッチ・ファイルを作ると良い。

Step 5: 自分のプロジェクを変換する

・サンプルのプロジェクトを複製し、それを元にユニバーサル・バイナリ化したい自分のプロジェクト、あるいは新しく制作するプロジェクトを作ると良い。詳しくは、Jitterオブジェクト開発講座(2)にて説明。

ところで、すでにMaxMSP UB SDKをインストールした人は、同じフォルダにJitter SDKもまとめたくなると思いますが、現状では別々のフォルダにしたほうが良いようです。例えば、max-includesフォルダの内容って微妙に違いますからね。

私はユーザ・フォルダ(akaフォルダ)にdevelopmentという開発関係のファイルを入れるフォルダを作り、その中にJitter SDKフォルダやMaxMSP UB SDKフォルダを入れています。以下の図のように、同じ階層にsysbuildフォルダが作られることになります。また、Jitter SDKフォルダ下に自分のプロジェクを入れるフォルダを作ると良いでしょう。私の場合はaka-jit-ub-projectsフォルダがそれです。

jitter-sdk_s.gif

UBオブジェクト開発講座(5) オブジェクトのデバッグ方法

第5回UBオブジェクト開発講座は、これがなくては話にならない!と言っても過言ではないオブジェクトのデバッグ方法についてです。実際のところ、誰でも誤りのないソースコードを書けるわけはないし、考えるだけで間違いを発見できるわけでもないですからね。そこで登場するのが、デバッガ。Xcodeのデバッガは優秀ですから、スイスイと作業が進みますよ。例によって、以下は「Debugging Your Object in Xcode」の抄訳というか、簡略&補足版です。

Step 1: プロジェクト・メニューの「アクティブなビルド構成を設定」から「Development」を選ぶ。

Step 2: プロジェクト・ウィンドウの「ビルド」ボタンをクリックして、ビルドを行う。プロジェクト・フォルダのbuildフォルダに作られるDevelopmentフォルダにオブジェクト・ファイルが生成される。

Step 3: デバッグを行うためのパッチ・ファイルをMaxMSPアプリケーションで作成する。パッチができれば、それをDevelopmentフォルダに保存して、MaxMSPアプリケーションを終了する。
補足:MaxMSPアプリケーションではコピー・プロテクションのためにデバッグできない。デバッグにはランタイム版であるMaxMSP Runtimeアプリケーションを用いる。

Step 4: Xocdeでプロジェクト・ファイルを開き、プロジェクト・メニューから「新規カスタム実行可能ファイル…」を選ぶ。

Step 5: アシスタンス・ウィンドウが現れるので、「実行可能ファイル名」の覧に「MaxMSP Runtime」と入力する(任意の名前で構わない)。

Step 6: 「実行可能ファイルのパス」の「選択…」ボタンをクリックし、ファイル選択ダイアログでMaxMSP Runtimeアプリケーションを選択する。

Step 7: 「プロジェクトに追加」のポップアップ・メニューに自分のプロジェクト(デバッグするプロジェクト)の名前が表示されていることを確認して、「完了」ボタンをクリックする。

Step 8: ソースコードにブレークポイントを設定する。ソースコードの左側に表示される行番号をクリックすれば、その行にブレークポイントが設定され、黒いマークが表示される。
補足:ブレークポイント・マークをドラッグして、任意の行にブレークポイントを移動することができる。黒いマークをクリックすると、灰色に代わり、ブレークポイントが無効になる。もう一度クリックすると黒色に変わり、ブレークポイントが有効になる。ブレークポイントを削除するには、マークを行番号のエリア外にドラッグして、マウスボタンを離せば良い。

Step 9: デバッグ・メニューから「デバッガ」を選び、デバッガ・ウィンドウを開く。

Step 10: デバッガ・ウィンドウの「デバッグ」ボタンをクリックする。デバッガが起動し、デバッガがMaxMSP Runtimeアプリケーションを自動的に起動する。

Step 11: MaxMSP Runtimeアプリケーションから、デバッグ用のパッチ・ファイルを開く。
補足:MaxMSP Runtimeアプリケーションのサーチ・パスにデバッグしたいオブジェクト・ファイルが存在しなければならない。先に述べたようにDevelopmentフォルダにオブジェクト・ファイルとデバッグ用のパッチ・ファイルを作成し、そのパッチ・ファイルを開けば良い。

Step 12: パッチ・ファイルが開き、ブレークポイントを設定した箇所までオブジェクトが実行されると、実行が一時停止される。デバッガ・ウィンドウが前面に現れ、ソースコードのブレークポイントが表示される。

Step 13: デバッグ作業が終われば、MaxMSP Runtimeアプリケーションを終了する。これでデバッガも自動的に終了する。
補足:クラッシュなどでMaxMSP Runtimeアプリケーションを終了できない場合は、デバッガ・ウィンドウの「終了」ボタンをクリックすれば、強制的にMaxMSP Runtimeアプリケーションを終了させ、デバッガを終了させることができる。

実際のデバッグ作業としては、デバッガ・ウィンドウで変数の値を確認したり、「ステップオーバー」などのボタンをクリックして、プログラムの実行を一行ずつ進めたりすることになります。このあたりは、一般的なデバッグ方法ですので、ここでは省略します。Xcode関係の適当なプログラミング入門書を参考にしてください。

なお、グローバル変数はデフォルトでは表示されませんが、変数欄の「Globals」をクリックすると、グローバル・ブラウザが開き、ライブラリのリストから自分のユーザ名を選ぶと、オブジェクトで使用しているグローバル変数が表示されます。このグローバル変数の表示にチェックを入れると、その変数が表示されます。

それから、デバッガってなんとなく怖いって人は、ソースコードにpost()文を入れまくるという古典的な方法もありますね。でも、そっちのほうが面倒に思えるくらい、Xcodeのデバッガはスマートですから、是非使ってみてください。