小嶋秀樹 | 研究室
日本語 | English
iPhone アプリ開発道場(Windows/Mac 編)

openFrameworks を利用して,Windows/Mac のデスクトップ上で動作するアプリを開発します.ここでは,Windows 上での開発環境(Visual C++ 2010 あるいは Code::Blocks と openFrameworks)の導入方法,および Mac 上での開発環境(Xcode と openFrameworks)の導入方法について説明します.

自分の環境(使用機材)に合った開発環境が準備できたら,「iPhone 道場(入門編)/ 簡単なアプリを作ってみる」から道場に入門してください.iPhone の小さなウィンドウ(320×480 ドット)に合わせたアプリ開発を実習していきますが,任意の大きさのウィンドウをターゲットとしたアプリ開発にもそのまま応用できます.ただし,加速度センサ・マルチタッチなど,iPhone 特有の機能は利用できません.

Windows で開発環境を準備する(Visual C++ 編)

Windows 上で openFrameworks を利用する方法について説明します.Windows のデスクトップ上で動作するアプリケーションが対象となります.ここでは Visual C++ を利用した開発環境を構築します.

【Visual C++ のインストール】

Visual Studio 2010 Express(無料評価版)の Visual C++ をインストールします.Microsoft Visual Studio Express のウェブページから,Visual C++ 2010 Express をダウンロード+インストールしてください.すべてデフォルトの設定でインストールすればよいでしょう.

【openFrameworks のインストール】

openFrameworks の公式ダウンロードページから openFrameworks v0.07 の "windows: visual studio 2010" 版をダウンロードし,適当な場所に展開してください.以下では,展開したフォルダの名前を of_preRelease_v007_vs2010 と仮定します.

【openFrameworksLib のコンパイル】

つぎに openFrameworksLib を VC++ でコンパイルします.まず,VC++ を起動し,「プロジェクトを開く」あるいは「ファイル > 開く > プロジェクト/ソリューション」を選び,of_preRelease_v007_vs2010 > libs > openFrameworksCompiled > project > vs2010 > openFrameworksLib(.vcxproj) を開き,Debug と Release の両構成でビルドします.下図を参考に操作してください.(緑矢印のボタンをクリックしてビルドした場合,最後に「...開始できません」とメッセージが出ますが,これは無視してください.)

【examples のビルドと実行】

上記の準備ができたら,一度 VC++ を終了してから再び起動し,こんどは of_preRelease_v007_vs2010 > apps > examples > graphicExample > graphicExample(.vcxproj) を開き,緑矢印のボタンをクリックしてビルド+実行してみてください.Debug 構成でビルドするとよいでしょう.下図のようなウィンドウが表示されれば成功です.ほかの examples もビルド+実行してみてください.

【iPhone アプリ道場を参考にする場合の注意事項】

開発環境の準備ができたら,「iPhone 道場(入門編)/ 簡単なアプリを作ってみる」に進んでいただきます.このとき,以下の点にご注意ください.

ルートフォルダの名前: openFrameworks のルートフォルダは,任意の場所に置いて構いませんし,任意の名前に変更しても構いません.ルートフォルダの名前は,iPhone 道場では ofiOS を想定してます.一方,ここで紹介した Windows VC++ 版では of_preRelease_v007_vs2010 を想定しています.適宜,読み替えてください.

testApp.h の内容: testApp.h の内部でインクルードされるヘッダファイルが,iPhone アプリ開発と Windows アプリ開発で異なります.適宜,不要な行("iphone" が含まれる行)を無視してください.また,testApp クラスが ofxiPhoneApp クラスのサブクラスになるのか,あるいは ofBaseApp のサブクラスになるのかという違いもあります.こちらも適宜,読み替えてください.

(iPhone アプリ用 testApp.h の冒頭部)
#pragma once
#include "ofMain.h"
#include "ofxiPhone.h"
#include "ofxiPhoneExtras.h"

class testApp : public ofxiPhoneApp {
...
(Windows アプリ用 testApp.h の冒頭部)
#pragma once
#include "ofMain.h"

class testApp : public ofBaseApp {
...

testApp.cpp のファイル名: iPhone アプリ開発では testApp.mm という名前のファイルが,Windows アプリ開発では testApp.cpp という名前のファイルに対応します.適宜,".mm" を ".cpp" に読み替えてください.

testApp::setup() の内容: testApp::setup() は,アプリケーションの起動時に一度だけ呼び出されるメソッドです.この中で,ウィンドウの大きさや背景色の設定など,アプリケーションの初期化を行ないます.iPhone アプリ開発の場合,testApp::setup() は以下のようになっています.

void testApp::setup() {
    ofRegisterTouchEvents(this);
    ofxAccelerometer.setup();
    ofxiPhoneAlerts.addListener(this);
    ofBackground(127,127,127);
}

これを Windows アプリ開発の場合は,つぎのように書き換えてください.

void testApp::setup() {
    ofSetWindowShape(320, 480);
    ofBackground(127,127,127);
}

ここでは,iPhone アプリ開発との整合性をとるため,iPhone の画面サイズ(横 320,縦 480)に合わせていますが,任意の大きさに変更しても構いません.また,背景色を明度 50% のグレーに設定していますが,これも目的に応じて変更してください.

イベント対応メソッドの名前: iPhone アプリ開発では,画面タッチなどのイベントが発生したときに呼び出されるメソッドがいくつか用意されています.Windows アプリ開発でも,よく似た役割をもつメソッドが用意されています.これらメソッド間の対応関係を以下にまとめておきますので,適宜,読み替え・書き換えてください.

iPhone Windows
touchDown(&touch) mousePressed(x, y, button)
touchMoved(&touch) mouseDragged(x, y, button)
touchUp(&touch) mouseReleased(x, y, button)
なし mouseMoved(x, y)
touchDoubleTap(&touch) なし
touchCancelled(&touch) なし
なし keyPressed(key)
なし keyReleased(key)

iPhone アプリ開発における touch イベントに対応するメソッドでは,touch というリファレンスを引数として受け取り,タッチされた X 座標は touch.x として,Y 座標は touch.y として読み出すことができます.これら座標値は,Windows アプリ開発におけるマウスイベントに対応するメソッドでは,そのまま引数 x, y によって与えられます.したがって,それぞれ対応するメソッドの中では,touch.x を x に,touch.y を y に読み替えてください.(注:touchMoved は画面をタッチしている指が動いたときに随時呼び出されるメソッドで,mouseMoved はマウスポインタが(マウスボタンを押さない状態で)動いた場合に呼び出されるメソッドです.)

リソースの置き場所: 音データや画像データといったリソースの置き場所は,たとえば emptyExample であれば,of_preRelease_v007_vs2010 > apps > examples > emptyExample > bin > data フォルダの中となります.音ファイル ding.wav を利用するのであれば,この data フォルダに ding.wav コピーあるいは移動します.プログラムからは,たとえば ofSoundPlayer クラスのインスタンスを snd1 とするとき,snd1.load("ding.wav") とすれば音データを読み込むことができます.

Windows で開発環境を準備する(Code::Blocks 編)

Windows 上で openFrameworks を利用する方法について説明します.Windows のデスクトップ上で動作するアプリケーションが対象となります.ここでは Code::Blocks を利用した開発環境を構築します.

【Code::Blocks のインストール】

Code::Blocks の公式ダウンロードページから,codeblocks-10.05mingw-setup.exe をダウンロードし+インストールしてください.すべてデフォルトの設定でインストールすればよいでしょう.

【openFrameworks のインストール】

openFrameworks の公式ダウンロードページから openFrameworks v0.07 の "windows: code blocks" 版をダウンロードし,適当な場所に展開してください.以下では,展開したフォルダの名前を of_preRelease_v007_win_cb と仮定します.

【追加ライブラリのインストール】

つづいて,openFrameworks によるアプリ開発に必要となる追加ライブラリをインストールします.公式ウェブページから codeblocks_additions.zip をダウンロードして展開してください.

展開したフォルダの中に,add_to_codeblocks_mingw_include というサブフォルダがあります.その中に入り,すべてのファイルを C:\Program Files\CodeBlocks\MinGW\include の中に移動します.また,add_to_codeblocks_mingw_lib というサブフォルタの中にあるすべてのファイルを C:\Program Files\CodeBlocks\MinGW\lib の中に移動します.

【openFrameworksLib のコンパイル】

つぎに openFrameworksLib を Code::Blocks でコンパイルします.まず,Code::Blocks を起動し,File > Open... を選び,of_preRelease_v007_win_cb > libs > openFrameworksCompiled > project > win_cb > openFrameworksLib(.cbp) を開き,debug と release の両ターゲットをビルドします.下図を参考に操作してください.

【example のビルドと実行】

上記の準備ができたら,一度 Code::Blocks を終了してから再び起動し,こんどは of_preRelease_v007_win_cb > apps > examples > polygonExample > polygonExample(.cbp) を開き,"Build and run" してみてください.ターゲットは debug とするとよいでしょう.下図のようなウィンドウが表示されれば成功です.ほかの examples も "Build and run" してみてください.

【iPhone アプリ道場を参考にする場合の注意事項】

上述した VC++ の場合と同じです.上述部分を参照してください.適宜,「VC++」を「Code::Blocks」に,「vs2010」を「win_cb」に等々,読み替えてください.

Mac で開発環境を準備する

Mac 上で openFrameworks を利用する方法について説明します.Mac のデスクトップ上で動作するアプリケーションが対象となります.

【Xcode のインストール】

最新版の Xcode(無料版)をインストールします.そのためには,Apple Developer として登録(無料)する必要があります.iOS の Developer として登録してある人は,新たに Mac OS X の Develper としての登録は不要です.

Developer 登録するには,まず,http:://developer.apple.com にアクセスし,Mac Dev Center に入ってください.Mac Dev Center ページの Log in ボタン付近に,"register" というリンクがあります.そこから Register ページに入り,名前やメールアドレスなど必要事項を入力して Developer 登録してください.すべて英字で入力することをおすすめします.

登録が終了したら,改めて http:://developer.apple.com にアクセスし,Mac Dev Center にログインしてください.こじ研の Mac の多くは,Mac OS X Snow Leopard (10.6) を利用していますので,それに対応した Xcode をダウンロード+インストールします.iOS と SDK と一緒になったパッケージを選択すればよいでしょう.このページの執筆時点では,"Xcode 3.2.6 and iOS SDK 4.3" が最新版のようです.

【openFrameworks のインストール】

openFrameworks の公式ダウンロードページから openFrameworks v0.07 の "mac: x-code" 版をダウンロードし,適当な場所に展開してください.以下では,展開したフォルダの名前を of_preRelease_v007_osx と仮定します.

【openFrameworksLib のコンパイル】

つぎに openFrameworksLib を Xcode でコンパイルします.まず,Xcode を起動し,"Open Other..." あるいは File > Open を選び,of_preRelease_v007_osx > libs > openFrameworksCompiled > project > osx > openFrameworksLib(.xcodeproj) を開き,Debug と Release の両ターゲットを(メニューバーから)Build > Build します.下図を参考に操作してください.

【example のビルドと実行】

上記の準備ができたら,一度 Xcode を終了してから再び起動し,こんどは of_preRelease_v007_osx > apps > examples > geometryShaderExample > geometryShaderExample(.xcodeproj) を開き,"Build and Run" してみてください.下図のようなウィンドウが表示されれば成功です.ほかの examples も "Build and Run" してみてください.

【iPhone アプリ道場を参考にする場合の注意事項】

上述した VC++ の場合と同じです.上述部分を参照してください.適宜,「Windows」を「Mac OS」に,「VC++」を「Xcode」に,「vs2010」を「osx」に等々,読み替えてください.