2017年はVaporを使ってSwiftでWeb開発

こんにちは、サーバーサイドエンジニアのmarnie-eureです。
この記事はEureka Advent Calendar 2016 8日目の記事です。

12月ですね

早いもので、2016年ももう終わりですね。
私はと言うと、Swiftを勉強したものの、使う機会がないまま1年が過ぎました。
今の彼氏(golang)は優しいんだけど、やっぱり昔の彼氏(Swift)も忘れられない!
サーバーサイドエンジニアだってSwiftを書きたいんや!
そんな貴方のためにVaporの紹介をしたいと思います。

Vaporって?

VaporはSwift製のWebフレームワークです。
PHPで人気のあるLaravelを意識して設計されているようで、Laravelユーザーなら馴染みやすいようです。

deploy可能な環境は以下の通りです。
Heroku用のbuild packも公開されてますので、
気楽に試すならHerokuが良さそうですね。

Digital Ocean
Docker
Heroku
AWS
等

インストール

公式サイトのGETTING STARTEDを参考に作業を行います。

必要な環境

OS X El Capitan 10.11.5 or later(Xcode8のインストールの為)

Xcode8のインストール

  • AppStoreからXcode8をインストールしてください。
$ curl -sL check.vapor.sh | bash
Compatible

toolboxをinstall

VaporのCLIToolをインストールします。

$ curl -sL toolbox.vapor.sh | bash

Compatible
Downloading...
Compiling...
Installing...
Vapor Toolbox v1.0.3 Installed

プロジェクトを作成する

  • vaporコマンドでvapor用のプロジェクトを作成できます。
$ vapor new test
Cloning Template [Done]

作成されたディレクトリでvapor xcodeコマンドを実行すると

Xcodeで開く事が出来るようになります。

$ vapor xcode
No Packages folder, fetch may take a while...
Fetching Dependencies [Done]
Generating Xcode Project [Done]
Select the `App` scheme to run.
Open Xcode project?
y/n>y
Opening Xcode project...

動かしてみる

vaporコマンドでbuild。

$ vapor build
Fetching Dependencies [Done]
Building Project [Done]

serverを起動

  • http://localhost:8080/ にアクセスするとブラウザでVaporが起動していることが確認できます。
$ vapor run serve
Running test...
No preparations.
Server 'default' starting at 0.0.0.0:8080

ルーティングの追加とHelloWorld

  • Vaporに含まれているルーター、Dropletを使ってルーティングを追加します。main.swiftに以下を追加
drop.get("hello") { req in
    return "Hello, world."
}

再度ビルド、サーバーを起動して http://localhost:8080/hello にアクセス

Hello, world!

こんな感じに。

触ってみた感想

  • 標準パッケージが結構充実している(ORM,JSON,Validate,Authなど)
  • Laravelと同様にmiddlewareが標準である程度用意されている、登録できて良さげ

middleware

最後に

普段使いしている開発言語がサーバーサイド・クライアントサイドで同じって、
お互いに参入障壁低くなっていいなーと思います。
更新頻度も高いようなので、2017年はSwiftでサーバーサイド開発の風が来るかも…?
年末あたり、Vaporと同じくらい人気を集めているPerfectあたりも触ってみたいですね。

もう少し触ってみて、まずは社内アプリケーションやslackbotのような小さいアプリケーションで試したいですね 🙂

  • このエントリーをはてなブックマークに追加

エウレカでは、一緒に働いていただける方を絶賛募集中です。募集中の職種はこちらからご確認ください!皆様のエントリーをお待ちしております!

Recommend

デザイナーに必要な3つのマーケティングスキルと事例

IT企業の秘書直伝!デキる大人の会食セッティング法♡