Retinaに映える!美麗なiPhone/iPadアプリが作れるopenFrameworksとはRetinaに映える! iOS美麗アプリ制作入門(1)(2/3 ページ)

» 2012年03月29日 00時00分 公開
[蜜葉優@IT]

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アプリのプロジェクトを作成します。

Master-Detail Applicationプロジェクトを選択 Master-Detail Applicationプロジェクトを選択

 プロジェクトが作成できたら以下のような画面になります。

Xcodeで作成したiOSアプリプロジェクト Xcodeで作成したiOSアプリプロジェクト

 ここまでできれば、もう実行できます。左上の[Run]ボタンを押してiPhone Simulatorが起動すれば成功です。

Master-Detail Applicationプロジェクトを起動したiPhone Simulator Master-Detail Applicationプロジェクトを起動した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のフォルダ構造 oF for iOSのフォルダ構造

oF for iOSプロジェクトの起動

 開発環境が整ったら、サンプルプロジェクトを開いてみましょう。Xcodeで「apps/iPhoneExamples/emptyExample」にある「emptyExample.xcodeproj」を開きます。

oF for iOSの「emptyExample」プロジェクト oF for iOSの「emptyExample」プロジェクト

 実行してみると、iPhone Simulatorが起動し、openFrameworksのスプラッシュスクリーンが表示されます。

oF for iOSアプリのスプラッシュスクリーン oF for iOSアプリのスプラッシュスクリーン

 灰色の画面が表示されれば、開発環境が整った証です。

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);
testApp.h

 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
アプリ内の挙動 アプリ内の挙動

 testApp.mmに記述されているようにopenFrameworksの基本的な構造は、「setup()」「update()」「draw()」という3つの関数から成り立ちます。

 setup()では、変数などの初期化を行います。update()では、計算処理を行い、変数に格納された値を書き換えます。最後のdraw()で描画処理を行います。

 openFrameworksでは、アプリ実行時に1度だけsetup()が実行され、その後、update()…… draw()…… update()…… draw()…… というようにループされます。


 これは、ゲームやインタラクティブなアプリによく用いられている構造で、一般に「ゲームループ」と呼ばれています。

 次ページでは、いよいよコーディングを行い、アプリを動かしてみます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。