みなさんこんばんわ。チャンタケです。
8/19-20で行われたiOSDC 2016という国内最大級のiOSのイベントにスピーカーとして参加させていただきました。
特に20日はとてつもない数の人が練馬に集まり、iOSコミュニティの大きさをとても痛感しました。
スタッフの方々がとても親切で、大変和やかなムードではありますが、発表内容は尖っているという理想的なバランスのカンファレンスだったと思います。
今回は、参加当日の話や感想のほか、Server Side Swiftの話を中心に書かせていただきました。
■トークに関して
僕は、 Swift3 Web Framework SlimaneとServer Side Swift というタイトルで、8/19の前夜祭のトップバッターとして、30分枠のトークをしてまいりました。 CFPはこちら。https://iosdc.jp/2016/c/node/72
今回のiOSDCでは唯一のServer Side Swiftに関するトークでした。
こちらが発表資料です。
Slimaneの紹介話はすでに4、5回meetupや勉強会でお話させてもらっているのですが、今回はそれらの集大成となっています。
極力、イベントに参加頂いている多くのiOSエンジニアの方々に伝わりやすくと作った資料ですので、コアな技術についてはあまり触れていません。
処理系やパフォーマンス、メモリ管理、マルチプロセス環境への対応など資料で詳しくは触れていないけど気になるところがあるという方は、是非twitter(@noppoman722)などでごお気軽に連絡ください。
■ドキドキライブデモ事件
ライブドア事件みたいな名前になってますが、トーク後半のラスト7分くらいから行ったデモにて、macのファイルディスクリプタが枯渇していた(原因不明の)トラブルに見まわれ、かっこよく決めるつもりだったデモがグダグダに…
結局ラスト3ページを残したままセッションは終了。。
僕のトークは、ドキドキライブデモというタイトルでTogetterでまとめられていました。笑
ドキドキライブデモ! SlimaneでServer Side Swift体験! #iosdc #b
お忙しい中僕のトークにお越しくださった、あるいは中継を見てくれていた方々にはお見苦しいところをお見せしてしまい、申し訳ございませんでした。
ただ、今回のiOSDCでは事前準備の大切さをとても痛感し、トラブルにあった際のフォールバック案(成功時のビデオを事前に撮影しておき、上映する等)も含め、準備を万全にしてカンファレンスに臨まなければと学びがありました。
幸いなことに、トーク後の質問は5-6人の方からいただき、当日来場してくださったオーディエンスの方々のServer Side Swiftへの興味を肌で感じることができ、少し救われました。
来年は、サーバー枠がさらに増えていることではないでしょうか!
当日のデモで使ったコードはここに有ります
https://github.com/noppoMan/iosdc-slimane-chat
現時点でのSwiftを使ったServer開発の少しでもの参考になればと思います。
■今年はServer Side Swift元年です
iOSDC 2016でもSwift3のこれまでとこれからに関するトークがありましたが、Swift3も開発が大分落ち着いてきており、今秋に安定版のリリースがあると思います。
この時こそが、待ちに待ったHello! Server Side Swiftなわけです。
各フレームワークのコミュニティもこの日のために開発をコンスタントに続けて来ました。
いよいよ、本格的にフレームワークの王者を決める戦いの火蓋が切って落とされるため、こちらの動向も要注目です。
2016年後半-2017年には確実にSwift3で開発されているWebサービスが出てくるでしょう。僕もそのうちの1人になる?と思います。
■今後のSlimaneに関して
今後は、開発者を増やしてコミュニティとして活動していきたいという思いでっぱいです。
今後の活動として、
- ドキュメントの拡充
- 本番運用
が僕の中ではとても大きなタスクだと認識しています。
また、Server Side Swift meetupでも興味がある方を対象に、
ワークショップ的な感じで実際にherokuへのデプロイなどを交えて体験できるようなことが出来たら最高です。
興味のある方はいますでしょうか?
その他に、個人的にチャレンジしようと思うことは、
非同期フロー制御APIの雛形PJ
Async/Await、Promise、Futureなどの非同期フロー制御のインターフェースをバックエンドで統一できるようなProjectを行っていきたいです。
Open-Swiftの一つのPjとしてやるのがベストだと思いますので、コミュニティに打診してみます。
Actor、CSP
現状Swift3では、try catch文化なため、非同期で起こる様々な問題に対して対処がしづらいです。それらは、上記で上げたAsync/Await、Promise、Future
などである程度は解決できるとは思いますが、プログラムモデルがそもそも同期的なため、それをServer Sideで強要するのには少しエネルギーがいるなと開発を通して感じました。
そのため、callback無しで並行プログラムが行えるプラットフォームがあったら色々良さそうです。
ActorやCSPといった他の言語や環境で流行っている並行プログラムモデルがその問題のひとつの解決策だと思いますので、それらの理解を深め、pure Swiftで実装していきたいです。
まずは、GoやErlangがどうやってユーザーランドで軽量プロセスを作っているのかというところを調べ、実装をまねてみます。
この辺のパラダイムがSwiftに入ってきたらとてもおもしろいですよね。
■まとめ
後半はiOSDCとはあまり関係ない話をしてしまいましたが、iOSDCで聞いたセッションからとても良い刺激をたくさんもらい、 下半期もSwiftの開発を頑張っていこうとモチベーションが上がりました。
そして、スタッフの皆様、本当にお疲れ様でした。
このような素晴らしいイベントにスピーカーとして参加できて、とても光栄に思います。
是非来年の開催も!(来年も話せるよう、精進していきます。)
■告知
9/26の週にTokyo Server Side Swift meetupを開催いたします!
詳細はhttp://tokyo-ss-swift.connpass.com/やtwitterにアップしますので、
是非ご参加ください!
今回はスピーカーの方たちが最多となりそうです。