LoginSignup
7
6

More than 5 years have passed since last update.

サーバーサイドもswiftで書きたい!!webフレームワーク:vapor編

Last updated at Posted at 2017-02-13

はじめに

swiftがオープンソース化して、サーバーサイドもswiftで書いてみたい!と思っていたけど
開発途中でまだ触るのは早いかな?と様子を見ていました。

そろそろ触ってみるか!と思い立って、とりあえず今勢いが良さそうなvaporを触ってみました。
サクッと使えたのでインストールや基本的な使い方についてメモしておきます。

vaporってなに?

  • swiftのwebフレームワーク
  • phpのフレームワークlaravelに影響を受けている
  • Proudly sponsored by Nodes
  • slackでのサポートあり
  • 2017/2/13現在でgithubのスター数:8700超え

vaporを使うその前に・・・

swiftenvの導入

swiftenvはswiftのバージョン管理ツール

swiftは開発速度や変更点が多いので
バージョン管理して状況に応じて切り替えて使うのがオススメ!

インストール

$ brew install kylef/formulae/swiftenv

環境設定

$ echo 'if which swiftenv > /dev/null; then eval "$(swiftenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile

スナップショットのインストール

https://swift.org/download/#snapshots
上記からスナップショットのURLを取得してくる

$ swiftenv install <スナップショットのURL>

インストール済みスナップショットの確認

$  swiftenv versions 
      DEVELOPMENT-SNAPSHOT-2016-04-12-a 
 * DEVELOPMENT-SNAPSHOT-2017-01-27-a 

「*」は使用中のバージョン

使用するスナップショットの指定

$ swiftenv global <使用するバージョン>

vaporの使い方

インストール

$ brew install vapor/tap/toolbox

プロジェクトの作成

$ vapor new <プロジェクト名>

ビルド

$ cd <プロジェクト名>
$ vapor build

サーバー立ち上げ

$ vapor run serve 

表示確認

http://0.0.0.0:8080/
にアクセスして下記画面が出ればOK

vaporTop.png

その他メモ

Xcodeでソースコード編集したい

$ cd <プロジェクト名> 
$ vapor xcode

設定ファイル周り

  • jsonで記述
  • Configディレクトリ下に置く
  • 環境ごとに設定を変えられる
  • ディレクトリは3種類 production/development/secrets
  • secretsディレクトリはどの環境でも最優先で読まれ、デフォルトで.gitignore対象
WorkingDirectory/
├── Config/
│   ├── server.json
│   ├── production/
│   ├── development/
│   └── secrets/

vaporのコアクラス

Droplet

ルート登録、サーバーの起動、ミドルウェアの追加などを行うVaporのコアクラス

import Vapor
let drop = Droplet()

// your magic here

drop.start()

蒸気(vapor)を取り込んで(import)
雫(droplet)を作る

使用例

Config/server.json
{
  "http": {
    "host": "0.0.0.0",
    "port": 8080
}
Sources/App/main.swift
import Vapor
let drop = Droplet()

let host = drop.config["server", "http", "host"]?.string

まとめ

導入はサクッとできた!
herokuにbuildpackもあるから、実際簡単に何か作りたいときはheroku使うといいかも。
筆者もherokuで試してますが、ビルドがやたら遅い。。
でも開発は活発なようなので今後の発展に期待してます!!

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6