Swift
Kitura
Swift3.0
ServerSideSwift
More than 1 year has passed since last update.

おはようございます、Sankameと申します。

業務では主にPHPを使ってますが、SwiftでもWebページを作れるようになったと知って、自宅でやってみました。

練習してたのが半年ほど前なので、内容が古いかもしれない点はご了承下さい。


お題

DBを使わないライトな課題ということで、年号の表示とカレンダーを作ってみました。

ソースコードはこちら。

Java畑が長かったので、Swiftならこんな書き方できるよ、などのプルリク頂ければ幸いです。


フレームワーク選定

サーバーサイドSwiftのフレームワーク兼HTTPServerは色々あります。

各フレームワークの性能比較をしたブログなどを見て、perfectの評価が高かったので試してみましたが、確か"Get Started"でつまずき断念しました。

次に、Kituraを検討しました。

KituraはQiitaなどで導入事例が多く、また、サンプルのdockerイメージを落としてきたらサクッと動いたので、それをベースに進めることにしました。

Swift自体のサポートOSもLinuxはUbuntuだけなので、その点でもdocker上で開発した方が楽かもしれません。

僕は開発環境がMac、本番環境がCentOSだったので、そうしました。


感想

API仕様書やKitura関連の記事が結構あるため、あまり実装で困ることはないです。

ただ、Kituraがサポートしている、stencilというテンプレートエンジンは機能が少なく、なるべくサーバーサイドでデータを加工して渡すなどの工夫が必要でした。

ソースコード内で月ごとのテンプレートをそれぞれ用意しているのも、確か、stencilの制約からだったと思います。

先日、サーバーサイドKotlinも発表されたので、個人的にはSwift推しでいくかは少し様子見の状態ですね。


その他

Swiftの実行結果を手軽に確認するのに、下記ツールを重宝しました。

コードの共有もできるので便利です。

同種のツールの中では一番使いやすく、Swiftに対するIBM社の本気度を感じます。(KituraもIBM社です)

IBM Swift Sandbox