try! Swift Tokyo 2018 Day1 レポート
2018/03/01(木)、2018/03/02(金)に行われたtry! Swift Tokyoに参加してきました。場所は新宿にあるベルサール新宿グランドという会場でした。
会場はこんな感じですね。WifiのアクセスがQRコードでできるのが便利だと思いました。
会場は会場Aと会場Bに分かれており、会場Aではスポンサーのブースとご飯などを配るスペースがあり、そこを通って会場Bに入場するような流れでした。
スポンサーブースでアンケートなどに答えると各スポンサーさんからグッズなどがもらえることがあります。
以下が、try! Swiftでもらえたグッズです。
(GameWithさんのバッテリーチャージャーが個人的にはありがたく、早速次の日充電不足の際に利用させていただきました笑)
早速ですが、セッション一覧とスライドが以下の通りです。(スライドはタイトルのリンクから参照ください、リンクがないものもあります)
・セッション一覧
・裏 Swift Tour : Yuka Ezura
Swift を学び始めるとき、Apple の公式チュートリアル 'A Swift Tour' に取り組んだ方も多いのではないでしょうか。 そして、時を経て、Swift に慣れ親しんだ今だからこそ理解し、得られるものがあります。もう少し深堀りした Swift の世界、'A Swift Tour' の裏面に取り組んでみましょう。
・SIL入門 : Yusuke Kita
Swiftのコンパイラは複数のフェーズにわけて実行され、そのうちもっとも大きなものが SILの最適化です。SIL Optimizer はSwift特有のすべての最適化を担うので、SwiftのエンジニアがSILを理解しておくことは極めて重要だと考えます。このトークでは、SILの基礎を簡単な例を用いて説明します。
・ Clang モジュールの探検 : Samuel Giddins
Swift や Objective-C のフレームワークは Clang モジュールをベースとした同じモジュールシステムを共有しています。ライブラリのインターフェースとやりとりすることでヘッダファイルを置き換えますが、それぞれにエッジケースが存在します。Clang モジュールの `#import` 文の置き換え方、モジュールを使うことによる影響、Clagnモジュールの設計がSwiftのライブラリにどう影響してきたかを調べてみます。
・レスポンダチェーンを知ろう : Samuel Goodwin
レスポンダチェーンパターンの仕組み、Apple のフレームワークの仕組み、そしてその活用方法の例を紹介します。
・関心の分離と単純化のためのSwiftコードの最適化 : Javier Soto
関心の分離は、コードが再利用されないときには時期尚早な最適化とみなされることがよくありますが、我々がコードが何をしているのかを理解することに対しては大きく影響します。Swiftにおけるこの実例を紹介します。
・コーダーがデザインすべきなのか : Sash Zats
ほとんどのソフトウェアエンジニアは、デザイナーがコーディングする世界がより良い世界であることに同意します。 このトークでは、反対の考えを探求したいと思います。 コアデザインの原則を知っていることによって、時間を節約し、よりプロダクトに実用的な課題に対する弾力性を持たせ、ユーザーとのコミュニケーションを改善し、スマートで楽しいプロダクトを作るのに役立つということを探究したいと思います。
・Event driven networking for Swift : Norman Maurer
Swift が iPhone, iPad, Mac, Apple Watch そして Apple TV のアプリを開発する言語として選ばれていることはみなさんご存知でしょう。この数年、Swift は Linux で動作するサーバーサイドアプリケーションを開発するのにも優れた言語としても浮上してきました。現在、Apple, Facebook, Google, Netflix, Twitter などの企業が運用する大規模な環境では、Java、C ++などの言語による、パフォーマンスに最適化されたネットワークフレームワークが使われています。このトークでは、Apple のサーバーインフラストラクチャーチームが長年の経験を活かし、どのように高性能でスケーラビリティの高いネットワークアプリケーションを作成して、どのように開発時にSwiftを利用しているかについて説明します。
・変性のダイヤモンド : Vu Nhat Minh
ジェネリクスはSwift言語における悩みの種となっている面白いトピックです。Generics Manifest では、Swift の型システムが定義よりも実践に重きを置いて作られたかについて素晴らしい説明がされています。ですが、「変性のダイヤモンド」という理論では、型システムの完全性とSwiftのジェネリクスがいかにこの理論にフィットしているかを別の視点で見ることができます。
このトークでは、Swiftにおける変性、共変性、反変性と、ダイヤモンドの上に輝く、Phantom Type について説明します。
・SwiftyPi : Kate Castellano
モバイル開発からサーバーサイドアプリケーションまで、我々はSwift 言語に柔軟性を見出だし始めています。ですがまだSwiftには開拓されていない領域があり、Swiftエンジニアがその可能性を切り開くかもしれません。このトークでは、Kate が Raspberry Pi で Swift の開発環境を構築するにあたって良かったこと、悪かったことについてお話します。
・我が家を支えるSwiftの技術 : Yuki Asai
Swiftは我が家庭内のコミュニケーションには欠かせない技術となっています。育児用のiOSクライアントアプリ、そのリクエストを受け取るWebサーバー、ちょっと便利なSlackBot、妻が喜ぶ定期実行タスクなどなど、いろんなものがSwiftによって作られ活用されています。数え切れないほどある中で厳選した幾つかを紹介したいと思います。
・UI Test の楽しさとメリット : Sarah Olson
多くのiOS開発者はユニットテストには精通していますが、Xcodeを使ったUIテストを行なっていない方が多いと思います。自分のアプリに UI テストを導入した際のハイライトと、すべてをテストすることの苦労を共有します。
・ブロックチェーンのクライアントをSwiftで実装する : Tamar Nachmany
Swiftにおける分散アプリケーションの作成について紹介します。
・Protocol Oriented WebAPI Abstraction : Yuya Hirayama
AbstractionKit
今やスタンドアロンで動くiOSアプリは数少なく、ほとんどのアプリではWebAPIを経由してサーバーと情報のやり取りを行います。アプリの動作の根幹となるAPI通信を適切に設計し、将来の改修や通信/マッピングライブラリの入れ替えなどをより容易にするためのプロトコル指向なAPI定義の仕方と、さらにそれとRxSwiftを組み合わせた型安全なAPI抽象レイヤーの設計について紹介します。また、ここで話す内容をフレームワーク化したAbstractionKitの紹介をします。
・AST メタプログラミング : Katsumi Kishikawa
Swift にはランタイムにおける動的な振る舞いがほとんどありません。コード注入の実現方法や、AST を用いたアスペクト指向プログラミングについてお話します。
引用 : TOKYO - try! Swift Conference
・まとめ
今回初めてのtry! Swiftでしたが、世界中から30カ国のエンジニアが来てるとのことでまるで海外のカンファレンスに来ているかのように思えました。イベント参加者へのサポートも厚く、slackの準備から日本、英語の翻訳機に加えセッション途中に挟むアイスブレイクも楽しませてもらいました。
また、海外からのエンジニアと会話もしやすい雰囲気だったので簡単な英語でもコミュニケーションが取りやすい環境でした。
セッションの内容も1日目は全体的にコンパイラ周りに関連する内容が多い印象でした。普段開発するアプリ等でもSILやASTを意識することはなかったので小さなサンプルからコンパイラの動きもチェックしてみようと思います。
・備考
記事が長文になってしまうので2日目の記事と気になったセッションの技術的な内容の掘り下げに関しては別途記事で掲載したいと思います。
#ios #swift #tryswiftconf #event #report #note #conference #イベント #レポート #イベントレポート #カンファレンス