「本当にプロダクトに使用できる状態なの?」 サーバーサイドSwiftは、ここ数年で大きな発展を遂げました。Ian PartridgeとDavid Okunが、フルスタックSwiftが、いかにあなたの次のプロジェクトで実用的かお見せします。合わせて、クラウド環境で稼働させる際に活用できるオープン標準についてもご紹介します。 Swiftについて話すことに時間を使うより、Swiftを書くことにもっと時間を使いましょう!
Ianです。Kituraフレームワークに取り組んでいます。Davidとプレゼンします。
DavidがどうやってSwift上でSNSを使うかお見せします
そのまえに私からServerSideSwiftの事例をご紹介します
それからSwiftのエコシステムに関するエキサイティングな発表
第三者サービスのみを利用することもできる。どのサービスを使うかはアプリが決める。モバイルバックエンドやmBaaSを選ぶこともできる。バックエンドはサービスプロバイダに任せなくてはいけない。
自分で構築する、PHPやRubyを使うこともできるが、新しいスキルが必要
ServerSideSwiftは新しい選択肢になりうる
自分でできる。
2つ目のユースケースはMicroservices。大規模からDockerで動くようなマイクロサービスに移行している。
Swiftはコアな特性からマイクロサービスに最適。
コンパイル済みでミリ秒単位で起動する。Swiftはメモリ使用量が少ない。パフォーマンスは予測可能。クラウドデプロイの場合メモリ使用量ベースで支払いますからコスト削減に繋がります。そして素晴らしいCライブラリとの互換性。
Swift5ではPythonなどの動的言語も呼び出せるようになる
Allegroを紹介させてください。データセンターのコストを大幅に削減しました。
SSSは様々な利点を提供できます。
Prometheus統合、Grafanaで視覚化できる、OpenAPIで自動化してドキュメンテーション
RESTAPIの文章化のオープン・スタンダード。
Kituraが自動生成したものです
成功すると200とUserObjectを返す。これを皆さんが書く必要はありません
OpenAPIの強みはこのエコシステムにあります。クライアントSDKのコードジェネレータもある
これだけでは十分ではありません。技術だけでは十分ではないのです。
Appleのトムドロン氏がワーキンググループの話をしてくださいました。
Swift on Linuxのリリース速度は早まってきています。
さて、新たなランゲージサーバープロトコルのリリースということですが、VSCodeなどの一級市民になっていく。
プラットフォームサポートも大きく進化。
reywenderlichと提携して本にしました。完全なKituraアプリケーションの築き方が書かれています。
ではデイビッドです
Emojijurnal、Swiftで書かれたサンプルプロジェクト。フィーリングにフォーカスしたもの
Xcodeなしでビルドも実行もできます。
作っていきます
LSPのおかげでVSCodeで開発出来ます。
OpenAPIを確認できる
新しいGetエンドポイントを追加しましょう
サーバーをリビルドします。
チェックをすると動いているようなのでOpenAPI上でどうなっているか見ます。
きちんと機能しています
ミドルウェアを見てみます。
私がやらなくてはならないのは正しいRouteを関連付けて立ち上げる。
ハードコードされたRouteをModifyしてUIに戻ってテスト
パラメータをRouteに追加するだけであとはKituraがやってくれました
ここで新しいエントリーを追加しましょう
iOSに反映されます。WebSocketを使っています。
両側でメッセージの送受信ができます。
Webクライアントがメッセージングに対応するということでも非常にうまく機能する。
今度はiOSから追加、Webに反映されます。
フルスタックのSNSがSwiftであるので、ぜひここから学んでください。
よく聞かれる質問があります本当に本番で使えるの?
3つ実例を紹介します
MacOS用ノートアプリ。タイムラインに持っていく、Organizeする、iCloudで同期
フリーミアムで高機能の部分だけ有料、ライセンスサーバーがKitura。
もう一つ、これはドイツのINGという銀行でSSSを使ってIoTバンキングしている。
IoTデバイスでスマートペイメントをセキュアに。
こちらがRESTAPIのプラットフォーム、CodableRoutingFeatureを使っています、プラットフォームのコアビジネスロジックが記述されている。
MySQL DBとやり取りしている。RestAPIとやり取りしてJSON でやり取りしている。
フロントエンドにNode.jsで実装したものがある。
iOS, Androidでステータスをチェックしたりできる。
ペイメントプロバイダとの通信でSwiftがデプロイされている
メトリクスライブモニタリングの様子
このURLで25%OffのURLあります(参加者限定だと思うのでスライド掲載しません)
slack.kitura.io #tryandwin で無料プレゼントも。
あしたワークショップしています。
70人以上の申し込みがあったようで嬉しいです。
IBMのブースもあるので立ち寄ってください。