【Play Framework入門】特徴と使い方を徹底解説!Spring Bootとの違いは?インストールの手順も紹介
現在様々なフレームワークが存在しており、開発言語や開発環境、プロジェクトの規模などによっても使用するフレームワークが異なります。
どんなフレームワークを使ったらいいのか悩むエンジニアの方も多いでしょう。
またシステム開発となると企業のシステムなどのイメージもありましたが、最近ではスマートフォンアプリなどの開発も一般的になりました。
その際に有効なのがJavaになります。もちろんJava以外にもGOやScalaなどの新しい言語も増えました。
そんな時に使用されるWEBアプリケーションフレームワークの一つにPlay Frameworkがあります。
「使ってみたいがどんなものなのか分からない」という人に向けに、Play Frameworkについて解説していきます。
また、同じくJava開発環境下で使用されるフレームワークであるSpring Bootについての比較もしてみましょう。
フレームワークについて
フレームワークはシステム開発を簡便化してくれるための機能の塊。
それぞれの目的に応じたフレームワークが存在しています。
WEBサイトを構築するためのフレームワークや、システム構築に必要なフレームワークなど、用途によって種類は様々です。
また使用言語によってもフレームワークは異なります。
目的に合ったフレームワークを利用することにより、システム開発を安易に行えるようになります。
またコード直接入力してしまうと、開発者によってコードの書き方などにばらつきがでやすいのが難点です。
しかしフレームワークを使用することによって、一定のルールに基づいてコードが書かれます。
運用工数削減や品質向上など、メリットも多いです。
Play Frameworkとは
では一体、Play Frameworkとはどういうものなのでしょうか。
Play Frameworkの大まかな特徴
Play Frameworkの特徴は後述しますが、
- 動作が軽い
- メモリ使用量が少ない
- コンパイル時間が短くテスト時間を短縮できる
などの特徴があります。
Play FrameworkはWebアプリケーションのフレームワーク
そもそもPlay Frameworkは何かというと、JavaとScalaを使う際に使用できるWEBアプリケーションフレームワークの一つです。
JavaのフレームワークにはSpring Framework、Java EE、Apache Struts、Spark Frameworkなどがあります。
その中でもPlay Frameworkは、軽量さや開発の柔軟性を求められる現場で使用されているものです。
Scalaが使えるのもメリットでしょう。
Spring Bootとは
次にSpring Bootについて少し解説します。
これはSpring Frameworkをベースに作成されたJava向けのアプリケーションフレームワークです。
Spring Frameworkと同様にDI(依存性注入)ができることと、AOP(アスペクト指向プログラミング)のフレームワークを持っています。
またSpring Frameworkは、Jar形式でパッケージングできない、アプリケーションサーバにデプロイができないといった課題がありました。
Spring BootはSpring Frameworkを改良し、更に使いやすくなっているということが挙げられます。
Play FrameworkとSpring Bootとの違いは?
Play FrameworkもSpring Bootも、Java開発のWEBアプリケーションフレームワークとしては有名なフレームワークです。
その違いを比較してみました。
導入のしやすさ
Play Frameworkは、MVCモデルを使用しているため理解がしやすく使用感も一般的です。
Javaを深く知らなくても一定の開発ができる上、Scalaを利用する人にも使いやすい機能になっています。
一方Spring Bootは、MVCモデルは実装されていないためSpring Boot特有の考え方が必要です。
ただし、JavaをベースにしているのでSpring Bootに慣れてしまうと使い勝手は良いといわれています。
セキュリティー
Play FrameworkのセキュリティーレベルはSpring Bootより高いです。
また開発者が意識しなくても、セキュリティー対策を実施してくれる構造になっている点でも有利といえます。
拡張性
Play Frameworkは未だにプラグインの種類は多くありません。プラグイン利用方法などの資料も少ないため、拡張性は低いです。
Spring BootはSTSというSpring専用のIDEが存在するので、拡張性はあるといえます。
Play Frameworkの特徴
では特徴をチェックしていきましょう。
Play FrameworkとMVC
なんといっても軽いことが第一の特徴として挙げられます。Play FrameworkはMVC設計に基づいて作られています。
そのため安価でかつ早い開発が求められるWEBサービスの開発現場では、非常に有効性の高いフレームワークといえるでしょう。
また以前は実行時にコンパイルに時間がかかり、無駄な時間を過ごすこともありました。
しかしPlay Frameworkはコンパイルも改良されて早くなっています。
またメモリも食わないので、開発現場でのストレスが軽減されるほど軽量で高速なフレームワークです。
MVCとは
MVCとは「Model」「View」「Controller」の略です。
Modelはビジネスロジック、Viewはユーザーインターフェース、ControllerはModelからViewへの変換を行うものと定義できます。
これらは独立性があり、簡単にいうとコーダーとデザイナーなどの分業をしやすくしてくれるものです。
また、独立性があることで保守性も高まります。
どこかに不具合があっても、独立しているのでビジネスロジック部分のバグのみを修正すれば良いというのも利点です。
Javaはオブジェクト指向としての代表的な言語
現在主流となっているのがオブジェクト指向です。
そのプログラム言語には以下のものがあります。
- Java
- Ruby
- PHP
- JavaScript
- Swift
- C++
- VBA
その中でもJavaは安定的な人気を誇っているといえるでしょう。
「プログラミング言語実態調査 2018(日経xTECH)」の調査によると、Javaは4番目に位置するほどよく使用されている言語です。
大規模企業などではERPパッケージの導入も進んでいますが、やはりJavaでの基幹システムの構築も根強く残っています。
最近では基幹システムなどの開発現場のみならずWEBアプリやAndroidアプリでも利用されることが多く、再注目されている言語です。
最近注目されてきたScala
ScalaはJavaと高い互換性があり、オブジェクト指向と関数型言語を併せ持つ言語となっています。
有名なアプリとしてはTwitterやChatworkなどの開発に使用されているので、割と身近なアプリに使用されている印象です。
今まではJava開発が主流だった領域についても、今後Scalaが採用されていくといわれています。
その大きな要因は、Javaに比べて簡潔に記述することが可能だからです。
Javaに似た言語かつ簡潔にコードを書けるため、発生バグも少なく修正も楽にできるといえるでしょう。
しかも今後利用率拡大が予想されるScalaですが、Scalaを扱えるエンジニアはまだそう多くないという現状です。
そのため求人検索サイトである「スタンバイ」が発表した言語別年収ランキングでは、求人数が2位に入っています。
年収中央値も600万円と高額であることからも、今後プログラマーとしてのキャリアを考えるのであれば習得したい言語の一つです。
Play Frameworkのインストール手順
Play Frameworkを使用するにはとても簡単にセットアップすることができます。
といっても、実はPlay Framework自体のダウンロードは必要ありません。
順に設定手順を見てみましょう。
セットアップの前提条件
前提条件としてJavaをすでにインストールしていることです。
ない場合はOracleのサイトからダウンロードしてセットアップしましょう。
またPlay Frameworkの特徴ですが、Javaサーバーは不要です。Play Framework自体にサーバーの機能が含まれています。
そのほかにJavaを初めて扱う人や、環境を一から整える人はJDKが必要です。
DJKのバージョンであれば、8以上が必要になります。
2010年現在ではバージョン8が安定的に使用できるので推奨されていることが多いです。
SBTの準備
Play FrameworkはSBTというソフトウェアを用意します。
まずはhttp://www.scala-sbt.orgにアクセスしてください。次にトップページのダウンロードボタンを押下します。
SBTのインストール
ここでは一般的にシステム開発に使用されていることが多いWindowsについて説明します。
ダウンロード画面のmsiファイルをクリックします。
任意の場所にmsiファイルをダウンロードして実行すると、Welcome画面が現れます。
このままNextボタンをクリックしましょう。
続いて利用承諾の画面に遷移します。
問題がなければ「I accept the termse in the License Agreement」の左にあるチェックボックスにチェックを入れてください。
Nextボタンをクリックします。
続いてインストール内容とインストール場所の指定を行います。特に問題がなければデフォルトで進めて構いません。
インストール開始の画面に遷移し、「Install」ボタンをクリックすることでインストールが始まります。
インストールが完了すると完了画面に映るので、「Finish」ボタンをクリックしてインストールを完了させてください。
以上でSBTのインストールは完了です。
これでPlay Frameworkを利用する準備が完了しました。
SBTのインストールをするだけで、Play Frameworkそのものはインストールしていません。
不安に思うかもしれませんが、先に述べた通りPlay Frameworkのインストールは必要ないのです。
これもPlay Frameworkを使うのが簡単で初心者でも扱いやすい点の一つとなります。
特に大規模プロジェクトなどでコンピューターを何台も用意することもあるでしょう。そのような場合、非常に環境設定が楽になります。
この点もPlay Frameworkの魅力です。
Play Frameworkの使い方
それでは具体的にPlay Frameworkを用いたWEBアプリケーションの作り方を見ていきましょう。
Play Frameworkの利用のためにはプロジェクト作成が必要
Play Frameworkでは、開発に使用するファイルやライブラリをまとめる「プロジェクト」が必要です。
そこで、まずはプロジェクトの作成を行うことから始めましょう。
プロジェクトの作成はSBTにコマンドを打つことで簡単に作成されます。
プロジェクトの作成方法
まずコマンドプロンプトを起動し、プロジェクトを配置する場所に移動してください。
これはcdコマンドで移動できます。
JavaでのWEBアプリケーション開発の場合は以下のコマンドに移動させてください。
- sbt new playframework/play-java-seed.g8
ScalaでのWEBアプリケーション開発の場合はこちらです。
- sbt new playframework/play-scala-seed.g8
実行後はしばらく時間がかかります。その後「this template generates a Play Scala project」という文が出力されます。
その下にJavaの場合は「name [play-java-seed]:」Scalaの場合は「name [play-scala-seed]:」と表示されます。
名前を変えたい場合はコロン「:」の後に続けて、わかりやすいプロジェクトファイル名を入力して名前を変更してください。
これでプロジェクトの作成は完了です。
オーガニゼーションの入力
プロジェクトが作成されると続いてオーガニゼーションの入力をします。
プロジェクト作成と同様にコロン「:」の後にオーガニゼーション名(組織名)を入れましょう。
これはアプリに割り当てるためのパッケージを指定するものです。
その後はversionの確認が出力されるのでそのままEnterで進めて問題ありません。
プロジェクトの実行
前述したようにPlay Frameworkにはサーバー機能が含まれているので、その場で動作確認することができます。
まずcdで作成したプロジェクトに移動し「sbt run」コマンドで実行してください。
デフォルトで「Welcome to Play!」のテキストがプロジェクトファイルに設定されています。
作ったページのアドレスにアクセルすると、Webページに「Welcome to Play!」が出力される筈です。
その文字が出たら設定は問題ありません。
このようにプロジェクトファイルを利用することで、簡単にPlay Frameworkが利用できるようになります。
開発環境について
開発環境としてはJavaの開発現場で多く使われているEclipseも一緒に使用可能です。
ただしPlay Frameworkで作成したプロジェクトを、Eclipseで直接使うことはできません。
SBTでPlay Frameworkのプロジェクトを作成し、Eclipseプロジェクト変換をして使用することができます。
まとめ
このように、最近注目のPlay Frameworkは簡単に導入することができます。
ここでPlay Frameworkについて改めてまとめると
- Java/Scaleの両方の言語を扱えるフレームワークである
- 導入が簡単なうえ、動作も軽い
- またメモリ使用量が少ない
- Javaサーバーが不要でコンパイルも安易に出来る
といった特徴があります。
Play Frameworkを利用することで品質確保や保守運用性を向上させることができるといえるでしょう。
特にJavaもScalaも扱う際には適したプラットフォームです。
以上のことから、Play Frameworkは選択肢として十分な機能を兼ね備えたWEBアプリケーションプラットフォームであるといえます。
扱いに時間がかからないプラットフォームなので、特に短納期での開発が必要な現場ではオススメしたいプラットフォームです。