序章

Swift は、Appleのプログラミング言語です。 それは速く、安全で、そして現代的であり、そしてそれは言語を支持する巨大なコミュニティを持っています。 Swiftは主にiOSおよびmacOSアプリケーションの開発に使用されますが、Swift 3以降、サーバー側のアプリケーション開発にも使用できます。

Vapor は、人気のあるサーバー側のSwiftWebフレームワークです。 Swiftと同様に、Vaporは高速で最新のものであり、他のプログラミング言語のWebフレームワークに見られる機能の多くをサポートしています。

このガイドでは、Ubuntu16.04にSwiftとVaporをインストールします。 次に、Vaporのテンプレートの1つを使用して簡単なWebアプリケーションを作成することにより、セットアップをテストします。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • sudoにアクセスできるroot以外のユーザーがいる1つのUbuntu16.04サーバー。 これを設定する方法は、初期サーバー設定ガイドで学ぶことができます。
  • サーバーにGitがインストールされています。 GitはすでにUbuntu16.04にインストールされているはずですが、インストールされていない場合は、sudo apt-get install gitを実行してください。

ステップ1—Swiftのインストール

Vapor Webアプリケーションを構築して実行できるようにするには、最初にSwiftをインストールする必要があります。

まず、システムに最新のパッケージリストがあることを確認します。

  1. sudo apt-get update

次に、clangといくつかのPython2.7コンポーネントを含むSwiftの前提条件をインストールします。

  1. sudo apt-get install clang libicu-dev libpython2.7

その後、最新のSwiftバイナリをダウンロードします。 これはaptからは利用できませんが、Swiftダウンロードページまたはwgetから手動でダウンロードできます。

  1. wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz

次に、ダウンロードが破損または改ざんされていないことを確認します。 SwiftのPGPキーをキーリングにインポートします。これは、署名ファイルの検証に使用されます。

  1. gpg --keyserver hkp://pool.sks-keyservers.net \
  2. --recv-keys \
  3. '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \
  4. '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F' \
  5. 'A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6' \
  6. '5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235'

次の出力が表示されます。

Output[
... gpg: key 412B37AD: public key "Swift Automatic Signing Key #1 <[email protected]>" imported gpg: key 21A56D5F: public key "Swift 2.2 Release Signing Key <[email protected]>" imported gpg: key 91D306C6: public key "Swift 3.x Release Signing Key <[email protected]>" imported gpg: key 71E1B235: public key "Swift 4.x Release Signing Key <[email protected]>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 4 gpg: imported: 4 (RSA: 4)

キーをインポートした後、ダウンロードしたリリースの署名ファイルをダウンロードします。

  1. wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig

この署名ファイルを確認するには、次のコマンドを実行します。これにより、次の出力が生成されます。

  1. gpg --verify swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig

次の出力が表示されます。

Output
gpg: assuming signed data in `swift-4.0-RELEASE-ubuntu16.04.tar.gz' gpg: Signature made Wed 20 Sep 2017 01:13:38 AM UTC using RSA key ID 71E1B235 gpg: Good signature from "Swift 4.x Release Signing Key <[email protected]>" Primary key fingerprint: 5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235

次のような警告が表示される場合があります。

Output
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.

これは、インポートしたSwiftキーが、明示的に、またはキーリングにインストールした他のキーによって、まだ信頼されていないことを意味します。 これらのメッセージは無視してかまいません。 ただし、別のエラーが発生した場合は、Swiftバイナリを再ダウンロードする必要があります。

これで、実際にSwiftをインストールできます。 次のコマンドを実行して、前にダウンロードしたバイナリを抽出します。

  1. tar xzf swift-4.0-RELEASE-ubuntu16.04.tar.gz

次に、Swiftツールチェーンをパスに追加して、システム全体でswiftコマンドを実行できるようにします。

  1. export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

このコマンドを入力すると、現在のシェルセッションのパスにswiftコマンドのみが追加されます。 今後のセッションで自動的に追加されるようにするには、.bashrcファイルに追加してください。

.bashrc ファイルを開きます。

  1. nano ~/.bashrc

ファイルの最後に次の行を追加します

〜/ .bashrc
. . .
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

ファイルを保存して終了します。

すべてが機能することを確認するには、swiftコマンドを実行します。

  1. swift

Swift REPLが表示されます。これは、すべてが正しく機能していることを示しています。

Output
Welcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance. 1>

すべてが正しく機能していることを再確認しましょう。 1から5までのすべての整数を合計するこのプログラムを入力してください。 各行をREPLに入力し、各行の後にENTERキーを押します。

var x = 0
for i in 1...5 { 
    x += i 
} 
x

REPLは、計算結果を表示します。

Output
$R0: Int = 15

CTRL+DでSwiftREPLを終了します。 Swiftがインストールされたので、Vaporをインストールする準備が整いました。

ステップ2—Vaporのインストール

Vaporをインストールするには、Vaporの公式パッケージリポジトリをサーバーのパッケージリストに追加するスクリプトをVapor開発者からダウンロードして実行します。 次に、aptを使用して最新バージョンのVaporをインストールします。

一般に、他の人からダウンロードしたスクリプトを最初に検査せずに実行することは、適切なセキュリティ慣行ではありません。 まず、curlコマンドと-oスイッチを使用してインストールスクリプトをサーバーにダウンロードし、ローカルファイル名を指定します。

  1. curl -sL apt.vapor.sh -o apt.vapor.sh

lessコマンドを使用して、このスクリプトを検査します。

  1. less apt.vapor.sh

インストールスクリプトの内容を確認したら、スクリプトを実行してリポジトリを追加します。

  1. bash ./apt.vapor.sh

sudoパスワードの入力を求められます。 スクリプトが新しいパッケージソースを追加できるように入力します。

スクリプトが終了したら、vaporパッケージとその依存関係をインストールできます。

  1. sudo apt-get install vapor

Vapor開発者が提供する別のスクリプトを使用して、Vaporが正常にインストールされたことを確認できます。 もう一度、スクリプトをダウンロードして検査し、実行します。

  1. curl -sL check.vapor.sh -o check.vapor.sh
  2. less check.vapor.sh
  3. bash ./check.vapor.sh

Vaporが正常にインストールされたことを示す次の出力が表示されます。

Output
✅ Compatible with Vapor 2

SwiftとVaporの両方がインストールされたので、最初のVaporアプリを作成できます。

ステップ3—Vaporアプリを作成する

アプリを作成するには、Vaporがデフォルトで提供するテンプレートを使用します。 webテンプレートを使用すると、ユーザー向けのWebアプリケーションを作成できます。

このテンプレートは、Gitを使用していて、名前とメールアドレスでGitを構成していることを前提としています。 まだ行っていない場合は、Gitを構成するように指示するエラーメッセージが表示される場合があります。 このメッセージを無視しても問題ありません。または、次のコマンドを実行して詳細を入力してください。

  1. git config --global user.email "[email protected]"
  2. git config --global user.name "Your Name"

このテンプレートからWebアプリを作成するには、次のコマンドを実行します。

  1. vapor new demo --template=web

スクリプトは、指定した名前で新しいディレクトリに新しいアプリケーションを生成します。

Output
Cloning Template [Done] Updating Package Name [Done] Initializing git repository [Done] ... _ __ ___ ___ ___ \ \ / / /\ | |_) / / \ | |_) \_\/ /_/--\ |_| \_\_/ |_| \ a web framework for Swift Project "demo" has been created. Type `cd demo` to enter the project directory. Use `vapor cloud deploy` to host your project for free! Enjoy!

完全なWebアプリの代わりにAPIを作成する場合は、apiテンプレートをvapor new demo --template=apiとともに使用できます。

Webテンプレートソースコードとapiテンプレートを見て、それらがどのように機能するかを確認してください。

アプリを実行して、実際の動作を見てみましょう。

ステップ4—Vaporアプリケーションをコンパイルして実行します

PythonやRubyのアプリケーションとは異なり、Swiftアプリケーションはコンパイルする必要があります。 つまり、Vaporアプリを実行する前に、ビルドプロセスを実行する必要があります。

まず、新しく作成したdemoフォルダーに切り替えます。

  1. cd demo

次に、vapor buildコマンドを実行して、Webアプリケーションをコンパイルします。

  1. vapor build

初めてアプリケーションをビルドするとき、プロセスはいくつかの依存関係をフェッチします。 これらをキャッシュし、将来このステップをスキップして、ビルドプロセスを大幅に高速化します。

ビルドプロセスが完了したら、次のコマンドを使用してアプリを実行します。

  1. vapor run serve

サーバーが起動し、次の出力が表示されます。

Output
Running demo ... ... Starting server on 0.0.0.0:8080

安全でないハッシュキーと暗号キーに関する警告が表示されますが、デモを試している間は無視してかまいません。 独自のアプリを作成するときは、警告の指示に従ってください。

Webブラウザーを開き、http://your_server_ip:8080にアクセスして、動作しているVaporアプリのウェルカムページを確認します。

結論

Swiftコミュニティは着実に成長しており、参加する方法はたくさんあります。 Swiftは主にネイティブiOSおよびmacOSアプリの構築に使用されますが、LinuxプラットフォームでのSwiftは増加傾向にあります。 Swiftの詳細については、Appleの無料の電子書籍である The Swift ProgrammingLanguageを参照してください。 Vaporの詳細については、ドキュメントをご覧ください。