Playフレームワーク
PlayフレームワークはScala/Javaベースのウェブフレームワークである。他のWeb Frameworkと同じように、MVCでWebアプリを素早く構築でる。
Scala
Scalaというと、twitterが使っていて、パフォーマンスが高いというイメージが浮かぶぐらいだったけど、本格的にScalaについて興味が湧いてきたのはこのスライドを見たのがきっかけだった:http://www.slideshare.net/brikis98/nodejs-vs-play-framework-with-japanese-subtitles
Playをインストール
Playは公式サイトからダウンロードできる: https://www.playframework.com/download
ダウンロードしたファイルを解凍して、中に下記のファイルが入っている:
- activator
- activator.bat
- activator-launch-x.x.x(xはバージョン番号です)
このフォルダに移動し、コマンドで./activator
をすると、必要なライブラリがダウンロードしはじめる。
Getting com.typesafe.activator activator-launcher x.x.x ...
このフォルダを
$PATH
に追加すると便利
新規プロジェクト
./activator new
をすると
Fetching the latest list of templates...
Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-akka-java-seed
2) minimal-akka-scala-seed
3) minimal-java
4) minimal-scala
5) play-java
6) play-scala
(hit tab to see a list of all templates)
>
テンプレートを選択してくださいって聞いてくる。Scalaを使うので、play-scala
を選択する。
次はアプリ名の入力。変な符号じゃなければなんでもいいんだが、この記事ではcocos-chan
にする。
Enter a name for your application (just press enter for 'play-scala') cocos-chan
アプリ作成されたら、プロジェクトのフォルダに移動し、
./activator run
すると、パッケージをダウンロード始める。しばらく待ったら。
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
が表示される。おめでとう、Playフレームワークもうすでに動いている。ブラウザを開いてhttp://localhost:9000
にアクセスするとPlayフレームワークのデフォルトページが表示される:
Playはデフォルトにポート
9000
を使うが、./activator "run 7777"
みたいに起動する際にポートを変えることができる。
初回アクセスする時に、Playがソースをコンパイルするので、時間がかかる。ログを見ればわかる:
[info] Compiling 1 Scala source to /path/to/cocos-chan/target/scala-2.11/classes...
~~ ```
## Hello World
デフォルトのページが派手すぎるので、単調な`Hello World`してみる。`./controllers/Application.scala`を開いて
```scala
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
を
object Application extends Controller {
def index = Action {
Ok("<h1>Hello World!</h1>").as("text/html");
}
}
に書き換えて、activator run
すると:
しょぼいHello World!
ができた!
感想
最近LinkedInのエンジニアの著書を読んでて、Scala
に興味を湧いてきたので、この記事を書いた。Hello Worldって実質的には確か何も意味ないけど、とりあえず動くと、これからやるぞ!というポジティブな気持ちになるので、大切だと思う。
ちなみに、自分が何を勉強する際に、本を読むだけではなく、実際何かを作ることを通して勉強している。この記事で作ったcocos-chan
というプロジェクトはまさにScalaを勉強するために作ったのだ。cocos-chan
完成までの流れ、そしてScalaのことについて、こまめにブログで報告する予定。