#これまでのあらすじ
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
まで到達すると、下図のような設定窓になる。
![ss_2016-06-13_20-30-19.png](https://qiita-image-store.s3.amazonaws.com/0/71165/65ed7993-d596-dc0c-5e92-1242ba04bef8.png)
設定項目は以下の感じで。
- Path to JAR: 自動で入るのでそのまま
- Program arguments: 目的に合わせて適当に。今回は Java なので "-java" とソースコードのファイル名
- Working directory: 引数のファイルはここからの相対パスになるよ。念のため。なお、引数で指定しなかった場合の出力ディレクトリもここになる
設定したら保存して閉じる。
##実行
あとは「Smc.jar」を Run させると statemachine ディレクトリに StateMachine の Context ファイルが生成される。あとはそれを import して StateMachine の条件分岐などを実装してあげればいい。詳しくは公式(わかりづらい)や各種 SMC の解説記事を参照してね。
#オワリに
あまりに簡単だった。面倒くさがらずにもっと早くやれば良かった。
dot ファイルの生成もできるので、工夫すれば StateMachine の図も自動生成できるかもね。
できればビルドに組み込みたいんだけどよくわからない。誰か教えて。