openframeworksを使ったiPhoneアプリケーション〜自作アプリケーション〜

2010年04月12日 渡部隼人
 
 

以前紹介した、openframeworksの自作アプリケーション作成について簡単に紹介したいと思います。

前回の記事はこちら
前回の記事に書き忘れていたのですが、openframeworksをiPhone向けに移植した方のHPはこちらです。

プロジェクトの作成

まずはディレクトリの作成から。 「apps」ディレクトリ内に自作アプリケーション用の空ディレクトリ(以降myAprとします)を作成します。


「apps/iPhoneExample/emptyExample」をコピーして「myApr」ディレクトリ内にコピーします。 emptyExampleでは寂しいので、このディレクトリも適当な名前(以降testAprとします)に変えておくと良いでしょう。


ひとまずこの段階でプロジェクトファイル(iPhoneEmptyExample.xcodeproj)を開いて、「ビルドと実行」をしてみます。 openframeworksのロゴが表示された後に、グレーの画面がiPhoneシミュレータに表示されるはずです。



基本的な構成

ここでソースコードをのぞいてみます。 「testApp.mm」「testApp.h」がプログラムの中心となるファイルです。 既にいくつかの関数が定義されており、基本的にはこの関数内に処理を組み込んで行くことになります。


testApp.h
#pragma once

#include "ofMain.h"
#include "ofxiPhone.h"
#include "ofxiPhoneExtras.h"

class testApp : public ofxiPhoneApp {
	
public:
	void setup();
	void update();
	void draw();
	void exit();
	
	void touchDown(ofTouchEventArgs &touch);
	void touchMoved(ofTouchEventArgs &touch);
	void touchUp(ofTouchEventArgs &touch);
	void touchDoubleTap(ofTouchEventArgs &touch);

	void lostFocus();
	void gotFocus();
	void gotMemoryWarning();
	void deviceOrientationChanged(int newOrientation);

};
関数名から見当はつきますが、各関数がイベントハンドラになっています。 (この辺の関数名はopenframeworksがProcessingの影響をうけていることに起因するようです)

各関数について簡単に説明します。
  • setup()
  • アプリケーション起動時に一度だけコールされます。初期処理等はここに記述します。

  • update()
  • アプリケーション起動中、定期的にコールされます。後述のdrawの前にコールされ、変数の更新等はここで行います。

  • draw()
  • アプリケーション起動中、定期的にコールされます。前述のupdateの後にコールされ、描画等はここで行います。 アプリケーション起動中は「update」→「draw」→「update」→「draw」→と延々とコールされることになります。

  • exit()
  • アプリケーション終了前に一度だけコールされます。終了処理はここで行います。

  • touchDown() touchMoved() touchUp() touchDoubleTap()
  • 名前の通り、タッチ時 ドラッグ時 タッチアップ時 ダブルタッチ時にコールされます。 引数のofTouchEventArgs &touchにはタッチの座標位置等が格納されます。

  • lostFocus() gotFocus()
  • フォーカスを得た時、失った時に呼ばれる・・・と思うのですが、起動時に一度gotFocus()がコールされたことを確認出来ただけでlostFocus()がコールされることは確認できませんでした。
    iPhoneアプリケーションの場合、フォーカスを失う=アプリケーション終了の様な気もするのですが・・・ペンディングとさせて下さい。

  • gotMemoryWarning()
  • メモリ警告を検知した時にコールされます。

  • deviceOrientationChanged()
  • デバイスの向きが変わった時にコールされます。
    縦+正面:1 縦+逆さ:2 縦+左90°:3 縦+右90°:4 上向き:5 下向き:6


プロジェクト名を変更する

若干話が前後しますが、プロジェクト名を自作アプリケーション用に変更します。 開いているプロジェクトを一回閉じて、ファイルをリネームします。 「iPhoneEmptyExample.xcodeproj」→「testApr.xcodeproj」、「ofxiphone-Info.plist」→「testApr-info.plist」


リネームした「testApr.xcodeproj」を開くと「ofxiphone-Info.plist」が赤色のまま残っていると思いますので、プロジェクトから削除後「testApr-info.plist」を改めて追加します。


続いてターゲットを「emptyExample」→「testApr」に変更し、「情報を見る」で「Packaging」ー「info.plistファイル」を「testApr-info.plist」に変更すれば完了です。 (念のため、再度「ビルドと実行」が正常に行われることを確認して下さい。)


実際に作成したアプリケーションのサンプルはこちらで紹介しています。

渡部隼人渡部隼人 - システムコンサルタント
「おもしろきこともなき世をおもしろく」いわゆるIT業界はそういうものだと思っています。こんなことが出来たらいいな!という仮想が、現実にリンクする面白い業界です。紆余曲折を経てそんな業界でお世話になっているアフタヌーンエンジニアのブログです。