Click here to load reader
Upload
device-webapi-consortium
View
1.028
Download
0
Embed Size (px)
Citation preview
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 0
デバイスコネクトWebAPIの開発状況について
2016年6月29日
株式会社NTTドコモ サービスイノベーション部
山添 隆文
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 1
メガネ型デバイス
言葉の説明
・GotAPI(Generic Open Terminal API):スマートフォンにWebインターフェースを持たせる仕様
・デバイスWebAPI:具体的なデバイスの機能をWebAPIとしてどう記述するかの仕様
・デバイスコネクト:ドコモ提供のGotAPI準拠の開発フレームワーク(MITライセンスのOSS)
温度センサー
時計型デバイス
アクションカメラ
デバイス2
スマートフォン様々なデバイス
ネイティブアプリ
…スマート家電A規
格
心拍数計
スマート家電B規
格
Webインターフェース Webアプリ/
Webブラウザ
ハイブリッドアプリ
機能の定義
デバイス1
デバイス2
デバイス3
ライト
画面 加速度
心拍数
カメラ
通知
画面
加速度 通知
デバイス1
デバイス3 OMA GotAPI
デバイスWebAPI
デバイスコネクト:GotAPIに準拠しつつ、拡張したフレームワーク
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 2
{"result": 0,"connect": { "bluetooth": true },"supports": [
"canvas","vibration"
]}
現状の機能Profileリスト取得(serviceInformation)での課題・仕様を把握していないと、どのようにAPIを使えばいいのかがわからない・同じ機能Profileでもデバイス毎に使える機能の範囲が異なる
GET <ホスト名>:4035/gotapi/serviceInformation
具体的にどう使うのかがわかりにくい
serviceInformationの改善
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 3
{"result": 0,"connect": { "bluetooth": true },"supports": ["canvas", "vibration"],"supportApis": {
"canvas": [{
"name": "Canvas Draw Image API","type": "one-shot","method": "POST","path": "/gotapi/canvas/drawImage","requestParams": [ (省略) ]
},{
"name": "Canvas Delete Image API","type": "one-shot","method": "DELETE","path": "/gotapi/canvas/drawImage","requestParams": [ (省略) ]
}],
"vibration": [(省略)
]}
}
標準化仕様との整合性を保ちつつ、機能リストの具体的なAPI記述を取得supportApis[“canvas”][1].method+<ホスト名:4035>+supportApis[“canvas”][1].pathで
「DELETE <ホスト名>:4035/gotapi/canvas/drawImage」
機能のエンドポイントのリストを追加
serviceInformationの改善
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 4
API記述のキャメルケース(camelCase:単語の始まりを大文字に)/スネークケース(snake_case:”_”で区切る)の混在の解消
・media_player⇒mediaPlayer
・mediastream_recording⇒mediaStreamRecording
※ただし、MediaStreamRecording、mediastreamrecordingといった記述も許容する
※現行APIが使えなくなるわけではないので、現行のプラグインとそれに対応するアプリ上の記述には影響なし。
※スネークケースでないと可読性が低下する?⇒pathや機能の粒度の設計に課題がある(と、ひとまず考えておく)
API仕様の整理
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 5
Swaggerベースでのモデルファーストのフレームワーク提供⇒クラウドサービスとしてもスマートフォン上アプリとしても同一のAPI設計で機能提供を実現
API仕様の整理:今後の計画
Android開発環境
デバイスコネクトプラグイン環境
プラグイン実装
デバイス依存のSDK等
API仕様
iOS開発環境
デバイスコネクトプラグイン環境
プラグイン実装
デバイス依存のSDK等
API仕様
Swagger
APIドキュメント
Android用ソースコード
iOS用ソースコード
クラウド用APIの骨組み
計画API仕様から各環境のコードを生成
現状一般的なアプリ開発のやり方
デバイス依存のSDK等
機能の対応付け
機能の対応付け
実装への落とし込み作業自動生成
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 6
・マネージャ起動処理の自動化、URLスキーム、インテント起動の整備
機能マネージメントの改善
LaunchActivity
gotapi://start?url=http://xxxgotapi://stop
WebView
ネイティブアプリ
ハイブリッドアプリ
Webアプリ
URLスキーム
インテント
端末起動時
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 7
・プラグインのリソース管理、未使用リソース解放・アプリ・サービス単位でのリソース管理
機能マネージメントの改善
アプリAを強制終了
リソース2が自動で開放
アプリA
アプリBマネージャ
リソース1(A,Bが利用)
リソース2(Aが利用)
アプリとは独立にリソース制御を行う必要がある
アプリB マネージャリソース1
リソース2
改善後現状
アプリB マネージャ リソース1
NTT DOCOMO, INC., Copyright 2016, All rights reserved. 8
・設定画面からのデバイス状態確認、機能確認
機能マネージメントの改善
・機能確認serviceInformationの追加機能を
利用し、自動生成
・デバイス状態確認