{ 2012.4.29 }

オレオレ framework の作り方

    はてなブックマーク - オレオレ framework の作り方
    このエントリーをはてなブックマークに追加

    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から作ろうとするとユニバーサル化含め
     メンドクサイ事がいっぱいなのですが、ほんとに楽です。
     これで気軽にフレームワークが作成できますね!

     ぜひ、みなさんの開発ライフにご活用ください!

    Comments are closed.