VOYAGE GROUP エンジニアブログ

voyagegroup_techのブログ
VOYAGE GROUPエンジニアブログです。

【詳細図解】iPhoneの共通モジュールのベストプラクティス(その4)

こんにちは、 株式会社ジェネシックス の徐 廷(@TonnyXu)です。 iPhoneの共通モジュールのベストプラクティスに関してです。

文章が長くなりますので、5回に分けてお届けします。

今回は、4回目となります。

その1

■ 共通プロジェクトを作る

その2

■ コンシューマPJを作る

■ コンシューマPJで共通プロジェクトを引用

その3

■ 引用する後コンシューマPJでの必須設定

その4

■ コンシューマPJを実行する

その5

■ さらに

・ 共通プロジェクトに単体テストを追加

・ オープンソースライブラリを作る

 

 

■ コンシューマPJを実行する

まず、 CommonConsumerViewController.xib ファイルを開いて、下記のように、二つのラベルを追加します。


viewController.xib , adding 2 labels
図21:二つのラベルを追加

CommonConsumerViewController.h ファイルに赤いラベルのアウトレット属性を追加します。CommonConsumerViewController.h
//
// CommonConsumerViewController.h
// CommonConsumer
//
// Created by Tonny Xu on 10/05/26.
// Copyright genesix, Inc. 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface CommonConsumerViewController : UIViewController {
UILabel *resultLabel;
}

@property (nonatomic, retain) IBOutlet UILabel *resultLabel;

@end

注意 ヘッダーファイルに@propertyを追加したので、.mファイルに@synthesizeを追加することを忘れないでください。また、xibファイルにアウトレットとラベルの繋がりを忘れないでください。

次に、 CommonConsumerViewController.m- (void)viewDidLoad メソッドに下記のコードを追加してください。

// 下記のimportはファイルの一行目に追加してください。
#import "GCDevice.h"
// 中略...
- (void)viewDidLoad {
[super viewDidLoad];
if ([GCDevice isIPad]) {
resultLabel.text = @"Yes, it is an iPad.";
}else {
resultLabel.text = @"No, it's NOT an iPad.";
}
}

ここまで、共通モジュールの実装は完了しました。アプリケーションを実行してみましょう。


running on simulator.
図22:シミュレーターでの実行結果

Wow! やった!完成しました。これで、この isIPad メソッドはほかのプロジェクトでも使えるようになりました。

本文の最初に設定した目標の1−4はクリアです!

【詳細図解】iPhoneの共通モジュールのベストプラクティス(その3)

こんにちは、 株式会社ジェネシックス の徐 廷(@TonnyXu)です。 iPhoneの共通モジュールのベストプラクティスに関してです。

文章が長くなりますので、5回に分けてお届けします。

今回は、3回目となります。

その1

■ 共通プロジェクトを作る

その2

■ コンシューマPJを作る

■ コンシューマPJで共通プロジェクトを引用

その3

■ 引用後のコンシューマPJでの必須設定

その4

■ コンシューマPJを実行する

その5

■ さらに

・ 共通プロジェクトに単体テストを追加

・ オープンソースライブラリを作る

 

■ 引用後のコンシューマPJでの必須設定

必須となる設定は三つあります。
  1. 共通プロジェクトを利用するために、ヘッダーファイルの置き場所を指定。
  2. コンシューマPJをコンパイルする前に、まず共通モジュールをまずコンパイルするように設定。いわゆる依存関係を設定。
  3. コンシューマPJをリンクする時、共通モジュールをリンク。

まず、1番目の設定を行いましょう。プロジェクトのルートノードCommonConsumerをダブルクリックすると、下図の設定画面が出てきます。


setting 1 for consumer PJ, header search path.
図15:CommonConsumerのプロジェクト設定画面

図15画面上にある検索ボックスに"header"を入力してみましょう。絞り込んだ設定項目画面で Header Search Path項目の右にある空セルをダブルクリックして、"../Common"を入力してください。Recursivelyチェックボックスはそのままでかまいません。完了したら下図の画面と同じかどうかを確認してください。


setting 1, header path.
図16:Header Search Pathの値

図16に、相対Pathを記入しています。画面のOKを押して、次の設定へ行きましょう。

次はプロジェクトの依存関係を設定します。左側のTargetsノードをダブルクリックしてください。


setting 2 for consumer PJ, dependency project.
図17:Targetの設定画面(図15とほぼ同じ、ただし、少し違いがあります)

図17のGeneralタブを選択して、Direct Dependenciesの下にある「+」ボタンを押してください。下記の画面が出てきたら、Commonを選択してください。


setting 2 for consumer PJ, select dependency pj.
図18:依存先を選択

これで、コンパイルができるはずです。コンパイルすると、下図のような画面が出てきます。リストの一番上にCommonプロジェクトをコンパイルしたことが示されています。


setting 2 for consumer PJ, compile OK after adding dependency.
図19:依存関係を設定後、コンパイル結果画面

最後もう一つの設定が不可欠です。コンパイル後、共通モジュールをコンシューマPJにリンクします。コンシューマPJのCommonプロジェクトノードの下に表示される「libCommon.a」をドラッグして、「targets」の「CommonConsumer」の「Link Binary with Libraries」にドロップしてください。結果は下図の画面のようになります。


setting 3 for consumer PJ, adding link option and invoke common module
図20:共通モジュールのバイナリファイルをリンクする

ここまでで、コンシューマPJでの共通モジュールの設定が終わりました。続いて、コンシューマPJで共通モジュールのクラスを利用してみましょう。

【詳細図解】iPhoneの共通モジュールのベストプラクティス(その2)

こんにちは、 株式会社ジェネシックス の徐 廷(@TonnyXu)です。iPhoneの共通モジュールのベストプラクティスに関してです。

文章が長くなりますので、5回に分けてお届けします。

今回は、2回目となります。

その1

■ 共通プロジェクトを作る

その2

■ コンシューマPJを作る

■ コンシューマPJで共通プロジェクトを引用

その3

■ 引用する後コンシューマPJでの必須設定

その4

■ コンシューマPJを実行する

その5

■ さらに

・ 共通プロジェクトに単体テストを追加

・ オープンソースライブラリを作る

 

 

■ コンシューマPJを作る

コンシューマPJで使うプロジェクトテンプレートは普通のiPhoneプロジェクトと同じです。今回はサンプルを作りやすくする為に、View-based Applicationのテンプレートを使って作りましょう。

new consumer project.
図10:新規コンシューマプロジェクト


new consumer project name.
図11:コンシューマプロジェクトの名前

コンシューマPJを作ったら、次のステップで共通モジュールを引用します。

■ コンシューマPJで共通プロジェクトを引用

コンシューマPJで共通プロジェクトを引用します。この操作も非常に簡単です。まず二つのアプリを同時に開いてください。


open both projects.
図12:共通プロジェクトとコンシューマプロジェクトを同時に開く

次は共通プロジェクトのルートノードをコンシューマプロジェクトのルートノードの下にドラッグ&ドロップしてください。
もう少し詳しくいうと、上記の図12の中に緑背景の common をドラッグして、左側の"CommonConsumer"の下にドロップします。

ドロップしたら、下図のような確認画面が出てきます。


prompt after drag in common library
図13:ドロップ後の確認画面

この画面の
  1. "Relative to project"を必ず選択してください
  2. "Copy items..."のチェックボックスを必ず外してください。
  3. "Recursively create ..."を必ず選択してください。

以上で、CommonConsumerプロジェクトは下図のようになります。


drag in common lib ok
図14:ドロップOK

ここまでは簡単だと思いますが、まだ、完了ではありません。この共通ライブラリを使うために、もう少し設定が必要です。

記事検索
QRコード
QRコード