try! Swift 3日目個人まとめ

初めにまとめサイト紹介

スライドの写真もある速記まとめ(3日目だけのまとめはない)

全日程の資料まとめ

クラスメソッドさんのまとめ

個人まとめ

"Motivation based library abstraction"

レポート

  • 業務の中で出てきた課題に対応するための3つのライブラリを紹介されていました。
    • UTIKit
    • HUDKit
    • URLMatcher ※公開されていないようです。
  • HUD
    • Progress画面など最前面に画面を出したい時に使用する。
    • UIPresentationControllerを使っている。
  • また発表の中で紹介されていた はてなの教科書 です。

まとめ

  • アプリを開発する過程でライブラリ化出来るものは積極的にライブラリ化していきましょうという発表でした。

Server Side Swift

まとめ

  • ライブコーディングでWebサーバを実装し、HerokuへのDeployまで行っていました。

"Swiftにおける実践的なモック化について" : "Real World Mocking In Swift"

まとめ

  • SwiftでのMoc化に関する発表で、いくつかMocライブラリが紹介されていました。
  • 最適なMoc化は状況によって異なるため、その状況に応じて最もSimpleな方法でMoc化するのがよいと発表されていました。

"Swiftヒップスター" : "Hipster Swift"

レポート

  • @noescape
    • メソッドclojureを渡すとそのメソッド内で実行されずにプロパティに保存される(escape)かもしれない。
    • そうされないための @noescape .
    • 最適化される。
  • @autoclosure
  • lazy variable
    • @autoclosureと似た動きをしてくれる。
    • 強くselfをキャッチするので注意。
  • loop label
  • type omission
    • enum でなくても型が決まれば static な var/func を型を省略して呼べる。

まとめ

  • Swift独特な構文について詳しく紹介されていました。

"Core Imageによる高度な画像処理" : "Advanced Image Processing with Core Image"

レポート

  • Core Imageで編集した画像をUIImageとして使う場合はパフォーマンスの問題が出てくることがあるので、CIContextを使い回すなどチューニングが必要。

まとめ

  • 画像処理をおこなうためのライブラリ Core Image について、コードを用いて紹介されていました。

"Swiftトレーニング: 統計学を例に" : "How to Train Your Swift: Examples of Computational Statistics in Swift"

まとめ

  • 統計学の理論をSwiftを使って実装されていました。

"CODE INJECTION FROM SCRATCH"

まとめ

  • objc/clangを使って Swift Code Injection する方法を紹介されていました。
  • 非公開部分をハックしていたため、同じ方法を使うことは少ないと思いまし、危険です。

"デザイナーをSwiftのコードベースに巻き込む10の方法" : "10 Ways to Get Designers In Your Swift Codebase"

レポート

  1. 興味のある人を探す。
  2. メンターシップの土俵をチームに作る。
  3. ストーリーボードを使う。
  4. Autolayoutを使う。
  5. IBDesainableを設定してあげる。
  6. Sketchを使用してもらう。Adobeの問題を解決してもらう。
  7. 協力してあげる。デザイナの意見も受け入れる。壁を作らない。
  8. デザイナをほっておかない。
  9. ドキュメントを準備する。
  10. 気軽に受け入れられるタイミングで受け入れる。

まとめ

  • デザイナを開発に巻き込む方法について紹介されていました。

"パーサーコンビネーター in Swift" : "Parser Combinator in Swift"

レポート

発表に使われていたライブラリ(発表後に公開された)

まとめ

"オープンソースSwiftへの貢献" : "Contributing to open source Swift"

まとめ

  • Swiftの周辺ライブラリではなく、Swift本体への貢献について発表されていました。
  • Swift本体といってもCompilerや標準ライブラリなど様々な分野があり、それらについて俯瞰的に発表されていました。
  • Swiftがどういう構成要素によって成り立っているのか把握するには良い発表だと思います。

"Artsyにおけるテスト手法の紹介" : "An Artsy Testing Tour"

レポート

  • テストの前に大切なこと。
  • emergence(TVOS)
    • いっさいテストしていない。
    • その理由。
      • リリースするまで時間がなかった。
      • 一人で開発した。
      • 新機能の追加がない。
  • energy
    • 最初はテストがなかったが後で追加した。
    • 追加した理由。
      • 属人化をなくしたい。
    • どのようなテストを書いたか。
      • テストでアプリケーションがどのように振る舞うか定義した。
      • DIを使った。
  • eigen
    • 複数のnetworkアクセスがあるアプリ。
    • コーディングスタイルが異なるエンジニアがいるチーム。
    • iPhone/iPad対応したアプリ。
    • どのようにテストしたか。
      • 最初は神オブジェクトをテストしようとしたが、internalのテストが必要になり大変だった。
      • 既存神オブジェクトへのテストは諦め、コードの追加や、変更の際にテストを書くようにした。
      • SnapshotのUIテストを導入した。
  • eidolon
    • Quickライブラリ(RSpecスタイル)を使ったらテストが読みやすくなって良かった。

まとめ

  • 4つのアプリに対してそれぞれ異なったテストアプローチを取った話をされていました。
  • 最適なテストはアプリや開発チームによって異なるため状況に応じてテスト手法を選択したのでしょう。

以上です。