LoginSignup
3

More than 5 years have passed since last update.

SMC を AndroidStudio 上で走らせて StateMachine を簡単に生成しよう

Posted at

これまでのあらすじ

mokemokechickenさんの記事を参考にし、SMC で生成した StateMachine を使ってアプリを書いている。
ただ自分のうんこっこな作業環境の問題で
Linux マシンで SMC を実行して生成した StateMachine を commit
-> 別マシンの Android Studio で merge して開発

といった感じに要領の悪い工程になってしまっている。

要は AndroidStudio 上で SMC を実行すればいいじゃん。ということでやってみました。

やったこと

プロジェクトツリーにSMCを配置

<Priject root dir>/<app>/bin/Smc.jar

Smc.jar は公式からダウンロードしてね。

ソースコードの配置

SMC の DSL で書いた StateMachine のソースコードを適当に配置。

<Priject root dir>/<app>/src/main/java/<package>/statemachine/hoge.sm

設定

Run -> Edit Configurations... -> JAR Application -> Smc.jar
まで到達すると、下図のような設定窓になる。

ss_2016-06-13_20-30-19.png

設定項目は以下の感じで。

  • Path to JAR: 自動で入るのでそのまま
  • Program arguments: 目的に合わせて適当に。今回は Java なので "-java" とソースコードのファイル名
  • Working directory: 引数のファイルはここからの相対パスになるよ。念のため。なお、引数で指定しなかった場合の出力ディレクトリもここになる

設定したら保存して閉じる。

実行

あとは「Smc.jar」を Run させると statemachine ディレクトリに StateMachine の Context ファイルが生成される。あとはそれを import して StateMachine の条件分岐などを実装してあげればいい。詳しくは公式(わかりづらい)や各種 SMC の解説記事を参照してね。

オワリに

あまりに簡単だった。面倒くさがらずにもっと早くやれば良かった。
dot ファイルの生成もできるので、工夫すれば StateMachine の図も自動生成できるかもね。
できればビルドに組み込みたいんだけどよくわからない。誰か教えて。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3