BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

#2 C4でつくるプロジェクトの構造とC4Timer

この記事は「一人アドベントカレンダー2013〜Lonely Advent Calender 2013〜」の2日目の記事です。

まず、C4とはなんぞという方はこちらの記事にて概要を説明しております。はじめてのC4!|BAD_ACCESS C4はとにかくシンプルです。まだまだ可能性を秘めているこのフレームワークで自分のイメージしているアプリをストレスなく作ることができるでしょう。

興味を持たれた方は、この記事などを参考にしてプロジェクトのテンプレートC4 Single View Applicationが選択できる状態まで進めてください。

 2013-11-20 1.07.44.png

C4のプロジェクトの構造

C4 Single View Applicationを選んでプロジェクトを新規作成すると、 自動的にC4WorkSpace.hC4WorkSpace.mが作成されています。

C4WorkSpace.hの中身を見ると、

#import "C4CanvasController.h"

@interface C4WorkSpace : C4CanvasController
@end

となっており、C4WorkSpace.hC4CanvasControllerを親クラスとするクラスあることがわかります。

では、C4CanvasController.hを見てみると、

@interface C4CanvasController : UIViewController 
<AVAudioSessionDelegate, C4Gesture, C4Notification, C4MethodDelay,  C4AddSubview> 
{

}

このようになっており、いくつかのプロトコルが採用されていることがわかります。

またインスタンスメソッドとして、

-(void)setup;

が定義されています。setupについては以下のように説明されています。

/** The setup method for the canvas.

This method is called at the end of the application's launch cycle.

You should code everything you want your application to do, prior to loading, in this method. */

このメソッドでは、アプリケーションがロードする前に何をしたいのか、すべてを書く必要があります。ということですので、さっそくこのsetupメソッドから書いていきます。

どこから手をつけたらいいのか

では実際にsetupメソッドでは何をするべきなのでしょうか。新規作成したばかりのC4WorkSpaceに色々と書き加えていきましょう。

とはいえ、まず最初は公式の例をうまく取り入れるための方法から。 examples|C4からC4Timerstart & stopの例を開いてみてください。

examples

C4Timer Start & Stopのsetup

ではサンプルのStart & Stopの中身をみていきます。 このVimeoのデモ動画を見て、どれぐらいのコードを書くことになるかを想像できるでしょうか。

Starting and Stopping a C4Timer from [C4] on Vimeo.

まずアニメーションになっているのでNSTimerを使うことにはなりそうです。単位時間ごとに円のスケールを変化させて、それより前にWindow上に、円を書いておかなければならないですね。

しかし、実際に必要なコードはC4WorkSpace.mに書かれたこれだけです。

C4TimerはたしかにNSTimerのラップクラスです。しかしながら、このStart & Stopの例に示すようにNSTimerよりも非常にシンプルに扱うことができます。

メディアやアニメーションを扱う上で、C4Timerにはかなりお世話になる可能性が高いです。ということで1回目はC4自体とC4Timerがいかにシンプルであるかを説明しました。

Start & Stopだけでなく、C4Timerでできることは他のexampleとドキュメントを見るだけですぐイメージできるでしょう(それぐらいシンプルです)

次回は、C4プロジェクトの中に音楽を取り込んで色々遊んでみようと思います!