Server Side Swiftを試してみたいけど、環境づくりが面倒だなぁと思って敬遠していたのですが、Cloud9を使えば簡単に動かせることが分かりました。
VaporはMac環境にも対応しているので(Xcodeでコーディングもできます!)、Ubuntu+OSS版Swiftが必須というわけではないのですが、後々HomebrewでDBをインストールしたりする環境構築は避けたいと思いました。
とりあえずCloud9で試してみて、もっと「本格的に」となったら、目的に応じた環境構築(Docker等の仮想環境でつくる、Ubuntuの動いているサーバを用意する)をしていったら良いのではないかと思います。
Cloud9をご存知ない方は下記リンクをご参照ください。
プログラミングの開発環境に便利!Cloud9の使い方【Rails・WordPressテンプレートの解説あり】
##Cloud9のうれしい点
- ローカル環境を汚さない
後々ゴミが残ったり、ストレージを消費しないので、お試しにピッタリ - DBが用意済み
Cloud9はPostgreSQLがインストール済み - 環境がコピーできる
セットアップした状態を残しておいて、失敗したらすぐに消してやり直しできる - 一応無料
サンプルコードを動かすだけならPublicで構わないので、無料で使える
##セットアップ手順
Cloud9のアカウントは取得済みとします
###Swift3のインストール
Signin後、Dashboardからworkspaceを作成します。
[Create a new workspace] をクリックします。
Workspaceに名前をつけます。
ex. swift3
Blank を選択し、[Create workspace] をクリックします。
少し待ちます。Containerがセットアップされているようですね。
Workspaceが作成できました。
Ubuntu14.04です。
パスは /home/ubuntu/workspace/ となっていました。
この環境にSwift3をインストールします。
git clone https://github.com/keygx/swift3-ubuntu14-installer.git
これはSwiftセットアップ用のスクリプトで、Ubuntu14.04にSwift3.0.2をインストールできます。
ディレクトリを移動して、
cd swift3-ubuntu14-installer
スクリプトを実行します。
./install_swift.sh
途中質問された場合は、適宜回答ください。
これはインストールにかかるディスク容量について訊かれているので Y で
しばらく待つとインストールが終わります。
いわれたとおり
source ~/.profile
します。
swift -v
Swift3.0.2がインストールできました。
Swift3環境を残しておきたいので、一端Dashboardに戻ります。
右上にあるCloud9のロゴをクリックします。
###Vaporのインストール
Dashboardで先ほどセットアップしたSwift3環境のWorkspace「swift3」を [Clone] します。
Workspaceに別の名前をつけます。
ex. swift3-vapor
新たに別のWorkspaceとして、Swift3セットアップ済み環境が起動します。
ここにVaporをインストールします。
curl -sL swift.vapor.sh/ubuntu | bash
さらに Toolboxをインストールします。
curl -sL toolbox.vapor.sh | bash
インストールが完了したら、この環境残しておくために、Dashboardに戻ります。
###Vaporでアプリを作成
vaporインストール済み環境をクローンしてアプリをつくっていきます。
Workspaceに別の名前をつけます。
ex. swift3-vapor-hello
新規にアプリを作成します。
vapor new hello
生成されたアプリのディレクトリに移動し、buildします。
cd hello
vapor build
buildはけっこう時間がかかりますので、気長に待ちましょうw
buildが完了したら、サーバを起動します。
vapor run serve
各Workspaceは下記のようなURLがふられているようで、
https://[workplace]-[username].c9users.io/
このサンプルだと
https://swift3-vapor-hello-keygx.c9users.io/ にてアクセスできます。
以上で、SwiftのセットアップからVaporのインストール、アプリの起動までができました。
私はこの後、公式の ドキュメント を写経してみたり、こちらの SCREENCAST の内容を参考にして勉強しています。
##補足
###Cloud9のDB
DBを使いたくなった際は、下記のページが参考になりました。Cloud9はPostgreSQLがすぐに使えるようになっています。
Cloud9でのPostgreSQL
https://community.c9.io/t/setting-up-postgresql/1573
###Workspaceの使い方
この記事の通りに進め場合、Workspaceは
- swift3 (Swift3)
- swift3-vapor (Swift3 + Vapor)
- swift3-vapor-hello (Swift3 + Vapor + helloアプリ)
の3つとなります。
Vaporの勉強をすすめていく際は、お題ごとに swift3-vapor を [Clone] していくのが良いかなと思います。また、Vapor以外のFrameworkを試したくなったら、swift3 を [Clone] して… とすれば、別の環境もつくることができます。