これまでのあらすじ
mokemokechickenさんの記事を参考にし、SMC で生成した StateMachine を使ってアプリを書いている。
ただ自分のうんこっこな作業環境の問題で
-> 別マシンの Android Studio で merge して開発```
といった感じに要領の悪い工程になってしまっている。
要は AndroidStudio 上で SMC を実行すればいいじゃん。ということでやってみました。
# やったこと
## プロジェクトツリーにSMCを配置
`<Priject root dir>/<app>/bin/Smc.jar`
Smc.jar は[公式](http://smc.sourceforge.net/)からダウンロードしてね。
## ソースコードの配置
SMC の DSL で書いた StateMachine のソースコードを適当に配置。
`<Priject root dir>/<app>/src/main/java/<package>/statemachine/hoge.sm`
## 設定
Run -> Edit Configurations... -> JAR Application -> Smc.jar
まで到達すると、下図のような設定窓になる。

設定項目は以下の感じで。
- Path to JAR: 自動で入るのでそのまま
- Program arguments: 目的に合わせて適当に。今回は Java なので "-java" とソースコードのファイル名
- Working directory: 引数のファイルはここからの相対パスになるよ。念のため。なお、引数で指定しなかった場合の出力ディレクトリもここになる
設定したら保存して閉じる。
## 実行
あとは「Smc.jar」を Run させると statemachine ディレクトリに StateMachine の Context ファイルが生成される。あとはそれを import して StateMachine の条件分岐などを実装してあげればいい。詳しくは公式(わかりづらい)や各種 SMC の解説記事を参照してね。
# オワリに
あまりに簡単だった。面倒くさがらずにもっと早くやれば良かった。
dot ファイルの生成もできるので、工夫すれば StateMachine の図も自動生成できるかもね。
できればビルドに組み込みたいんだけどよくわからない。誰か教えて。