Skip to content

Latest commit

 

History

History
258 lines (214 loc) · 10.2 KB

File metadata and controls

258 lines (214 loc) · 10.2 KB

DeviceConnect Codegen

はじめに

DeviceConnect Codegenは、DeviceConnectシステム上で動作するプラグインおよびアプリケーションのスケルトンコードを生成するためのコマンドラインツールです。(以下、本ツールと呼びます)

本ツールへの入力として、DeviceConnectプロファイルの定義ファイルを自前で用意しておく必要があります。標準プロファイルについては全API仕様を定義したファイルを提供しますので、適宜編集してください。

前提知識

  • OpenAPI Specification 2.0

サポート範囲

本ツールで生成可能なスケルトンコードのタイプは下記のとおりです。

  • Androidプラグイン
  • iOSプラグイン
  • node-gotapiプラグイン
  • HTMLアプリケーション
  • DeviceConnectエミュレータ
  • DeviceConnectAPIリファレンス
    • HTML
    • Markdown

ファイル構成

本ツールはzipで配布されます。圧縮されているファイルの構成は下記のとおりです。

ファイル名 説明
bin/deviceconnect-codegen.jar 本ツールのバイナリ。
src/deviceconnect-codegen 本ツールのソースコード。
standard-profile-specs/*.json DeviceConnect標準のプロファイル定義ファイル群。
samples/android-plugin.sh Androidプラグインのスケルトンコードを生成するシェルスクリプトのサンプル。
samples/ios-plugin.sh iOSプラグインのスケルトンコードを生成するシェルスクリプトのサンプル。
samples/profiles-specs シェルスクリプトのサンプルに入力するプロファイル定義ファイル群。

Get Started

deviceconnect-codegen-project-1.9.1-dist.zip をPC上の任意の場所にダウンロードし、解凍してください。

解凍後、ターミナルを起動し、以下のコマンドによりをサンプルのスケルトンコードを生成してください。

生成後の手順については、各出力先のREADME.mdを参照してください。

Androidプラグインの場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./android-plugin.sh

出力先: samples/output/Android/MyPlugin

iOSプラグインの場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./ios-plugin.sh

出力先: samples/output/iOS/MyPlugin

node-gotapiプラグインの場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./node-plugin.sh

出力先: samples/output/NodeJS/node-gotapi-plugin-sample

HTMLアプリケーションの場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./html-app.sh

出力先: samples/output/html/MyApp

DeviceConnectエミュレータの場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./emulator.sh

出力先: samples/output/NodeJS/Emulator

DeviceConnectAPIリファレンス (HTML) の場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./html-docs.sh

出力先: samples/output/html/Device_Connect_RESTful_API_Specification

DeviceConnectAPIリファレンス (Markdown) の場合

$ cd deviceconnect-codegen-project-X.Y.Z-dist/samples
$ ./md-docs.sh

出力先: samples/output/html/Device_Connect_RESTful_API_Specification

リファレンス

実行方法

下記のようなJavaコマンドで実行してください。指定可能なオプションは次節参照。

java -jar bin/deviceconnect-codegen.jar [オプション]

オプション一覧

オプション説明省略
--lang
スケルトン生成対象の指定。下記のいずれかの値を引数とする。
  • Androidプラグイン: deviceConnectAndroidPlugin
  • iOSプラグイン: deviceConnectIosPlugin
  • node-gotapiプラグイン: gotapiNodePlugin
  • HTMLアプリケーション: deviceConnectHtmlApp
  • DeviceConnectエミュレータ: deviceConnectEmulator
  • DeviceConnectAPIリファレンス (HTML): deviceConnectHtmlDocs
  • DeviceConnectAPIリファレンス (Markdown): deviceConnectMarkdownDocs
-
--input-spec
スケルトンコードでサポートするプロファイル仕様の指定。プロファイル仕様定義ファイルまたはそれを格納するディレクトリへのパスを引数とする。絶対パス・相対パスの両方を使用可能。ファイルの形式はJSON・YAMLのいずれかとする。ファイル名は <プロファイル名>.<拡張子>であること。ファイルを指定する場合、そのファイル内にサポートするすべてのAPIを定義すること。 *1
--input-spec-dir
v1.9.0 より非推奨

スケルトンコードでサポートするプロファイル仕様の指定。プロファイル仕様定義ファイルを格納したディレクトリへの絶対パスまたは相対パスを引数とする。各ファイルの形式はそれぞれJSON・YAMLのいずれかとする。ファイル名は <プロファイル名>.<拡張子>であること。

*1
--output
スケルトンコードの出力先の指定。PC上の任意のディレクトリへの絶対パスまたは相対パスを引数とする。

存在しないディレクトリが指定された場合は、そのディレクトリを新規で作成する。存在していた場合は、出力内容を強制的に上書きする。
-
--display-name
[プラグインまたはアプリケーションのみ有効]
スケルトンコードの名前の指定。

プラグインの場合、System APIによって取得できるデバイスプラグインの名前として使用される。アプリケーションの場合、主にアプリケーションのタイトルとして表示する名前として使用される。

デフォルト値は、プラグインの場合は "MyPlugin"、アプリケーションの場合は "MyApp"。
o
--connection-type
[Androidプラグインのみ有効]
Device Connect Managerとの連携タイプの指定。下記のいずれかの値を引数とする。デフォルト値は、"binder"。
  • broadcast: IntentのブロードキャストによってDevice Connect Managerと通信する。
  • binder: Device Connect Managerとバインドし、AIDLで定義されたインターフェース経由でIntent形式のメッセージを送受信する。
o
--package-name
[Androidプラグインのみ有効]
スケルトンコードのパッケージ名の指定。デフォルト値は、"com.mydomain.myplugin"。
o
--template-dir
[Androidプラグインのみ有効]
Androidプラグインのテンプレートを独自テンプレートに差し替えたい場合に、テンプレートをまとめたディレクトリへのパスを指定する。

本オプションが省略された場合、本ツールにデフォルトのテンプレートが使⽤される。本オプションによって指定したテンプレートとデフォルトのテンプレートの間でファイル名の衝突が発⽣した場合は、本オプションで指定した⽅が優先される。
o
--sdk
[Androidプラグインのみ有効]
独自テンプレート向けのオプション。

ソースコードで提供されたDeviceConnect SDKを使用する場合に、そのフォルダへの絶対パスまたは相対パスを指定する。

指定した⽂字列は、テンプレート側から {{{sdkLocation}}} という名前で参照可能。デフォルトのテンプレートでは参照されない。
o
--signing-configs
[Androidプラグインのみ有効]
独自テンプレート向けのオプション。

Androidプラグインのビルド時に使用される署名情報の保存されているフォルダへの絶対パスまたは相対パスを指定する。

指定した⽂字列は、テンプレート側から {{{signingConfigsLocation}}} という名前で参照可能。デフォルトのテンプレートでは参照されない。
o
--gradle-plugin-version
[Androidプラグインのみ有効]
プラグインのビルドツールとして使⽤するAndroidPlugin for Gradle のバージョン名を指定する。省略された場合は 3.0.0 とする。

指定した⽂字列は、テンプレート側から {{{gradlePluginVersion}}} という名前で参照可能。デフォルトのテンプレートからも参照される。
o
--class-prefix
[Androidプラグイン・iOSプラグインの場合のみ有効]
出力されるクラス名のプレフィクスの指定。

標準プロファイルを実装する場合に、SDK側から提供される既定クラスと名前を区別するために使用される。独自プロファイルの場合は適用されない。

デフォルト値は、 "My"。
o

*1: --input-spec または --input-spec-dir のいずれかを必ず指定すること。