見出し画像

try! Swift Tokyo 2018 Day2 レポート

2日目のレポート1週間遅れですが、掲載します(笑)
今回は2日目の内容になります。

2日目は特に1日目と流れはそんなに変わらなかったので、早速ですがセッション一覧とスライドを以下にまとめます。

・セッション一覧

・ Expression Problem を解決する : Brandon Kase
UIKitでは、一連の UIView と UIView のサブクラスをまとめてビュー階層を記述します。UIViewをサブクラス化することによって自分自身のビューを作成することもできます。しかし、この View Description をAppKitやシリアライゼーションに再利用することはできません。UIKit と似たようなものに EnumKit があり、 View は列挙型のケースとして提供されています。これで View Description を使いまわすことができますが、EnumKit なしで (もしくはライブラリをフォークしないと)ビューを生成することができません。
'Final Tagless' は、Swift のプロトコルの内部にある強力な Self 型を用いて、双方の世界をベストな状態にします。
Swift もくもく会 in Barcelona : Tiago Martinho
バルセロナで開催した Swift Peer Lab の体験についてお話します。コンセプトから説明し、これがあなたの街でもでき、簡単で価値ある体験が得られると思っている理由を説明します。いくつかのTipsについてもお話します。
・Swift によるアルゴリズムの可視化 : Ben Scheirman
視覚教材は、アルゴリズムがどのように機能するかを明確にするのに役立ちます。 このトークでは、UIBezierPathがどのように動作するかを、我々が見ることができるインタラクティブな方法で、アルゴリズムを再実装して調べてみます。 Swift Playgroundを使って、実装のフィードバックをすばやく入手し、学習ツールとして使用することができます。
・Kitura で Codable ルーティング : Pushkar Kulkarni
Swift 4では、Codable が導入されました。これは、JSONEncoder や JSONDecoder を通して、JSON を扱いやすくしてくれるものです。 JSONのエンコードやデコードが、RESTful API を扱う際の一番複雑な部分です。Codable を使うことで、 Kitura 2.0 は JSON の処理の責務を受け持ち、型安全な方法で、独自の Codable 型で直接処理できます。KituraKit を用いることで、iOS アプリとサーバーサイドの間で型の定義を共有することができるでしょう。
・超解像+CoreML+Swiftを使ってアプリの画像データ転送量削減に挑戦する : Kentaro Matsumae
SRCNNKit
「超解像」は低解像度画像を高解像度に変換する技術のことです。この技術をiOSアプリに適用することで、画像データの転送量削減が期待できます。本トークではCoreMLとSwiftを使って超解像処理を実装し、従来手法と比較・検証した結果についてご報告します。
・ iOSでCharlesを導入する : Karl von Randow
我々が開発するアプリの多くが、インターネット経由でAPIにアクセスします。macOS上で実行されるCharles Proxyは、iOSからの HTTP と HTTPS のトラフィックをキャプチャできるため、障害をデバッグしたり、パフォーマンスを測定することができます。try!Swift Tokyoでは、Charles Proxy の作者である Karl が Charles for iOS という新しく強力なアプローチを発表します。これにより、あなたのiOSデバイスでトラフィックを直接キャプチャすることが可能となります。
拡張現実における体験設計 : David Hoang
技術が現実世界でよりユビキタスになっていくにつれて、経験がスクリーンや物理空間からはみ出てくるのは避けられません。VRや声のように、また10年前モバイルアプリケーションがそうだったように、拡張現実 (AR) は未知の段階にいる新しい技術です。David Hoangは、ARの設計で経験したことをお話します。このトークでは、優れたAR体験を実現するためのベストプラクティス、物理的なプロトタイプ作成方法、AppleのARKitを使ったコンセプトを紹介します。
Swift エンジニアのための Kotlin 入門 : Ellen Shapiro
Kotlin は JVM に書かれた関数型言語です。あなたのAndroid開発者の友達は、この言語の登場をとても喜んでいることでしょう。Swiftとの共通点が多いこの言語を学ぶことで、Android チームのメンバーとコミュニケーションが取りやすくなります。Swiftの視点からこの言語を眺め、何が同じで何が違うのか、他の言語を書いている人が羨ましがるのはどの辺なのかを見てみましょう。
Swift5のOwnershipに備える : Toru Kuriyama
Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。
デジタル信号処理 in Swift : Daisy Ramos
デジタル信号処理の分野に潜って、Apple の Accelerate framework が高速フーリエ変換を使ってどうやってオーディオ周波数を特定しているのかを見てみましょう。Swift のような強力な言語でオーディオサンプリングレートを分解する方法を対話的なデモを通して見てみましょう。
Codableが導く型安全な世界 : Tatsuya Tanaka
CodableはAPIのレスポンスをマッピングするためだけの機能ではありません。Codableは様々な場面で利用でき、ソースコードを型安全にすることができます。このLTではCodableをフル活用するためのアプローチや、よりアグレッシブなCodableの活用方法をご紹介します。
iOS / Swift における対話型インターフェースの作成 : Wendy Lu
アプリで対話型インターフェースを実現するための最新技術を紹介します。AppleのAPIとAmazon Lexのような他社の技術による音声認識を見てみましょう。また、音声再生における別なストラテジーについても紹介します。さらに、アプリで対話型インターフェースを構築するにあたってのベストプラクティスについてもお話します。
・UIImageView vs Metal : Shuichi Tsutsumi
日本語
英語
MetalはGPUへのアクセスを提供するAPIで、OpenGLより10倍速いという謳い文句で登場しました。本セッションではMetalの基礎を解説しつつ、そのグラフィックス描画性能をUIImageViewと比較してみます。MetalのAPIを直接利用する機会がなくても、Metalはあなたのアプリの裏で暗躍しています。身近なクラスとの比較を通じて、普段我々が意識することのないGPUのレイヤで何が起きているのか、目を向けてみるきっかけになればと思います。
Swiftが動くDockerコンテナの各OSの性能比較 : Takeshi Ihara
Swiftがオープンソースとして公開されてLinuxサポートがされてから数年経ち、サーバーサイドSwiftの導入・運用事例が増えてきました。その間にもSwiftはアップデートされ続けていて、Swiftのバージョンを複数の開発・運用マシンで揃えることのコストが高くなってきています。このコストを削減するためにDockerを用いると、Swiftのバージョンを固定したコンテナ型の仮想化環境を用意できるので、マシンのローカルのSwiftのバージョン依存することなく開発することができます。また、Dockerは完全仮想化を行うわけではないのでディスク使用量は少なく、仮想環境の作成や起動は速いという特徴があります。このトークではSwiftに最適なDockerコンテナを紹介します。
型とパフォーマンスで見るType-erasureの利点 : Nobuo Saito
2016年のtry! Swiftで紹介されてから誰もが知るところとなったType-erasure、これを採用するメリットを型とパフォーマンスの面から紐解きます。また、stdlibのAnySequenceの実装をヒントに、効率が良くパワフルなType-erasureの実装を探っていきましょう。
・開発者ツールと経験への時間投資 : Krzysztof Zabłocki
Sourcery
開発者のツールと経験を向上させるためのアイディアを探すにはどうすればよいでしょうか?新しい開発ツールを作成するか、開発プロセスを調整することで、日々の開発における共通の苦しみとその改善方法を見ていきます。 10倍の開発者がいるなら、その人は他の10人の開発者の生活をより良くするものに取り組むことを決めた人です。

・まとめ

2日目は1日目とセッションの内容の傾向とは異なり様々なカテゴリのセッションがでした。
個人的に気になったセッションはSwift によるアルゴリズムの可視化デジタル信号処理 in Swiftのセッションは興味深かったです。Swift によるアルゴリズムの可視化のUIBezierPathがどのような軌跡でどう動くかなど、普段意識しないものをPlaygroundで動かしながらの説明はとてもわかりやすいものでした。また、デジタル信号処理のセッションでもAccelerate frameworkを用いて音をスペクトル表示とかするのは自作でクラスをラップしてVisual表現の一つとして採用したいと思いました。

今回初のtry! Swiftはイベント全体を通してイベント参加者、イベントの運営スタッフ全員でイベントを楽しむ姿勢がとても強く素晴らしいイベントでした。長い合間にアイスブレイクを挟んだり休憩時間も人数の規模を考えるとスタッフの努力をとても感じるイベントでした。また、国内にいながら気軽に国際交流できるのはなかなか他のイベントでもないと思います。来年もまた機会があれば参加したいと思います。(何かネタを用意して登壇できると良いですね。)

2日目最後はけん玉のイベントもやってました。


#ios #swift #tryswiftconf #event #report #note #conference #イベント #レポート #イベントレポート #カンファレンス

この記事が気に入ったらサポートをしてみませんか?