フリーランスエンジニアのお役立ちコラム

Play Framework案件のイマがわかる!知って見つかる最適案件

スキル
2018年07月13日

システム開発において、開発言語だけですべてを開発すること、例えばJavaならJavaで全機能を作るといったことはしません。DBアクセスや画面描画といった「仕様に関係しない共通機能」は何らかのフレームワークを使うのが普通です。
そして、言語ごとに複数のフレームワークがあります。その中でも時代とともに隆盛に乗るフレームワークがあれば、逆にピークを迎えて廃れるものもあるのです。
フリーランスへの転身や転職を予定している方、将来に不安を感じている方には、フレームワークはとても大きな問題ですよね。自分の使えるフレームワークの流行り度合いによって案件の幅が変わるのですから!
よって、本記事ではJavaのフレームワーク「Play Framework」をピックアップして、Play frameworkを「求人案件」という観点で調査してみました。
本記事の執筆にあたっては、大手のIT転職サイト2社と、ポテパンを含むフリーランス・副業向けサイト5社の計7社を徹底調査しました!

そもそもSpring Frameworkとは




Play Frameworkとは、JavaをベースとしたWebアプリケーション開発フレームワークです。Java系フレームワークといえば他にSpringやStrutsがありますが、それらと何がちがうのか、際立った特徴を解説します。

Play Frameworkの生い立ち

Playは初版(つまりVer.1.0)が発表されたのが2007年という、比較的新しいフレームワークです。2018年5月に最新版の2.6.15がリリースされました。

Play Frameworkの開発環境

フレームワークそのものはOSSで、GitHub上で公開されています。
公式にサポートしているIDE(統合開発環境)は、Eclipse、IntelliJ、NetBeans、ENSIME(Scalaのコーディングでよく使われるエディタ)です。

他にはないPlay Frameworkの特徴

Play FrameworkはJavaのWeb開発フレームワークというのが一般的な認識です。Javaの完全互換なのですが、実はScalaも対応しています。むしろPlay Frameworkを使うならScalaを使った方がよいでしょう。
Play Frameworkは内部的にはScalaで実装されており、もしこれから学習に取り組むという方は、これを機会にScalaでのコーディングにチャレンジしてはいかがでしょうか?

Play Frameworkをほんの少し見てみる

開発者の方を対象に、ほんの少しだけPlay Frameworkに触れてみましょう。
技術解説というより雰囲気をつかむことを目標とするので、手っ取り早く公式サイトのダウンロードページから、サンプルプロジェクトをダウンロードしたものをそのまま使いましょう。
ダウンロードしたファイルを解凍して、できあがったフォルダごと適当な場所に移動し、以下のコマンドを実行します。
$ ./sbin run

しばらく放置するとコマンドラインのスクロールが止まるので、ブラウザで「http://localhost:9000/」へアクセスすると・・・



もう画面が出ました。
あとは、特に他のMVCモデル型フレームワークの経験のある方は察しがつくのではないでしょうか。
上のページのソースは/app/controllerディレクトリにあります。その他、/app/viewsにはページのソース、さらに/appと同階層に/testのディレクトリ・・・そう、いつものあのパターンです。
それもそのはず、Play FrameworkはRuby on railsやDjangoの影響を受けたフレームワークなのです。よってこの2つのフレームワーク、さらに何らかのMVCフレームワークを学習したことのある方なら、感覚的に扱いやすいといえるでしょう。
基本的にJava8以上のバージョンがセットアップされていれば、Play Frameworkを動かすことは簡単なのです。また、公式サイトには特定用途向け、例えばチャットルームやファイルのアップロード、RestAPIといったサンプルプロジェクトが用意されています。
Play Frameworkを使ったことのない方でも、ある程度のサンプルは入手可能なので便利ですね!

Play Frameworkエンジニアの仕事内容

各種サイトで「Play Framework」というキーワードで求人を検索し、ヒットした内容からいえることを見てみましょう。

「Play Framework」というキーワードで調査

Play FrameworkそのものがWebシステム開発を主目的とした開発フレームワークなので、やはりおのずとWeb周りやフロント開発の案件が目立ちます。ただし、併記されているものをみれば、より傾向が分かります。
HTMLやCSS、JavaScript以外で、よく併記されているキーワードは以下です。
  • Seasar
  • Struts
  • Scala
Seasarはすでに開発が終了したフレームワークです。Struts1系も開発が終了しています。SeasarとStrutsで構築されたフレームワークは相当数あります。それらシステムはいまだに現役で稼働しているものが多く、フレームワークが開発終了となったら移行先を選定しなければいけません。

移行先として名前が挙がるものの中に、常にPlay Frameworkがいるのです。理由は簡単で、培ったJavaの経験を活かしたい、イマドキのJavaのWeb開発フレームワークは何か?となったときに名前が挙がるのがPlay Frameworkなのです。
Play FrameworkはJavaでも開発が可能です。また前述のように今なおアップデートされている最新のフレームワークです。となると、移行先として名前が出ても不思議じゃないですよね。
Play FrameworkとSeasarやStrutsが併記されることが多いのは、このような理由からです。
では、Scalaはどうでしょうか?
Scalaというキーワードが併記されていることが多いのは、前述のとおりPlay FrameworkはScalaでも開発可能だからです。現在のところScalaで開発できるフレームワークはそう多くなく、Scalaを使いたい!となったときにはほぼ間違いなくScalaに決まるのです。

Play Frameworkエンジニアの仕事内容 結論

以上をまとめると、Play Frameworkエンジニアの仕事内容の主たるものはWebシステム開発となります。他の言語やフレームワークにない特徴は、StrutsやSeasarで構築されたシステムのリニューアルと、ScalaによるWebシステム開発となるでしょう。

Play Frameworkエンジニアの働き方

Play Framework自体がWebシステム開発フレームワークであることは何度も述べました。ということは、普通のWebシステムエンジニアと、働き方は大きく変わりません。

週5勤務で正社員雇用の案件もありますし、フリーランス向け案件も多数あります。ということは、Play Frameworkが習得できたときは、正社員、フリーランスのいずれでも案件獲得可能ともいえますね。

Play Framework案件は今後減少する?増加する?

今のところ案件が急増する要素はありませんが、急減する要素もありません。堅調な案件数の推移を維持するでしょう。

Scalaが使えるフレームワークが少ない

JavaにはないけどScalaにある機能は、以前多数ありました。しかしJavaのバージョンが8になったとき、新機能が多数投入されて、Scalaでできることがある程度Java8でもできるようになりました。とはいえ、いまだにScalaでできてJavaでできないことは多数あります。
ということは、生産効率の向上を目指すとすれば、やはり学習コストを考えてもScalaを選択する意味はあります。
そうなったとき、Scalaが使えるフレームワークはあるにはあるものの、依然としてマイナーな存在です。

Scalaが使えるフレームワークとして、Scalatra、Skinny Framework、Lift、Slickなどがありますが、いずれか一つでもみなさんが聞いたことがあるものはありますか?
そう考えたとき、Scalaを導入するとなるとどうしてもPlay Frameworkに軍配が上がるのです。

いまだに稼働し続ける旧時代のフレームワーク



旧時代に一世風靡したフレームワークたち、StrutsやSeasarがあります。
Struts1系は2013年4月に開発が終了しています。Struts2系はまだ現役でバージョンアップされています。Seasar2は2016年9月で開発が終了しています。これらのフレームワークには今まで多数の脆弱性が発見されており、実被害も出ています。
開発が終了している、セキュリティ的な問題があるかもしれない、そうなるとフレームワークの移行が急務です。
ところが、企業内LANで使用するから安全、規模が大きすぎるから移行は無理、といった理由から、いまだにStrutsやSeasarで稼働しているシステムは多数あります。
さすがにこれ以上継続して使用するのは無理、ということで、フレームワークの移行が徐々に進んでいます。いきなり刷新は無理、という場合は当面はサブシステムごとに移行して、最終的には全て移行、という形をとることもあるでしょう。
そうなると、古いフレームワークが完全になくなるまでは、移行候補としてPlay Frameworkの需要は当面あるといえるのです。

結論:需要はまだ伸びる可能性がある

以上より、旧時代のフレームワークの乗せ替え候補として上がる、Scalaの使えるフレームワークである、などを考えるとPlay Frameworkの需要はまだ伸びる可能性があるといえます。

Play Frameworkのフリーランス求人案件トレンド

やはり何といっても、Play FrameworkのメインはWebシステム構築です。案件はほぼすべてWebシステム構築でした。
公式サイトではBigDataに対応していると書いてはいましたが、「BigDataの解析をPlay Frameworkでやっています」と明言している案件はありませんでした。
海外の情報を確認しても、Play FrameworkでBigDataの解析をしたという情報は少なく、公式サイトが語るようにBigData解析ならPlay!とはならないようです。

Play Framework求人案件の単価相場は?

Amazon S3の気になる使用料は?従量課金制に対して解説!

Play Frameworkの求人案件における、単価相場を調査しました。
規模の小さいスタートアップ企業は、PHPやRubyを採用する傾向があります。ところがPlay Framework、さらにはScalaを使って生産性の高い開発をしようと考えるような企業は、そこそこの規模の企業です。現に本記事を執筆するときの調査では、IT業界では誰でもが知っているような有名企業の案件も見つかりました。
Play Frameworkの公式サイトでは、Linkedinやサムスンも採用しているということです。
さて、そんなPlay Frameworkの単価相場とはどんな感じでしょうか?

実務未経験

独学もしておらずスクールにも通っていないというような「完全未経験」では、残念ながら案件を獲得するのは不可能です。
調査した結果、Play Frameworkを使うということは、ほとんどの案件が開発言語としてScalaを採用しています。つまり、普通のJavaエンジニアですら敷居が高いのです。そんな中、完全未経験の方が案件獲得するのはほぼ不可能ということになります。

実務経験半年

350万円(週5勤務)

実務経験1年間

400万円(週5勤務)

実務経験2年間

450万円(週5勤務)

実務経験3年間以上

600万円(週5勤務)

実務経験5年間以上

800万円(週5勤務)

Play Framework案件で年収・収入を上げるポイント

Play Frameworkと必ず併記されるといっても過言ではないキーワードが「Scala」です。つまり、Play Frameworkが使える=Scalaが使えるという等式が成り立つほどなのです。よって、単価を上げるにはまずScalaの習得は必須だと思った方がよいでしょう。
また、Play FrameworkはWebシステム開発に多く使われるという特性から、コーディングからインフラ周りまで理解しているフルスタックエンジニアが求められる傾向にあります。つまりPlay Frameworkができる、というだけでは物足りないのです。
一例として「Playで作ったプロジェクトを、HerokuやAWSにアップして動かせます」といった、Play Frameworkプラスアルファの何かを身に付けるようにがんばってください。

Play Framework案件で週2~3日常駐はあるの?

ほぼ無いと考えた方がよいでしょう。
Play Frameworkでヒットする案件は、ほぼすべて週5勤務かつ常駐でした。PlayがというよりJavaの開発そのものに、規模が大きく複雑なものが多く、週に2〜3日でできるものがないのです。その影響を受けているのでしょう。

Play Framework案件で在宅ってあるの?

調査した限りでは見当たりませんでした。

Javaの開発そのものが複雑なので、仕事を切り出して在宅で、という案件はありませんでした。フリーランスや正社員案件に限らず、副業案件ですら在宅でのPlay Framework案件はありませんでした。
よって本当に在宅を重視するのなら、Play Frameworkを使っている、かつ会社として在宅を勧めている企業に入社するしかなさそうです。

まとめ

Play Frameworkとはそもそも何なのか、また求人という観点で見たときどうなのかを解説しました。求人や案件をお探しの方、本記事をぜひ参考にしてみてください。
他の人気カテゴリーを見てみる