6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VaporAdvent Calendar 2018

Day 1

Swift製Webフレームワーク Vaporの紹介2018

Last updated at Posted at 2018-11-30

Vaporとは

Vaporは、Swift製のWebフレームワークです。
公式URLは https://vapor.codes/ で、Vapor 本体のリポジトリ(https://github.com/vapor/vapor) には 

Vapor is a web framework for Swift.
It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project. 

と説明が書いてあります。
スター数も多く(2018年12月現在1万5千程度)、これからが楽しみなフレームワーク&コミュニティです。
今回はVaporアドベントカレンダー2018の初日として、インストールとHelloWorldをしてみようと思います。

環境構築

for MacOS

公式(https://docs.vapor.codes/3.0/install/macos/)

Xcode(9.3 以上)が必要なのでApp Storeからダウンロードします。(https://itunes.apple.com/us/app/xcode/id497799835?mt=12)
また最新のVapor3には Swift 4.1 以上が必要なので、バージョンを確認します。

$ swift --version
Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1)
Target: x86_64-apple-darwin17.7.0

次にVaporのプロジェクト作成が簡単にできるVapor ToolBoxをインストールします。

$ brew install vapor/tap/vapor

Vapor ToolBoxがインストールできたことを確認します。

$ vapor --help

for Ubuntu

公式(https://docs.vapor.codes/3.0/install/ubuntu/)
Vaporは以下のバージョンのUbuntuでサポートされています。
最新のUbuntu18ではサポートされていないので気をつけてください。

Version Codename
16.10 Yakkety Yak
16.04 Xenial Xerus
14.04 Trusty Tahr

以下のスクリプトでVaporのリポジトリをAPTで参照できるようにします。
このスクリプトはサポートされていないバージョン以外で動かすとエラーが出てしまいます。

eval "$(curl -sL https://apt.vapor.sh)"

リポジトリの参照をマニュアルでやりたい方はこちらのコマンドを実行してください。

wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
sudo apt-get update

APTを使ってswiftとvaporをインストールします。

$ sudo apt-get install swift vapor

インストールされたことを確認します。

$ swift --version
$ vapor --help

HelloWorld

環境構築が完了したので早速プロジェクトを作成します。
プロジェクトの作成には new コマンドを使用します。

$ vapor new リポジトリ名

また、RailsのAPIモードのようにフラグをつけることでテンプレートを選ぶことができます。
今回は Web テンプレートを使用してプロジェクトを作成します。
フラグを付けずにプロジェクトを作成するとAPIテンプレートで作成されます。

Name Flag Description
API --template=api Fluentデータベースを使ったJSON API
Web --template=web Leafテンプレートを使ったを含むHTMLウェブサイト
Auth --template=auth-template Fluent DBとAuthを使ったJSON API

今回はmyAppプロジェクトをWebテンプレートで作成します。

$ vapor new myApp --template=web

プロジェクト名のディレクトリが作成されれます。
ディレクトリの中に入り、 build コマンドでビルドします。

$ cd myApp
$ vapor build

ビルドが完了したら run コマンドでアプリを実行します。

$ vapor run

ブラウザで http://localhost:8080/ にアクセスすると起動が確認できます。

vapor.png

おまけ

Vaporのユニークな機能として、Xcodeを使うことができます。
xcodeコマンドで .xcodeproj ファイルが作成されます。

$ vapor xcode

作成された.xcodeproj を開き、iOSのように三角ボタンでビルドすることができます。
ビルドが終わったらrun コマンドでアプリを実行します。

$ vapor run
6
5
3

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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?