おはようございます、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