アプリ

スマートフォンのアプリのように、ある機能を持つアプリを自分で作りクラウド上にインストールすることができます。
obnizの開発者ならオリジナルのアプリを作り、自分または他人にアプリの提供が可能です。

アプリの特徴

obnizのアプリは、インストールをデバイスに対して行います。(デバイスにプログラムが転送されるわけではありません)
アプリは手元のブラウザやobnizクラウド上または別サーバーで動作し、インストールされたデバイスでIoTが可能になります。
ただのHTMLやnodejsで作られたソフトと違い、デバイスに依存しないソフト開発が簡単にできるため、複数デバイスまたは複数人へのアプリ配布が容易に行なえます。

アプリの種類

アプリには大きく分けて2つの種類があります。

ブラウザアプリ ブラウザアプリはHTML/JavaScriptまたはブロックプログラムで作るアプリです。その名の通りブラウザで動作するためリアルタイムな遠隔操作・グラフ化などが可能です。更に「クラウド実行」で起動のきっかけ設定することで手元のブラウザだけでなくobnizクラウド内で実行させることも可能です。
ホステッドアプリ obniz以外の他のサーバー上にホスティングされたサービスでobnizのデバイスを使う時に利用します。インストールされたデバイスの情報を取得したり、OAuthにより承認したユーザーのデバイスやアカウントの管理が可能になります。

ブラウザアプリ

ブラウザアプリはプログラムと設定を持つもので、デバイスに対してインストールを行うことができます。

インストールされたアプリを実行することで

  • インストールされたデバイスの情報がプログラムに取り込まれ実行される
  • インストール時に行った設定がプログラムに取り込まれる

HTML/ブロックプログラムともに、プログラムの中では、以下のようにデバイスに依存しない形で記載します(obnizIDを直接記載しません)。

// Example

var obniz = new Obniz("OBNIZ_ID_HERE");

これをobnizID 0000-0000 というデバイスにインストールし実行することで、以下のようにIDが置き換わり実行されます。
アクセストークンは設定されている場合にのみ適用されます(ブロックプログラムではアクセストークンの設定が行われません)。

// Example

var obniz = new Obniz("0000-0000", {access_token: "XXXXX"});

また、インストール時設定がアプリにある場合はそれをプログラムから読み取ることができます(HTMLのみ)。
例えばインストール時に水をあげる間隔を設定できる場合は以下のように読み取れます。

// Example

var obniz = new Obniz("OBNIZ_ID_HERE");
var install_configration = Obniz.App.configs();
var water_interval = install_configration['water_interval'];

また、ブラウザアプリはobnizクラウドで実行するよう設定できます。
Webhookや時間など、あるきっかけを元にクラウドで実行され、一定時間以内に終了するイベントドリブンな実行を行います。
きっかけについて詳しくはブラウザアプリ: クラウド実行をご確認ください。
サーバー実行される場合には結果を記録し、デバイス一覧で閲覧することもできます。

// Example

// インストールされたデバイス情報に書き換わる
var obniz = new Obniz("OBNIZ_ID_HERE");

// インストール時設定を読み出す
var install_configration = Obniz.App.configs();
var water_interval = install_configration['water_interval'];

if (Obniz.App.isCloudRunning()) {
  // クラウド上で実行されている
  const req = Obniz.App.req();
  console.log(req.query); // webhook query
  console.log(req.body);  // webhook body

  // なにかタスク

  // 結果を記録
  Obniz.App.done({
    status: 'success',
    text: `${temp} degree`
  });
} else {
  // ユーザーのブラウザで実行されている
}

ブラウザアプリについて詳しくはブラウザアプリをご覧ください。

ホステッドアプリ

サーバーで稼働するサービスを作るならホステッドアプリが便利です。
ホステッドアプリを作成することで自分や他のユーザーがアプリをインストールしたデバイス情報をAPIで取得できます。
アプリとデバイスの紐付けや設定の保存などをobnizクラウドに任せることが可能です。
また、承認されたユーザーのアカウントやデバイスに関する管理も可能です。

詳しくは ホステッドアプリをご覧ください。

Articles