Perfect 導入編

サーバーサイドSwiftフレームワークのPerfectの使い方のメモその1

導入編ではベースとなるプロジェクトを一から作るあたりまで

きっかけ

Perfectがついに1.0になったというのを聞きつけてGitHubのREADMEを見てると、、、

WebSockets & iOS Push Notifications

Perfect now includes a WebSockets server and support for handling your own server-side iOS push notifications.

ってのを発見!

ちょうど、Push通知周りの実験をしたかったこともあり、さっそく手を出すことに〜

手順

下準備

GitHubからPerfectをダウンロードする

ダウンロードしたら適当な場所に展開しておく

Xcodeにテンプレートを追加

  1. ~/Library/Developer/XcodeをFinderで開く
  2. Xcode直下に(無ければ)Templatesというフォルダを作成
  3. そのTemplates直下に(無ければ)Project Templateというフォルダを作成
  4. ダウンロードしておいたPerfectのプロジェクトの中(Perfect-master/Extras/Xcode Templates/Perfect/)にあるPerfect Server Framework.xctemplateのフォルダを丸ごとコピー
  5. 3で作ったフォルダに4のフォルダを貼り付け

プロジェクトの作成

ワークスペース名:SmapleBasePerfect
プロジェクト名:SampleServer

で作成する前提での手順

ワークスペースの作成

  1. XcodeのメニューのFile-New-Workspace...を選択
  2. ワークスペース名と保存先のフォルダを選択(作成)してSave
    (ワークスペースはプロジェクトと違ってフォルダは自動作成されないので注意)

自動で空のワークスペースの画面が開かれるので、そのままの状態で次の手順へ

プロジェクトの作成

  1. XcodeのメニューのFile-New-Project...を選択
  2. 左側のOS X-Project Templateの中からPerfect Server Frameworkを選択してNext(下図)
  3. プロジェクト名などを適宜入力してNext
    (プロジェクト名はワークスペースと同じにできない)
  4. Add to:でワークスペース名を選択する
  5. 保存先を選択してCreate

デフォルトで下のようなプロジェクトが生成される

Perfectを追加

  1. ダウンロードしておいたPerfectのプロジェクト直下にあるPerfectLibとPerfectServerのフォルダを丸ごとコピー
  2. プロジェクトのフォルダと同じ階層に貼り付け
  3. XcodeのProject Navigator(上のイメージの部分)の何もないところで右クリック
  4. 出てきたメニューからAdd files to "ワークスペース名"...を選択
    (もしプロジェクト名が出てきたら3からやり直し)
  5. Copy items into ...はチェック無、Create groups ...にチェック有にする
    (無い場合はOptionをクリック)
  6. 1と2でコピーしたフォルダの中からPerfectLib.xcodeprojを選択してAdd
  7. PerfectServer.xcodeprojについても3からの同じ手順で追加

スキームの設定

  1. XcodeのメニューのProduct-Scheme-Manage Schemes...を選択
  2. プロジェクト名と同じスキームを選択してEdit...を選択
  3. 左側でRun、右側のInfoタグを選択
  4. ExecutableでPerfectServer HTTP.appを選択
  5. 下の方にあるSharedにチェック
  6. Closeで閉じる

フレームワークの追加

  1. 作成したプロジェクトを選択
  2. TARGETSでプロジェクト名と同じもの、Generalタブを選択
  3. Linked Frameworks and Librariesの+を選択
  4. PerfectLib.frameworkでOSXの方を選択してAdd

ドキュメントを配置

  1. Build Phasesタブを選択
  2. 左上の+をクリックして、New Copy Files Phasesを選択
  3. DestinationでProducts Directoryを選択
    Subpathにwebrootと入力
  4. Nameの下の方にある+をクリックし、index.mustacheを選択してAdd

動作確認

XcodeでSampleServerのスキームでRunして、GUIが立ち上がるとサーバが動作した状態となる

その状態でhttp://0.0.0.0:8181/にアクセスして、「Hello, world!」と出ればひとまずOK

感想

意外に日本語の、特にMac上で動かす場合の資料が少なくて苦労した
それとこういうのを触る度にサーバ周りの知識が足りないのを痛感する・・・

参考リンク

開発環境

ソース

こちら