オルタナティブ・ブログ > Allegro Barbaro >

開発ツールビジネスの再生に格闘。マーケティングの視点で解説

BerlinでIoTデバイスとの通信がコンポーネント化された

»

2016年、エンバカデロがアイデラの傘下に入って初めての新製品がリリースされた。Delphi / C++Builder / RAD Studioの新バージョンで、名称は「10.1 Berlin」。前回の「10 Seattle」に続く都市名を愛称にしたバージョン名だ。

昔からの慣例で「10」のときは「テン」と呼ぶのに、「10.1」と小数点が付くと急に日本語になり「じゅってんいち」と呼ぶという小ネタはさておき、今回の都市名決定は、ドイツにDelphiユーザーが多く、今回の目玉であるIoTサポートの強化と現地の産業の傾向に関係があるのではという話だ。次のリリースには、Linuxサポートがロードマップにあがっており、日本にちなんだコードネームが付けられていることから、いよいよ日本の都市名が候補に出るかな、と期待される。

さて、今回の目玉、IoTサポートである。

IoTサポートとしては、これまでもWiFiやBluetoothサポートにより、汎用的な接続をコンポーネントベースで記述することはできた。しかし、各デバイスの情報を取得するには、各デバイスのプロファイルを理解し、適切なコーディングを行わなければならないという、なかなかコード、コードした世界だった。

今回、ThingConnectと呼ばれる一連のコンポーネント群が用意され、各IoTデバイスへの接続、情報の取得、制御といったことを、従来のドラッグ&ドロップ操作とプロパティ、イベントの設定だけで行えるようになった。

コンポーネントは、最近のバージョンで追加されたGetItパッケージマネージャでIDEに追加する。こんな感じだ。

rad-berlin-iot01.png

コンポーネントには、個別のデバイスに対応したもの(例えば、Adidas miCoach、Runtastic Heart Rate Combo Monitor、Wahoo TICKR Heart Rate Monitor向けのコンポーネントなどがある)、各デバイス共通の汎用的なもの(Genericコンポーネント)がある。個別のデバイスに対応したものを使えば、各デバイスの固有の機能をコンポーネントのプロパティやメソッドで操作できる。

コンポーネントは、デバイスのカテゴリごとに分類されており、例えば心拍計なら、汎用の心拍計コンポーネントと、特定デバイス向けの固有の心拍計コンポーネントがある。心拍数を取得するという汎用的な機能であれば、汎用コンポーネントによっても取得できる(各デバイスの共通化されたインターフェイスをそのデバイスが提供していることが前提ではあるが)。

実際にコンポーネントを使ってみよう。

GetItでIDEにインストールしたコンポーネントを、デザイナ画面上にドラッグ&ドロップする。ここでは、モバイルアプリを作成する想定で、iPhoneとAndroidをターゲットにしてみた。

rad-berlin-iot02.png

実際にアプリを動かすと、ご覧のようにハートレートモニターが計測した心拍数の情報が取得できる。UIの作成やデバイスとの接続などもろもろのコードがあるが、実際にデバイスからのデータの取得とその表示にかかわるコードは数十行程度で済んだ。デバイスが変わった場合でも、コンポーネントがカプセル化している分、修正しなければならないコード量も少なく済む。もちろん、マルチデバイス対応であり、ネイティブコードであることは、これまでのRAD Studio / Delphi / C++Builderの特長とかわらない。

rad-berlin-iot03.jpg

なかなか興味深い機能ではあるが、実デバイスと連携してご覧いただかないとあまり実感がわかないかもしれない。ということでWebセミナーのご案内(まとめが宣伝で恐縮です)。

4月27日 17時より4時間にわたり放送する「New Highlights of RAD Studio / Delphi / C++Builder」。IoTデバイスに関するデモは、恐らく19時半ぐらいから始まるのではと予想します。ぜひご視聴を。

Comment(0)