Play Scalaを使ったAndroidアプリ「議論サイトGIZIO」の作成
Posted on December 12th, 2013
どうも、議論SNSギジオを運営している堀内です。
私は文系大卒で全くの初心者だったのですが、それがなぜプログラミングを志し、アプリケーションを作成するに至ったかをここに綴ります。技術とか正直あんまり関係ないです。
できあがったアプリがこちらです。 http://www.gizio.me 2013年6月1日公開でした。ダウンロードして応援してくれた皆さんには、この場を借りてお礼を申し上げます。本当にどうもありがとうございました。
さて、その経緯です。笑
1. 動機
2. 着手(Strutsの時代)
3. 乗り換え(Play / Androidの時代)
4. リリース、そして現在
1. 動機
2011年、震災が起きて世の中が劇的に動く中で、「政府や国会は議論ばっかりし続けて、結局何も決まらない。メディアも一面的な報道しかしない。さまざまな人が議論して、結論が出る仕組みをどうにか作れないものか?」と考えたのがすべての始まりでした。
2. 着手(Strutsの時代)
卒業と同時にJavaの勉強をはじめました。数値計算もあるしJavaかな、独学でやるなら枯れてる技術だ、といってStruts 1からはじめました。
勉強の甲斐もあり、9月頃にはかんたんなプロトタイプが出来上がりました。人に見せてみたら「これではまだスタートラインにも立ててないよ」と言われたりする一方、面白いと言ってくれる人もいて、手応えを感じ、さらに頑張りました。他方で、この頃からXML地獄とマルチスレッドの面倒臭さにちょっと行き詰まりを感じていました。
3. 乗り換え(Play / Androidの時代)
その後、年始あたりに、Playもくもく会にて(!)kohachoriに出会い、Scalaを知りました。
Playならいろいろ楽!マーケットとしてもAndroidは面白い!という話に乗って、Play×Androidという構成で組み直すことにしてみました。
最初は馴染めませんでしたが、次第に慣れてきました。Akkaのお陰で、マルチスレッドの計算処理も期待通りに実装できました。これがJavaだったら絶命してただろうことは想像に難くありません。
他方で、Slick使ってゴリゴリSQLやろうと思っていたら予期せぬExceptionが多くて思うようにデータを取ってこれず、結局plain SQLで取ってくることにしたことも。あるいはSlickで頑張っても複雑すぎて結局読めなくなったりも。たしかにDB定義とかは楽になってよかったのですが、その辺は今一歩かなという感想です。
4. リリース、そして現在
そういう努力を経て6月1日にリリース。参院選にぶつけてアクセスを得よう!という魂胆でした。しかしなかなか伸びないDLと、それまでのハードワークが祟って息切れしてしまい、選挙を境にコードに触れたくなくなりました。
いやぁ、約5ヶ月ほど気分転換をしたおかげでまた元気になりました。いまはまた楽しくGIZIOのコードを書きながらパワポを作り、資金調達目指して頑張ってます。
構成としては、
サイトはPlay 2 Scalaで構築してあります。また、Androidアプリとの通信を司る部分も同じアプリケーション内にあります。計算処理をするアプリケーションを別に作成し、こちらもPlayを利用しています。
AWSを使っています。EC2のmicroインスタンスはアクセス一回で即死するので、smallインスタンスを利用しています。計算処理をするのはmicroインスタンスです。
参考にしたもの
PlayFrameworkドキュメント:平易な英語で豊富に書かれているのでわかりやすかった。
Strutsスーパーサンプル:初心者がやるには今更なのかな、やっぱり。本自体はよかったけど。
Androidプログラミングバイブル:ちょっと情報が古かった。
あとはStackOverFlowさんとか、tototoshiさんの日記とか
出来栄えは・・・まぁ(お察し)ではあります。感じたのは、やはり相談できる相手、あるいは情報力が大事です。
まじでPlayもScalaも関係ないですが、こんなやつもいるってことで。
日本を変えたい人募集中です〜!