ロクナナワークショップ NEWS & REPORT

レポート「FlashユーザーのためのiPhoneアプリ開発入門」

この記事を読むのに必要な時間:およそ 4 分

AS3erのためのiPhoneアプリ開発

2人目の登壇者は,深津氏と共にTiltShift Generatorの開発を手がけ,iPhoneのtwitterクライアント NatsuLion for iPhoneを開発したことで有名な森琢磨氏だ。フリーランスのプログラマとして活躍中で,iPhoneアプリを開発・コンサルティング・企画と,iPhoneアプリ100%な生活を送っているそうだ。

森琢磨氏

森琢磨氏

AS3ユーザーのためのObjective-C入門

森氏には,iPhone開発の要となる言語,Objective-Cについてお話を伺った。なじみ深いActionScript 3.0のコードとの比較をした入門講座である。

構文

ActionScript 3.0に比べて,Objective-Cのメソッド呼び出しは非常にユニークだ。.(ドット)と()(パーレン)を使わず,[](ブラケット)を使って呼び出す。氏は,⁠ブラケットがすごく多くて例1)⁠見た目が気持ち悪いと思った。でも,慣れるしかない」と語る。

実際のコードをAS3と比較

実際のコードをAS3と比較

メソッドの引数に関しては,⁠引数がある場合は,コロンでつなげてあげるのがポイント。2つ以上ある場合は,withArg2といった形式で繋げていく例2)⁠とした。

例1

[[[AClass alloc] init] autorelease]

例2

ActionScript 3.0: AClass.methodC(arg1, arg2);
Objective-C:[AClass methodC:arg1 withArg2:arg2];

Objective -Cでは,⁠変数⁠と⁠ポインタ⁠が特徴的だという。クラスとプリミティブ型が区別されるのがポイントで,intやfloatといったプリミティブ型は,特に問題ないが,オブジェクトの場合は*(アスタリスク)を変数につけ,ポインタとして宣言する必要がある。

例3

ActionScript 3.0 : var instance:AClass;
Objective-C : AClass *instance;
ActionScript 3.0 : var num:int;
Objective-C : int num;

その他には,thisはselfに置き換わること,そして,制御構文(if, switch, while, for等)は同じであること,ルートクラスはNSObjectであることが解説された。

クラス定義に関しては,少々複雑だ。例4のような場合,Objective-Cでは2つのファイル,.hと.mに分けて記述する。これらはインターフェースと実体をそれぞれ定義するものだが,深津氏の捕捉によれば,⁠ActionScript 3.0のインターフェースでは,複数のクラスの通信マナーを統一する使い方が主だったが,それとは別物と考えた方がよく,Objective-Cでは,ひとつのクラスに対して必ず無ければならない」と解説した。

例4

ActionScript 3.0
public class Calc {
    public function add(a:int, b:int):int {
        return a + b;
    }
}

Objective-C
.h
@interface Calc : NSObject
- (int)add:(int)a plus:(int)b;
@end

.m
@implementation Calc
- (int)add:(int)a plus:(int)b {
return a + b;
}
@end

そして重要な概念のひとつとして,イニシャライザとデストラクタについての解説。クラスの初期化時に,イニシャライザとして,initメソッドを呼び出すのが普通であるが,init自体に引数をつけたい場合は,initWithHogeFugaのようなメソッド名になるという。

逆に,クラスの破棄時に呼び出されるデストラクタでは,deallocが実行される。氏によれば,Objective-Cでは,この中で,クラス変数などで保持していたメモリを解放する処理を明示的に書く必要があり,それがActionScript 3.0では自動的に行われているため馴染みがなく,ひとつの大きなハードルになるとし,この⁠オブジェクトの寿命管理⁠の仕組みをしっかり理解して使わなければならないと述べ,重要性を説いた。

著者プロフィール

ロクナナワークショップ(ロクナナワークショップ)

アドビ認定トレーニングセンター ロクナナワークショップでは,Web業界の第一線で活躍中の講師陣による,実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する,PCを操作しながらの集中トレーニングです。

また,各方面で活躍中のクリエイターをお迎えし,最新技術やアイデアをご紹介いただくイベントも開催しています。学生割引もありますので,是非一度参加してみてください。

URL:https://67.org/ws/