Fusic 河野です。
GW 始まりましたね。みなさん、楽しんでますか?
来る5月19日(土)に Future Sync vol.2 というイベントをします。
これは、プログラマー・デザイナー・クリエイター・企画・マーケティング・学生など、
様々な人たちが IT の未来を同期するために開催される、トークイベントです。
詳細は、ココとかココにも書いてますので、ご興味を持たれた方が居られましたら
ぜひご参加をお願い致します!
(学生さんのみなさん、無料ですよ~)
さて、本題。
今回は iphone での framework の作り方についてです。
iphone アプリをいくつか作成していると色々と独自のライブラリなどが
溜まってくるかと思います。
それらのオレオレライブラリを framework としてまとめ、今後の開発にも
直ぐに活用できるようにしておけば、きっと楽になるのではないでしょうか。
それでは早速いきましょー!!
(今回は実際のコードではなく、画像が多いです。ご容赦を!)
準備
今回は kstenerud さんの iOS-Universal-Framework というツールを使用します。
便利です。オススメです!
リンク先の README を見てたら大体の事は分かると思います。
git clone で落としてきてインストールの作業を行います。
$ git clone git://github.com/kstenerud/iOS-Universal-Framework.git $ cd iOS-Universal-Framework/Real Framework $ ./install.sh |
因みにアンインストールする場合には、同ディレクトリにある uninstall.sh を叩きます。
フレームワーク側の作成
”準備”を行った後、xcode を開くと新しく “Static iOS Framework”という
テンプレートが追加されてますので、それを選んで新規にプロジェクトを作成します。
今回は “HelloWorldFramework” という名前で作成しました。
ARC などのオプションはお好みで設定してください。
(サンプルでは ARC をオンにしてます)
プロジェクト内に “HelloWorld” というクラスを作成します。
それぞれのファイルには以下のコードを書いておきます。
UIAlertView で “hello, world!” と表示する簡単なものです。
HelloWorld.h
#import <Foundation/Foundation.h> @interface HelloWorld : NSObject - (void)sayHelloWorld; @end |
HelloWorld.m
#import "HelloWorld.h" #import <UIKit/UIKit.h> @implementation HelloWorld - (void)sayHelloWorld { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"alert!" message:@"hello, world!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } @end |
ビルドが成功すると “Product” のところに “HelloWorldFramework.framework” が
作成されてます。
そして、その “HelloWorldFramework.framework” を選択し、右クリックして、
Finder で表示します。
Finder で表示したところです。
ここにある “HelloWorldFramework.framework” というディレクトリが
今回使うフレームワークです。
これをどこかわかりディレクトリにコピーしておきます。
お疲れ様でした!
これで、一旦はオレオレフレームワークの作成が終わりました。
ツールのおかげでほんとに楽ですよね!!
アプリケーション側での利用
アプリにて、先程の “HelloWorldFramework.framework” を
組み込んでいきます。
適当に新規プロジェクトでアプリを作成します。
”UseFramework” としています。
新規作成したアプリに作成したフレームワークを追加します。
解りやすいところにコピーした “HelloWorldFramework.framework” を
選択して追加します。
アプリにボタンを追加して、関数を追加してボタンが押下されると
関数が呼ばれるようにします。
今回、say というメソッドを作成し呼び出すようにしました。
#import "HelloWorldFramework/HelloWorld.h" ...(中略) - (IBAction)say:(id)sender { HelloWorld *hello = [[HelloWorld alloc] init]; [hello sayHelloWorld]; } |
注意点として、フレームワーク内のヘッダを呼び出す場合は、
#import “HelloWorldFramework/HelloWorld.h” のように
”フレームワーク名/呼び出したいヘッダ”
のように記載します。
プロジェクトを実行し、ボタンを押下すると無事に
”hello, world!” が表示されました!!
おわりに
ツールのおかげでほんとに楽だったと思います。
実際に自分で1から作ろうとするとユニバーサル化含め
メンドクサイ事がいっぱいなのですが、ほんとに楽です。
これで気軽にフレームワークが作成できますね!
ぜひ、みなさんの開発ライフにご活用ください!