本文へジャンプします。

ニフクラ ユーザーガイド

クラウド トップ>ユーザーガイド>IoTデバイスハブ>モバイル・プラットフォーム用のSDK

モバイル・プラットフォーム用のSDK

任意のプラットフォームを選んでIoTデバイスハブ-プロジェクト用のモバイルアプリを実装できます。
どのプラットフォームを選んでも、利用可能なすべてのHTTPライブラリとWebSocketライブラリを使用してIoTデバイスハブ APIを直接操作できます。
主要モバイルプラットフォームでは、公式のIoTデバイスハブ SDKを使用してアプリを作成できます。

  • ※SDKはMODE, Incと連携し提供しています。

iOS

iOSアプリ用のIoTデバイスハブ-SDKライブラリが提供されています。
CocoaPodsからライブラリをインストールして、IoTデバイスハブサービスをアプリに統合できます。

Android

Androidアプリ用のSDKライブラリが提供されています。
これはJcenter上でホストされており、Gradleを介してAndroidビルドに簡単に追加できます。

モバイルアプリの実装例

SDKを利用する場合は、アプリ起動時にIoTデバイスハブのAPIエンドポイントを指定してください。

【iOS】

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 // Override point for customization after application launch.

 //IoTデバイスハブのAPIエンドポイントを指定する
 [MODEAppAPI setAPIHost:@"iot-device.jp-east-1.api.cloud.nifty.com"];

 //WebSocket用のAPIエンドポイント指定
 [MODEEventListener setWebsocketHost:@"iot-device.jp-east-1.api.cloud.nifty.com"];
 return YES;
}

【Android】

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 //IoTデバイスハブのAPIエンドポイントを指定する
 MODEApp.setAPIHost("iot-device.jp-east-1.api.cloud.nifty.com");

 //WebSocket用のAPIエンドポイント指定
 MODEEventListener.setWebsocketHost("iot-device.jp-east-1.api.cloud.nifty.com");
}

アプリでイベント受信やコマンド送信を行なう場合、ユーザー認証の仕組みが必要です。
以下のサンプルコードでは、SMSを使ったユーザー認証の仕組みを例に実装していきます。
まずはじめに、ユーザー作成のメソッドを実装します。

YOUR_PROJECT_IDには、IoTデバイスハブのコントロールパネルで確認できるプロジェクトIDを設定してください。
また、電話番号やユーザー名、認証コードの変数は、別途モバイルアプリのUIと紐付けて取得する処理が必要です。(以下のサンプルコードではUIとの紐付けができている前提のものです。)

【iOS】

//プロジェクトID、電話番号、ユーザー名を利用してユーザー作成を行う
[MODEAppAPI createUser:YOUR_PROJECT_ID
     phoneNumber:_phoneNumber.text
        name:_userName.text
      completion:^(MODEUser *user, NSError *error) {

 if (error) {
  //エラー処理
 } else {
  //ユーザー作成後の処理
 }
}];

【Android】

//プロジェクトID、電話番号、ユーザー名を利用してユーザー作成を行う
MODEApp.createUser(
 getApplicationContext(),
 YOUR_PROJECT_ID,
 phoneNumber.getText().toString(),
 name.getText().toString(),
 new MODEApp.Completion<MODEData.User> () {

 @Override
 public void done(MODEData.User ret, Throwable error) {
 if (error != null) {
  //エラー処理
 } else {
  //ユーザー作成後の処理
 }
}];

次に、ユーザー認証のメソッドを実装します。SMSを利用した認証は、以下のような流れで行います。

  1. 登録している電話番号への認証コードを要求
  2. 認証コードを入力

1. 登録している電話番号への認証コードを要求

【iOS】

//登録している電話番号への認証コードを要求する
[MODEAppAPI initiateAuthenticationWithSMS:YOUR_PROJECT_ID
     phoneNumber:_phoneNumber.text
     completion:^(MODESMSMessageReceipt *receipt, NSError *error) {
 if (error) {
  //エラー処理
 } else {
  //認証コード要求後の処理
 }
}];

【Android】

//登録している電話番号への認証コードを要求する
MODEApp.initiateAuthenticationWithSMS(
 getApplicationContext(),
 YOUR_PROJECT_ID,
 phoneNumber.getText().toString(),
 new MODEApp.Completion<MODEData.SMSMessageReceipt> () {
  @Override
  public void done(MODEData.SMSMessageReceipt ret, Throwable e) {
   if (error != null) {
    //エラー処理
   } else {
    //ユーザー作成後の処理
   }
 }];

2.登録している電話番号への認証コードを要求

YOUR_APP_IDの部分には、IoTデバイスハブに登録されているアプリIDを設定してください。

【iOS】

[MODEAppAPI authenticateWithCode:YOUR_PROJECT_ID
     phoneNumber:_phoneNumber.text
       appId:YOUR_APP_ID
      code:_verifyCode.text
      completion:^(MODEClientAuthentication *auth, NSError *error) {
       if (error) {
        //エラー処理
       } else {
        //認証後の処理
       }
      }];

【Android】

//登録している電話番号への認証コードを要求する
MODEApp.authenticateWithCode(
 getApplicationContext(),
 100,
 phoneNumber.getText().toString(),
 "test",
 verifyCode.getText().toString(),
 new MODEApp.Completion<MODEData.ClientAuthentication>() {

  @Override
  public void done(MODEData.ClientAuthentication auth, Throwable e) {
   if (e != null) {
    //エラー処理
   } else {
    //認証後の処理
   }
  }
 }];

認証ができたら、その情報を利用してイベントを受信していきます。

【iOS】

//MODEEventListenerをクラスのプロパティとして用意しておく必要があります
//イベントリスナーを初期化して、イベントの受信をスタートする
_listener = [[MODEEventListener alloc] initWithClientAuthentication:auth];
[_listener startListenToEvents:^(MODEDeviceEvent *event, NSError *error) {
 if (error) {
  //エラー処理
 } else {
  //イベント受信時の処理
  }
}];

【Android】

//MODEEventListenerをクラスのプロパティとして用意しておく必要があります
//イベントリスナーを初期化して、イベントの受信をスタートする
listener = new MODEEventListener(auth) {
 @Override
 public void didReceive(MODEData.DeviceEvent event) {
  //イベント受信時の処理
 }
}];

listener.startListenToEvents();

推奨画面サイズ 1024×768 以上