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.









