LoginSignup
14

More than 5 years have passed since last update.

サーバーサイドSwift "Perfect"に触れてみた

Posted at

サーバサイドSwiftのPerfectを試してみました。
Dockerfileがあったのでこれを使います。

こちらのDockerfileはPerfectに同梱されている"URL Routing"というサンプルが起動するようになっているので

$ docker run -d -p 8181:8181 holidayworking/perfect

としてDocker上で起動したら「htt://(コンテナのIPアドレス):8181/foo/bar/baz」とアクセスすると
リクエスト内容がエコーされます。
「bar」の部分は任意の文字に変更できます。
別のサンプルも試してみます。

同梱されているサンプルは同時に動かせないようなので"URL Routing"と入れ替える形で"Tap Tracker"というサンプルを動かしてみようと思います。
まずは先ほどまで使わせて頂いたDockerfileを編集して使います。

#RUN mkdir PerfectLibraries && cd PerfectLibraries && ln -s /Perfect/Examples/URL\ Routing/URLRouting.so .
RUN mkdir PerfectLibraries && cd PerfectLibraries && ln -s /Perfect/Examples/Tap\ Tracker/TapTrackerServer.so     . && cp /Perfect/Examples/Tap\ Tracker/TapTracker.mustache /webroot/

URL Routingの代わりにTap Trackerをロードするようにします。
またTapTracker.mustacheを/webrootにコピーしないと動作しないので併せてコピーしておきます。

$ docker build -t hoge/perfect .
$ docker run -d -p 8181:8181 hoge/perfect

上記のようにイメージを作成して起動しておきます。

TapTrackerのクライアント側はアプリが必要なので
PefectのGitHubから落としてきます。
Examples/Examples.xcworkspaceをXCodeで開きます。
Tap Tracker のViewController.swiftにホスト名とポート番号の指定があるので環境に合わせて変更します。

ViewController.swift
let END_POINT_HOST = "localhost"
let END_POINT_PORT = 8181

上記のEND_POINT_HOSTをlocalhost以外にした場合はATSで引っかかるのでinfo.plistファイルを編集して許可しておきましょう。
実行してみます。

Simulator Screen Shot 2016.01.11 17.56.44.png

ボタンをタップするとタップした位置の地図に遷移します。

Simulator Screen Shot 2016.01.11 17.56.51.png

シミュレータで動かしたのでマンハッタンになっています。

さてさて、Serverside Swift、当面はモバイルアプリ向けのRESTサービスを提供するアプリケーションサーバとして注力していくそうなのですが、どうなんでしょうかね。楽しみです。

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
14