VaporでサーバーサイドSwiftを試してみた


サーバーサイドSwiftとは

プログラミング言語であるSwiftは、2014年のWWDCで大々的に発表され、2015年にはオープンソース化されました。
Objective-Cの後継として、macOS・iOS・tvOS・watchOSのアプリ開発に活用されていますが、サーバーサイドの開発でも使えるようにしようという取り組みがおこなわれています。

サーバーサイドでの開発といえば、PHPやPythonやRubyなどなど、いろいろな言語があります。しかし、Swiftでも開発できるようになると、ひとつの言語でアプリもサーバーサイドも開発ができるようになります。

Swift大好きなわたしにとっては、夢のような話です。

サーバーサイドSwiftフレームワーク

サーバーサイドSwiftを実現するためのフレームワークはいくつかあります。

有名なところではPerfectKituraVaporなどがあります(ほかにもたくさんあるので、興味があるかたは「サーバーサイドSwift フレームワーク」で検索してみてください)。

今回は、VaporをつかってmacOSでHello, World!をしてみます(公式ドキュメントのInstall on macOSを参照しながら進めていきます)。

Xcodeをインストールしよう

まずは、Xcodeをインストールしましょう。

VaporをmacOSで使うためには、Xcode 9.3以上が必要です(Xcode 9.3をインストールするためには、macOSをHigh Sierra以降にする必要があります)。Mac App Storeか、Developer CenterでXcodeをダウンロードしてインストールしてください。

インストールを完了するためには、Xcodeを開く必要があるので注意してください。

インストールが完了したかをチェックします。ターミナルを開いて

swift --version

を実行してください。
次のようなメッセージが表示されます。

Apple Swift version 4.1.0 (swiftlang-900.0.69.2 clang-900.0.38)
Target: x86_64-apple-macosx10.9

Vaporは、Swift 4.1以降が必要なので、 Apple Swift version の数字が 4.1.0 以降になっていればオッケーです。

Vaporをインストールしよう

次に、Vapor ToolboxをつかってVaporをインストールします。

Vapor Toolboxは、新しいプロジェクトをつくるためのCLIツールが含まれています。ターミナルを開いて

brew install vapor/tap/vapor

を実行してください。

Homebrewをインストールしていなければ、brew.shでインストールしてから上のコマンドを実行してください。

インストールが完了したかをチェックします。ターミナルを開いて

vapor --help

を実行してください。
次のように、Vaporのコマンド一覧が表示されます。

Usage: vapor command

Join our Slack if you have questions, need help,
or want to contribute: http://vapor.team

Commands:
       new Creates a new Vapor application from a template.
           Use --template=repo/template for github templates
以下略

これでVaporのインストールが完了しました。

新しいプロジェクトをつくろう

準備ができたので、いよいよHello, World!に進みます。
そのために、新しいプロジェクトをつくって、ビルドして、実行するという手順を踏みます。

まずは、新しいプロジェクト「Hello」をつくりましょう。

ターミナルを開いて、プロジェクトをつくりたいディレクトリに移動してから、Vapor Toolboxのnewコマンドを実行します。

vapor new Hello

上の例では「Hello」がプロジェクト名です。公式ドキュメントによると、プロジェクト名は「HelloWorld」や「MyProject」のようにPascalCaseにする必要があるそうです。

インストールが完了すると、ターミナルにVaporのロゴが表示されます。

懐かしのX-1やPC-8801のゲームを思い出して、ほっこりしました。

さて、それではターミナルで次のコマンドを入力して、

cd Hello

Helloプロジェクトのディレクトリに移動しましょう。

Xcodeプロジェクトをつくろう

newコマンドでプロジェクトをつくっただけだと以下のような状態なので、Xcodeで開くことはできません。

Xcodeで開けるようにするために、Xcodeプロジェクトをつくりましょう。

ターミナルを開いて、Vapor Toolboxのxcodeコマンドを実行します。このコマンドを実行することで、iOSアプリのように、Xcodeでソースを修正したりビルドや実行することができるようになります。

vapor xcode

プロジェクトの作成が完了すると

Open Xcode project?

Xcodeプロジェクトを開きますか?
と聞かれるので

y/n> y

yを入力してreturnすると、

自動的にXcodeが起動して、Helloプロジェクトが開きます。

ビルドして実行しよう

次はビルドして実行します。

XcodeのSchemeでRunを選択して、Deployment TagetはMy Macを選択してから、三角の実行ボタンをクリックします。
実行されるとデバッグエリアに次のメッセージが表示されます。

Server starting on http://localhost:8080

ブラウザーでつないでみよう

ブラウザーを起動して、次のURLにアクセスします。

localhost:8080/hello

「Hello, world!」が表示されています。

おめでとうございます!
はじめてのVaporアプリをつくって、ビルドして、実行することができました🎉