try! Swift Tokyo2018に参加してきました
はじめに
エウレカのPairs Global事業部にてiOSエンジニアとしてインターンをしている田口です。
3/1〜3/2に行われたSwiftの技術カンファレンスtry! Swift Tokyo2018に参加してきました。
私個人として今回が初参加となりましたが、Swift言語やアプリ開発について多くの知見が得られて楽しいカンファレンスでした。
今回はそのtry! Swift Tokyo2018をレポートします!
try! Swiftとは
try! Swiftは国際的なSwiftのカンファレンスであり世界中から20人以上の講演者と300〜700人の参加者が参加します。今回は800人規模の会場でしたが人で溢れかえっていました。try! Swif Tokyoで過去最高の参加人数だそうです。
発表内容はiOSアプリ開発に限らずmacOS,watchOS,tvOSやServer Side Swiftなど様々です。特に今回のイベントではiOSアプリとServer Side Swiftについてのセッションが多い印象でした。
これまでにニューヨーク,インド,東京で開催され今年で3年目になります。各セッション後には登壇者と1 on 1で質問できる時間が設けられており気軽に質問ができます。
当日の雰囲気
まず会場に到着し企業ブースはこのような感じです。
多くのスポンサー企業様がブースを設け、アンケートやグッズ配布などを行っています。
1日目にDeNAさんのブースで行っていたアンケートの結果はこちらです。
参加したエンジニアの開発環境についてアンケートを取っておられました。みなさん積極的に回答していて、開発環境について熱く語っておられました。
続いてメルカリさんのアンケート途中結果はこちらです。
意外と初参加の方が多いことが分かりますね。こちらではCocoaPodsとCarthageやプロダクトのSwift率についてお話しました。
そしてメイン会場はこの様になっており、同時通訳を受けながら登壇者のプレゼンを聞くことができます。
もちろんお昼ご飯もいただきました!
そして2日目の最後にはAfter Party!
多くのパフォーマーの方がいらっしゃり参加者を楽しませてくれました!
お酒の力を借りて色々な方とお話することができました!
個人的気になったセッション
Eventdriven networking for Swift
発表者はApple社の Norman Maurerさんで発表内容はswiftでの低レイヤーのネットワーク処理に関するものでした。残念ながらスライドはシェアされていませんが、セッション中にAppleがSwiftNioをOSSとして当日公開したことが告げられ会場が沸きました。
SwiftNioは低レイヤーのネットワークフレームワークでありSwift用のnettyです。ネットワーク通信での非同期処理をより簡潔に記述できるようになります。Vaporは早速SwiftNioを取り入れ1.5万行が削減されたそうです。
SwiftNioの対応プラットフォームはUbuntuとmacOSとなっておりServer Side Swiftの今後のさらなる発展が期待できます。
発表者はクックパッド社の@giginetさんです。fastlaneのcontributerでもあるgiginetさんは、主にゲーム開発をされ世を凌ぐ仮の姿としてiOSエンジニアをされているそうです。昨年のtry! SwiftではApple Watchで某有名ゲームを動かしてみたという発表をされています。
今回はXcodeを用いてゲーム開発をするという内容で発表されました。普段Swiftを用いて開発している我々にとってXcodeでゲーム開発をすることの利点をたくさん紹介されました。
例えばゲームの当たり判定は慣れ親しんだCGPoint型などで計算できるのですでにSwiftを使っている我々の参入障壁の低さや、Xcodeが備えている2D Map Editorの素晴らしさなど新たな知見が多かったです。私自身、Xcodeでこれほどゲーム開発がしやすいのかと非常に驚きました。
その後GameplayKitの紹介や実際に自身でSwiftを用いて開発したしたゲームをご紹介されていました。Swiftエンジニアの新たな道が開けたセッションだったのではないでしょうか
発表者はシリコンバレーで働かれているTsutsumi Shuichiさんです。これまで様々なイベントでMetalについて公演され、今回は参加者が理解しやすいような題材としてUIImageView vs Metalという発表をされました。主にMetalを通じてGPUレイヤに目を向けてみようという内容でした。
私達が普段何気なく使っているUIImageViewは早いのでしょうか?ピクセルを配置するなど並列処理可能な処理はGPUに任せた方がよりパフォーマンスが良いのではないでしょうか?
こういった切り口で独自のカスタムクラスを作成し実測値を元に発表されました。
結果として独自で作成したカスタムクラスの方が遅くUIImageViewの方が早いという結果になりました。というのもUIKitはすでにバックエンドでMetalを使用しており60fpsで描画するにはすでに十分に早いという結論でした。
発表者はNewYorkTimesで働かれているKrzysztof Zablockiさんです。
エンジニアをまとめる立場として多くの有用なエンジニアのためのツールを開発されました。みなさんもビルドに時間がかかり1日の中で何分も無駄にしているんじゃないかと思ったことがあるのではないでしょうか。そういったことを解決するためにPlaygroundsを開発されました。これはビルドし直さなくても即座に変更が反映され、リコンパイルはおよそ1秒で済むという素晴らしいものです。
続いて、パイプラインアーキテクチャで設計したKZFileWatchersはデータの変更を監視します。リコンパイルをしたりViewを再読込することなくデータを変更できます。KZFileWatchersによりバグレポートのデータを再現することも可能になります。
さらにコードジェネレーターのSourceryです。
Sourceryは既に8000を超えるプロジェクトで利用されておりプログラマのミスを防ぎコードをきれいに保つことができます。さらにSourceryでswiftGenやKZFileWatchersを使用することができます。
非常に有用なツールを多く開発されているので是非個人プロダクトで導入していこうと思いました!
終わりに
初めてのtry! Swiftでしたが非常にエキサイティングなカンファレンスでした!多くの優秀なエンジニアさんたちとお話でき先進的なSwiftの取り組みを知ることができました。
ぜひ来年も参加しなにかプロポーザルを出そうと思います!
少しでもtry! Swiftの雰囲気がお伝えできていれば幸いです。
eurekaでもiOSアプリ開発で多くの先進的な取り組みをしているので是非お越しください!
Enjoy your Swift life!
私たちは「Pairsがあったからこの人と出会い、結婚することができた」という人を増やし、 プロダクトを通じて誰かの人生をより可能性にあふれたものにすることを目指しています。
一緒に創り上げていけるエンジニア募集中です