oF for iOSアプリの開発環境を整える
iOSアプリの開発にはMac OS Xを使います。例として筆者の開発端末のスペックを挙げておきます。
- 端末機種:Mac Book Pro 15 inch
- OS:Mac OS X 10.7 Lion
- プロセッサ:Intel core i7 2.2GHz
- メモリ:16Gbytes
iOSアプリの開発環境を整える
openFrameworksでの開発の前に、iOSアプリの開発環境を整えましょう。iOSアプリを開発するには「iOS Developer Library」をインストールする必要があります。iOS Developer Libraryは「iOS Dev Center」からダウンロードできます。
初めに、iOS Dev Centerにログインします。アカウントがなければアカウントを作成しましょう。アカウントを作成し、iOS Developer Libraryをダウンロードすることは無償で可能です。また、有償の開発者登録を行えば開発したアプリを実機で動作させたり、iTunes App Storeにアプリを申請できます。
iOS Developer Libraryをダウンロードしたら、インストーラを立ち上げて、インストールしましょう。
インストールできたらXcodeを立ち上げ、iOSアプリのプロジェクトを作成します。
プロジェクトが作成できたら以下のような画面になります。
ここまでできれば、もう実行できます。左上の[Run]ボタンを押してiPhone Simulatorが起動すれば成功です。
これで、iOSアプリを開発する環境の出来上りです。
oF for iOSをインストール
続いて、iOSで利用できるopenFrameworksを入手しましょう。このopenFrameworksを仮に「oF for iOS」と名付けます。oF for iOSは「download」ページからダウンロードできます。ちなみに、Android用やWindows、Mac OS X、Linux用もあります。
oF for iOSをダウンロードしたら解凍しましょう。フォルダ構造は以下のようになっています。デスクトップ用のopenFrameworksと似ているところが多いですね。
oF for iOSプロジェクトの起動
開発環境が整ったら、サンプルプロジェクトを開いてみましょう。Xcodeで「apps/iPhoneExamples/emptyExample」にある「emptyExample.xcodeproj」を開きます。
実行してみると、iPhone Simulatorが起動し、openFrameworksのスプラッシュスクリーンが表示されます。
灰色の画面が表示されれば、開発環境が整った証です。
emptyExampleのソースコードを見てみよう
emptyExampleの名前の通り、このプロジェクトがopenFrameworksの一番ベーシックなプロジェクトです。早速、このソースコードを確認しましょう。実際に編集するファイルは「src」フォルダの中にある、「testApp.h,」「testApp.mm」の2つです。
#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);
oF for iOSで利用できるタッチ操作に関する関数が定義されています。また、oF for iOSのためのヘッダファイルがいくつかincludeされています。
次に「testApp.mm」を見てみましょう。デフォルトの状態では、以下のようになっています。
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
// register touch events
ofRegisterTouchEvents(this);
// initialize the accelerometer
ofxAccelerometer.setup();
//iPhoneAlerts will be sent to this.
ofxiPhoneAlerts.addListener(this);
//If you want a landscape oreintation
//iPhoneSetOrientation(OFXIPHONE_ORIENTATION_LANDSCAPE_RIGHT);
ofBackground(127,127,127);
}
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
}
//--------------------------------------------------------------
void testApp::exit(){
}
//--------------------------------------------------------------
void testApp::touchDown(ofTouchEventArgs &touch){
}
//--------------------------------------------------------------
void testApp::touchMoved(ofTouchEventArgs &touch){
}
//--------------------------------------------------------------
void testApp::touchUp(ofTouchEventArgs &touch){
}
//--------------------------------------------------------------
void testApp::touchDoubleTap(ofTouchEventArgs &touch){
}
//--------------------------------------------------------------
void testApp::lostFocus(){
}
//--------------------------------------------------------------
void testApp::gotFocus(){
}
//--------------------------------------------------------------
void testApp::gotMemoryWarning(){
}
//--------------------------------------------------------------
void testApp::deviceOrientationChanged(int newOrientation){
}
//--------------------------------------------------------------
void testApp::touchCancelled(ofTouchEventArgs& args){
}
testApp.mmに記述されているようにopenFrameworksの基本的な構造は、「setup()」「update()」「draw()」という3つの関数から成り立ちます。
setup()では、変数などの初期化を行います。update()では、計算処理を行い、変数に格納された値を書き換えます。最後のdraw()で描画処理を行います。
openFrameworksでは、アプリ実行時に1度だけsetup()が実行され、その後、update()…… draw()…… update()…… draw()…… というようにループされます。
これは、ゲームやインタラクティブなアプリによく用いられている構造で、一般に「ゲームループ」と呼ばれています。
次ページでは、いよいよコーディングを行い、アプリを動かしてみます。
Copyright © ITmedia, Inc. All Rights Reserved.








