try! Swift 2018 Tokyoに参加しました | Day 2

try! Swift 2018 Tokyo 2日目のスライドなどのまとめ+企業ブースメモ

Expression Problem を解決する | Day 2-1

bkase.github.io

Swift もくもく会 in Barcelona | Day 2-2

speakerdeck.com

Swift によるアルゴリズムの可視化 | Day 2-3

speakerdeck.com

Kitura で Codable ルーティング | Day 2-4

-

超解像+CoreML+Swiftを使ってアプリの画像データ転送量削減に挑戦する | Day 2-5

speakerdeck.com

漫画をサーバー側で低解像度化してクライアント側で高解像度化するお話。 OSSとして公開、残念ながらモデルは大人の事情で非公開だそうです。 モデルを作成するスクリプトは含まれているそうなので漫画の電子データを沢山もっていれば試せそうです。

github.com

iOSでCharlesを導入する | Day 2-6

Charles for iOS がレビュー中とのこと。無事リリースされて欲しいですね。

拡張現実における体験設計 | Day 2-7

www.dropbox.com

現実とはこれまで取り組んで来た中で一番巨大なView Controllerである。

Swift エンジニアのための Kotlin 入門 | Day 2-8

speakerdeck.com

Swift5のOwnershipに備える | Day 2-9

-

デジタル信号処理 in Swift | Day 2-10

speakerdeck.com

Codableが導く型安全な世界 | Day 2-11

speakerdeck.com

iOS / Swift における対話型インターフェースの作成 | Day 2-12

speakerdeck.com

UIImageView vs Metal | Day 2-13

www.slideshare.net

GPUのことを考えるきっかけになるセッションでした。 ゲームを作っていたころは、ずっとGPUのこと考えてる状態でしたが最近はあまり考えてません。

  • コマンドを送る時は1回にまとめる。
  • テクスチャはGPUにキャッシュさせる。

などは、基本的にMetalだけでなくOpenGLDirectXでも同じです。

Swiftが動くDockerコンテナの各OSの性能比較 | Day 2-14

speakerdeck.com

型とパフォーマンスで見るType-erasureの利点 | Day 2-15

github.com

Make faces big by Vision and CoreGraphics | Day 2-16

-

開発者ツールと経験への時間投資 | Day 2-17

github.com

企業ブース

Yahoo! JAPANさんのペアプロ実演を見学しました。
作業の流れはざっくりこんな感じだったと思います。使用されてるタスク管理ツール名は忘れました。

  1. (ツール)タスクの確認
  2. コスト出し(1~3をじゃんけんみたいに指で同時に出して、食い違っていたら口頭ですり合わせしてからツールに記載)
  3. (ツール)該当タスクを開始状態にする
  4. ナビゲーターがテストを書く
  5. ドライバーが実装を書く
  6. テストをパスするまで頑張る
  7. コミット
  8. (ツール)該当タスクを完了状態にする
  9. (ツール)プロジェクトオーナーが該当タスクを承認する

ドライバー/ナビゲータで片方がユニットテストを書いて、もう片方が実装を書く形で進めてるとのことでした。

コードレビュー => ペアプロの作業内で確認してるので改めてレビューはしていない。ひとり作業が発生した場合は別途行う。
ドキュメントはない => メンバー全員で入れ替えながらペアプロですすめているから全員が同時にやめない限りどうにかなる
作業環境=>1台のMac + セカンドディスプレイ
Rx => 一時期使ってたが今は使っていない

書いてて思いましたが、スニペット/テンプレートやキーバインドなどなど個人間で異なるだろう環境設定をどうしてるのか気になります。

追記

そういえばテストをするたびにマウスカーソルを操作して個別にテストを選択されていました、
あそこはショートカットを使うとマウスカーソルを移動する必要がなくなります。

コマンド ショートカット 説明
Test ⌘⌥^ + U カーソルがあるテストを実行
Test Again ⌘⌥^ + G 前回実行したテストを再実行