引き続きCTMのお話っす。
 どうせCTMをいろいろ試すなら、専用の単純なアプリ用意しようってことで

 helloCTM

 作ってみます。
 でもって、せっかくなんで、作る過程をもう一度おさらい。

STEP1:iPhone SDKを手に入れる。
 まずは以下のブログを参考にSDKをダウンロードしてインストール。Xcode自体はMac買うとDVDで付いてくるんだけど、iPhone SDKは入ってないはず(最近のMac買ってないから不明なのよ)なので、2Gのインストーラをがんばってダウンロードするよ~に。

iPhone買ったMacユーザーなら
iPhoneアプリ開発、その(10) iPhone DevCenter

STEP2:Xcodeの起動。
 インストーラで特にインストール先を変更しない限りは以下の場所にXcodeは入るので、こいつをダブルクリックで起動。
テン・シー・シー-fig.1

STEP3:プロジェクト作成。
 初めてXcode起動すると以下のようなウィンドウ出るけど、さくっとクローズでOK。起動すると毎回表示されます。鬱陶しいなら「起動時に表示」チェックボックスを外す。必要になったら、いつでもメニューから呼び出せます。
テン・シー・シー-fig.2

 次に、「ファイル>新規プロジェクト」メニューを選んで出てきた以下のダイアログでiPhone OSのView_based Applicationを選択。
テン・シー・シー-fig.3
 出てきたダイアログでプロジェクト名と保存先を指定。今回はhelloCTMという名前でディスクトップに作成。ここは好きな名前、好きな場所で全然OK。
テン・シー・シー-fig.4
 で、こんな感じのプロジェクトウィンドウが開く。
テン・シー・シー-fig.5

STEP4:カスタムビューソースを用意。
 上の状態だとカスタムビューは存在しない。今回のCTMの実験にはカスタムビューが必要なので「ファイル>新規ファイル」メニューを選んでカスタムビューソースを作成する。まずは以下のダイアログでUIView subclassを指定して「次へ」ボタンクリック。
テン・シー・シー-fig.6
 次に出てくるダイアログではファイル名を「helloCTMView.m」にして完了ボタンクリック。他の部分は特に触る必要なし(当然だけど、以前からXcode使って設定変えてる人は、適当に調整)。
テン・シー・シー-fig.7
 で、今回はこのdrawRectの中身をいじることになります。
テン・シー・シー-fig.9

STEP4:カスタムビューを利用するよう設定。
 ただし、ソースはできても、そのままだと利用してくれないので、これを利用するように指示します。まずは以下のhelloCTMViewController.xibをダブルクリックしてInterface Builderを起動。
テン・シー・シー-fig.8

 「Tools>Inspector」メニューでInspectorウィンドウを出しておいて以下の順にクリックしてクラスをhelloCTMViewに変更する。
テン・シー・シー-fig.10

 ちゃんとメニューにhelloCTMViewが表示されるはず。
テン・シー・シー-fig.11
 これでInterface Builderは終了。保存するか聞いてくるので、もちろん保存。

STEP5:描画。
 あとはhelloCTMView.mのdrawRectに以下のコード

/* "Hello, World!" と描画する */
NSString *hello = @"Hello, CTM World!";
CGPoint location = CGPointMake(0, 0);
UIFont *font = [UIFont systemFontOfSize:24];
[hello drawAtPoint:location withFont:font];

を書き込んで実行

テン・シー・シー-fig.13

させると、こんな感じ。

テン・シー・シー-fig.12

で、これで実験の準備できたので、とりあえず、以下のようなコードを書き込んでみて、今日はおしまい。

/* "Hello, World!" と描画する */
NSString *hello = @"Hello, CTM World!";
CGPoint location = CGPointMake(0, 0);
UIFont *font = [UIFont systemFontOfSize:24];
CGContextRef context = UIGraphicsGetCurrentContext() ;
double angle = 0.0;
for (int i = 0; i < 7; i++) {
[[UIColor colorWithHue:0.2 saturation:1.0 brightness:0.8 alpha:(7.0 - (double)i) / 7.0] set];
CGContextRotateCTM(context, angle / 360.0 * (M_PI * 2.0));
[hello drawAtPoint:location withFont:font];
angle += 5.0;
}

サンプルソース使って、CTMいろいろ試してくれい。
------------
サンプルプロジェクト:helloCTM.zip