Open 2018.05.31
try!Swift 2018
型とパフォーマンスで見るType-erasureの利点
- try!Swift
- 未設定
■ 動画紹介
本動画は2018年3月に開催されたtry!Swift Tokyo2018の動画を収録しています。
try! Swift は、Swift におけるベストプラクティス、アプリ開発、サーバーサイド Swift、オープンソース Swift、
そして Swift のコミュニティなど、プログラミング言語 Swift に関するコミュニティ主催のカンファレンスです。 今回も世界中からSwiftのエンジニアが登壇しています。
■Agenda
-Swift エンジニアのための Kotlin 入門
Kotlin は JVM に書かれた関数型言語です。あなたのAndroid開発者の友達は、この言語の登場をとても喜んでいることでしょう。Swiftとの共通点が多いこの言語を学ぶことで、Android チームのメンバーとコミュニケーションが取りやすくなります。Swiftの視点からこの言語を眺め、何が同じで何が違うのか、他の言語を書いている人が羨ましがるのはどの辺なのかを見てみましょう。
-Swift5のOwnershipに備える
Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。
-デジタル信号処理 in Swift
デジタル信号処理の分野に潜って、Apple の Accelerate framework が高速フーリエ変換を使ってどうやってオーディオ周波数を特定しているのかを見てみましょう。Swift のような強力な言語でオーディオサンプリングレートを分解する方法を対話的なデモを通して見てみましょう。
-Codableが導く型安全な世界
CodableはAPIのレスポンスをマッピングするためだけの機能ではありません。Codableは様々な場面で利用でき、ソースコードを型安全にすることができます。このLTではCodableをフル活用するためのアプローチや、よりアグレッシブなCodableの活用方法をご紹介します。
-iOS / Swift における対話型インターフェースの作成
アプリで対話型インターフェースを実現するための最新技術を紹介します。AppleのAPIとAmazon Lexのような他社の技術による音声認識を見てみましょう。また、音声再生における別なストラテジーについても紹介します。さらに、アプリで対話型インターフェースを構築するにあたってのベストプラクティスについてもお話します。
-UIImageView vs Metal
MetalはGPUへのアクセスを提供するAPIで、OpenGLより10倍速いという謳い文句で登場しました。本セッションではMetalの基礎を解説しつつ、そのグラフィックス描画性能をUIImageViewと比較してみます。
MetalのAPIを直接利用する機会がなくても、Metalはあなたのアプリの裏で暗躍しています。身近なクラスとの比較を通じて、普段我々が意識することのないGPUのレイヤで何が起きているのか、目を向けてみるきっかけになればと思います。
-Swiftが動くDockerコンテナの各OSの性能比較
Swiftがオープンソースとして公開されてLinuxサポートがされてから数年経ち、サーバーサイドSwiftの導入・運用事例が増えてきました。その間にもSwiftはアップデートされ続けていて、Swiftのバージョンを複数の開発・運用マシンで揃えることのコストが高くなってきています。このコストを削減するためにDockerを用いると、Swiftのバージョンを固定したコンテナ型の仮想化環境を用意できるので、マシンのローカルのSwiftのバージョン依存することなく開発することができます。また、Dockerは完全仮想化を行うわけではないのでディスク使用量は少なく、仮想環境の作成や起動は速いという特徴があります。このトークではSwiftに最適なDockerコンテナを紹介します。
-型とパフォーマンスで見るType-erasureの利点
2016年のtry! Swiftで紹介されてから誰もが知るところとなったType-erasure、これを採用するメリットを型とパフォーマンスの面から紐解きます。また、stdlibのAnySequenceの実装をヒントに、効率が良くパワフルなType-erasureの実装を探っていきましょう。
-開発者ツールと経験への時間投資
開発者のツールと経験を向上させるためのアイディアを探すにはどうすればよいでしょうか?新しい開発ツールを作成するか、開発プロセスを調整することで、日々の開発における共通の苦しみとその改善方法を見ていきます。 10倍の開発者がいるなら、その人は他の10人の開発者の生活をより良くするものに取り組むことを決めた人です。
try! Swift は、Swift におけるベストプラクティス、アプリ開発、サーバーサイド Swift、オープンソース Swift、
そして Swift のコミュニティなど、プログラミング言語 Swift に関するコミュニティ主催のカンファレンスです。 今回も世界中からSwiftのエンジニアが登壇しています。
■Agenda
-Swift エンジニアのための Kotlin 入門
Kotlin は JVM に書かれた関数型言語です。あなたのAndroid開発者の友達は、この言語の登場をとても喜んでいることでしょう。Swiftとの共通点が多いこの言語を学ぶことで、Android チームのメンバーとコミュニケーションが取りやすくなります。Swiftの視点からこの言語を眺め、何が同じで何が違うのか、他の言語を書いている人が羨ましがるのはどの辺なのかを見てみましょう。
-Swift5のOwnershipに備える
Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。
-デジタル信号処理 in Swift
デジタル信号処理の分野に潜って、Apple の Accelerate framework が高速フーリエ変換を使ってどうやってオーディオ周波数を特定しているのかを見てみましょう。Swift のような強力な言語でオーディオサンプリングレートを分解する方法を対話的なデモを通して見てみましょう。
-Codableが導く型安全な世界
CodableはAPIのレスポンスをマッピングするためだけの機能ではありません。Codableは様々な場面で利用でき、ソースコードを型安全にすることができます。このLTではCodableをフル活用するためのアプローチや、よりアグレッシブなCodableの活用方法をご紹介します。
-iOS / Swift における対話型インターフェースの作成
アプリで対話型インターフェースを実現するための最新技術を紹介します。AppleのAPIとAmazon Lexのような他社の技術による音声認識を見てみましょう。また、音声再生における別なストラテジーについても紹介します。さらに、アプリで対話型インターフェースを構築するにあたってのベストプラクティスについてもお話します。
-UIImageView vs Metal
MetalはGPUへのアクセスを提供するAPIで、OpenGLより10倍速いという謳い文句で登場しました。本セッションではMetalの基礎を解説しつつ、そのグラフィックス描画性能をUIImageViewと比較してみます。
MetalのAPIを直接利用する機会がなくても、Metalはあなたのアプリの裏で暗躍しています。身近なクラスとの比較を通じて、普段我々が意識することのないGPUのレイヤで何が起きているのか、目を向けてみるきっかけになればと思います。
-Swiftが動くDockerコンテナの各OSの性能比較
Swiftがオープンソースとして公開されてLinuxサポートがされてから数年経ち、サーバーサイドSwiftの導入・運用事例が増えてきました。その間にもSwiftはアップデートされ続けていて、Swiftのバージョンを複数の開発・運用マシンで揃えることのコストが高くなってきています。このコストを削減するためにDockerを用いると、Swiftのバージョンを固定したコンテナ型の仮想化環境を用意できるので、マシンのローカルのSwiftのバージョン依存することなく開発することができます。また、Dockerは完全仮想化を行うわけではないのでディスク使用量は少なく、仮想環境の作成や起動は速いという特徴があります。このトークではSwiftに最適なDockerコンテナを紹介します。
-型とパフォーマンスで見るType-erasureの利点
2016年のtry! Swiftで紹介されてから誰もが知るところとなったType-erasure、これを採用するメリットを型とパフォーマンスの面から紐解きます。また、stdlibのAnySequenceの実装をヒントに、効率が良くパワフルなType-erasureの実装を探っていきましょう。
-開発者ツールと経験への時間投資
開発者のツールと経験を向上させるためのアイディアを探すにはどうすればよいでしょうか?新しい開発ツールを作成するか、開発プロセスを調整することで、日々の開発における共通の苦しみとその改善方法を見ていきます。 10倍の開発者がいるなら、その人は他の10人の開発者の生活をより良くするものに取り組むことを決めた人です。
■ コンテンツ一覧
- 裏 Swift Tour (24:13) >>
- SIL入門(SIL for First Time Learners) (06:51) >>
- Clang モジュールの探検(Exploring Clang Modules) (21:17) >>
- レスポンダチェーンを知ろう (08:57) >>
- 関心の分離と単純化のためのSwiftコードの最適化 (21:20) >>
- コーダーがデザインすべきなのか (17:51) >>
- 変性のダイヤモンド (05:05) >>
- Event driven networking for Swift (21:31) >>
- SwiftyPi (18:08) >>
- 我が家を支えるSwiftの技術 (05:56) >>
- UI Test の楽しさとメリット (22:51) >>
- ブロックチェーンのクライアントをSwiftで実装する (20:31) >>
- Protocol Oriented WebAPI Abstraction (06:02) >>
- Swiftでカジュアルゲームを作る方法を紹介 (21:30) >>
- AST メタプログラミング (26:55) >>
- Expression Problem を解決する (18:37) >>
- Swift もくもく会 in Barcelona (05:32) >>
- Swift によるアルゴリズムの可視化 (20:32) >>
- Kitura で Codable ルーティング (20:40) >>
- 超解像+CoreML+Swiftを使ってアプリの画像データ転送量削減に挑戦する (06:44) >>
- iOSでCharlesを導入する (22:00) >>
- 拡張現実における体験設計 (19:53) >>
- Swift エンジニアのための Kotlin 入門 (21:24) >>
- Swift5のOwnershipに備える (04:48) >>
- デジタル信号処理 in Swift (18:52) >>
- Codableが導く型安全な世界 (05:51) >>
- iOS / Swift における対話型インターフェースの作成 (19:34) >>
- UIImageView vs Metal (26:11) >>
- Swiftが動くDockerコンテナの各OSの性能比較 (05:49) >>
- 型とパフォーマンスで見るType-erasureの利点 (07:48) >>
- 開発者ツールと経験への時間投資 (23:32) >>