第2章 ネイティブ iOS (Objective-C)
2.1. ダウンロード
2.2. スタート
この SDK により、RHMAP でサポートされるすべての iOS バージョン用の Objective-C アプリで RHMAP API を使用することができます。
RHMAP iOS Objective-C SDK は、Github の FeedHenry iOS SDK リポジトリーでホストされるオープンソースプロジェクトです。ご自由にプロジェクトのフォークを行い、このプロジェクトに貢献してください。
この SDK を使用する前に、Xcode IDE がインストールされていることを確認してください。Xcode は Apple 開発者ポータルからダウンロードできます。
プロジェクトの依存関係を管理するために CocoaPods を使用する予定であれば、最初にこれをインストールする必要があります。
sudo gem install cocoapods
2.2.1. 新規アプリ
新規テンプレートアプリを使って開始する場合、選択肢として以下の 2 つのオプションがあります。
- CocoaPods の使用 (推奨される方法で Studio のデフォルト)
- FH フレームワークの使用
2.2.1.1. CocoaPods の使用
サンプルアプリをクローンし、RHMAP SDK を CocoaPods の依存関係として組み込んだ新規 iOS アプリケーションを使って開始します。
git clone https://github.com/feedhenry-templates/blank-ios-app.git git checkout cocoapods
Podfile で定義された依存関係を取得します。
pod install
Xcode で blank-ios-app.xcworkspace ワークプレースを開きます。必要な依存関係は Pods グループにあります。
2.2.1.2. FH フレームワークの使用
サンプルアプリをクローンし、RHMAP SDK がすでに組み込まれている新規 iOS アプリケーションを使って開始します。
git clone https://github.com/feedhenry-templates/blank-ios-app.git
Xcode で blank-ios-app.xcworkspace ワークスペースを開きます。
2.2.2. 既存アプリ
既存アプリと RHMAP を統合する場合、選択肢として以下の 2 つのオプションがあります。
- アプリが CocoaPods を使用する場合、FH SDK を新規 pod として追加する。
- (そうでない場合) FH フレームワークを Xcode プロジェクトに追加する。
2.2.2.1. CocoaPods の使用
Podfile を開き、以下の依存関係を追加します。
pod FH, '3.1.1'
3.1.1 を、ターゲットにしている RHMAP iOS Objective-C SDK のバージョンに置き換えます。バージョン番号を指定しない場合、CocoaPods 中央リポジトリーの最新バージョンが使用されます。
2.2.2.2. FH フレームワークの使用
SDK をダウンロードし、fh-framework-latest.zip として保存します。
SDK を統合するには、上記のダウンロードした Zip ファイルから FH.framework ファイルを抽出します。
ダウンロード後は、FH.framework ファイルを Xcode プロジェクトにドラッグします。
ダイアログで、デフォルトを受け入れ、Finish をクリックします。
2.2.3. 統合
RHMAP iOS SDK にはフレームワークおよびライブラリーの数多くの依存関係があります。SDKをプロジェクトで適切にコンパイルするには、ビルド時にフレームワークやライブラリーにリンクするよう Build Phases を再設定しなければなりません。以下は、リンクする必要のあるライブラリーです。
-
libxml2.dylib -
libz.dylib -
SystemConfiguration.framework -
CFNetwork.framework -
MobileCoreServices.framework
これらを追加するには、Build Phases > Link Binary with Libraries に移動し、上記の依存関係をリンク依存関係として追加します。
また、リンカーフラグをアプリに追加する必要もあります。これを追加するには、プロジェクトのターゲットの Build Settings 画面に移動します。検索を実行して Other linker flags を見つけ、以下を追加します。
-Objective-C
最後に、fhconfig.plist というプロパティーリストファイルをプロジェクトに追加します。
2.2.4. セットアップ
アプリが RHMAP サーバーと通信できるようにするプロパティーを定義する必要があります。以下の値を fhconfig.plist 設定ファイルに追加します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>host</key> <string>__RHMAP_Core_host__</string> <key>appid</key> <string>__Client_App_ID__</string> <key>projectid</key> <string>__Project_ID__</string> <key>appkey</key> <string>__Client_App_ API_key___</string> <key>connectiontag</key> <string>__Connection_tag__</string> </dict> </plist>
クライアントアプリとクラウドアプリ間の通信についての詳細は、「Projects - Connections」を参照してください。
2.2.5. 初期化
RHMAP iOS Swift SDK からクラウド要求を呼び出す前に、初期化する必要があります。以下のコードスニペットを App Delegate の didFinishLaunchingWithOptions: メソッドか、またはコードがクラウド要求前に確実に呼び出されるその他の場所にコピーします。
#import <FH/FH.h>
#import <FH/FHResponse.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Call a cloud side function when init finishes
void (^success)(FHResponse *)=^(FHResponse * res) {
// Initialisation is now complete, you can now make FHActRequest's
NSLog(@"SDK initialised OK");
};
void (^failure)(id)=^(FHResponse * res){
NSLog(@"Initialisation failed. Response = %@", res.rawResponse);
};
//View loaded, init the library
[FH initWithSuccess:success AndFailure:failure];
return YES;
}2.3. API ドキュメント
API Docs: すべてのクライアント API についてのドキュメント

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.