Codableの恩恵はサーバサイドまで 「Kitura で Codable ルーティング」 #tryswiftconf

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

モバイルアプリサービス部の中安です。

try! swift Tokyo のセッションレポートです。

講演概要

公式ページからの引用

Kitura で Codable ルーティング by Pushkar Kulkarni

Swift 4では、Codable が導入されました。これは、JSONEncoder や JSONDecoder を通して、JSON を扱いやすくしてくれるものです。 JSONのエンコードやデコードが、RESTful API を扱う際の一番複雑な部分です。Codable を使うことで、 Kitura 2.0 は JSON の処理の責務を受け持ち、型安全な方法で、独自の Codable 型で直接処理できます。KituraKit を用いることで、iOS アプリとサーバーサイドの間で型の定義を共有することができるでしょう。。

内容

IBMのエンジニア、プシュカー・クルカーニさんの講演でした。

SwiftがIBMのテクノロジーでサーバサイドスクリプトとして使用できることは知られたところです。 しかし、まだ自分としても触れたことのないところであり、実際にブースでも実演されていましたが、目新しさにちょっと惹かれてこのセッションを注目して聴くことを選択しました。

Codableいいよね

自分もブログを通じて Codableについて著していますが、あらためてCodableというのはクールだよね! というお話でした。 なにしろ実装が簡単で型安全。応用もききやすいです。

Kituraでのルーティング

Kitura とはオープンソースなサーバサイドフレームワークのことです。

紹介はこちらのページでもされています。REST API を開発するのに長けているそうです。

ここにアプリとのやりとりが発生する場合は、普段開発者が行ってるようにJSONなどのフォーマットにして送り、JSONとして返ってくるわけです。

上のようにフローとしては、リクエストとレスポンスはKituraが処理してくれるけれど、送る/渡すデータをJSONからSwift型として扱うには開発者による実装が必要であったとのことでした。

しかし、Codableの登場により

ロジックを書く領域が格段に減るというわけです。

アプリ側にもKituraKitを導入することで、サーバもクライアントもJSONという中間の受け渡し用のものを意識することなく、実装に注力できそうです。

感想

アプリもサーバもSwiftで書かれることによる恩恵はなかなかおもしろかったです。 サーバサイドスクリプトとしてSwiftが採用される実例は、おそらくまだ少ないとは思いますが、安全性が高いこの手法はこれから増えていくような気がします。