Otemachi.swift #01 に参加してきた
参加してきました。 nikkei.connpass.com
今回はブログ枠ではないですが、簡単にダンプした内容をメモです。
会場
発表に集中しやすい落ち着いた雰囲気の会場でした。
すべての椅子にテーブルがついていて参加者にもやさしい感じだと思いました。 (ただし僕が座った椅子のテーブルは3度くらい傾斜があったような気がします・・・)
ちなみに懇親会は隣にあったタリーズで行ったのですが、タリーズとは思えないオシャレ感(失礼)で驚きました。 (ちなみに僕はカフェの中でもタリーズの利用率が一番高いです)
発表
WWDCの感想
- 難易度
- ハード
- 抽選に当たる必要がある
- チケット代高い(20万)
- 周辺のホテルがめちゃくちゃ高い
- 一泊$300
- 早めに確保しよう
- 10時間
- 工事中だからサンフランシスコじゃなかった(らしい)
- 空港についてから1.5h
- $90/泊
- 路面電車
- SAN JOSE 美術館
- 受け入れムード?
- 前日チェックイン
- 入館証と上着をもらう
- Keynote
- 入るまでも並ぶ(2, 3時間)
- CEO、役員クラスが話す
- 開発者よりビジネス向け
- 新しいiOSバージョン
- ハードウェア
- OPムービー
- The world is depending on you.
- Keynote
- あと
- 会場に残って、偉い人と写真撮影
- 昼食を早めにゲット
- Platforms State of the Union
- 開発者向けの内容
- Keynote よりは断然座れる
- What’s new をまとめた内容
- ハンズオン
- 芝生エリアもあった
- ラボ
- ふりかえり
- 乾燥していて意外と涼しい
開発中のアプリをXcode9 & Swift4に移行しました
- ハマったところ
- ライブラリがコンパルエラー
- 4つのうち1つだけ
- 代替ライブラリを探した
- マイグレーションもわりと優秀になった
- ライブラリがコンパルエラー
- Xcode9
Swift Package Manager
- WWDC
- San Jose には行った
- いろんな人に会えたので良かった
- Version 4 での変更内容
- 殆ど語られていない
- What’s New in Swift
- 02:25/slide7
- 7000+
- サーバサイドで使われることが多い
- 大きな変更があった(と語られたが)
- そんなになさそう?
- Swiftの言語バージョンを指定するのは前から
- Swift Evolution を調べた
- SE-0158
- マニフェストが変わった?
- SE-0162
- ?
- SE-0149
- SE-0150
- ワークフローの改善?
- Gitブランチも指定できるように
- SE-146
- プロダクトを定義できるようになった
- 他のパッケージに対してどのターゲットを公開するか?
- SE-175
- .resolvedのファイルが出来た?
- SE-0158
- マニフェストファイルの変更
- exclude がなくなった?
- まだ試してない
- まとめ
Codableことはじめ
- 自己紹介
- takasek
- Codableとは
- イケメンポイント
Codable
を宣言するだけでOK- カスタマイズも出来る
- どんなEncoder/Decoderでも利用できる
- CSVデコード出来る
- カスタマイズ
- コンパイラが型のメンバを自動生成している
- 既存実装を上書きできる
- キー名のカスタマイズ(codingKey)
- デコードロジック(init)
- とにかく自動生成してくれる
- クラスの継承も考慮してくれる
- Encoding Strategiesを決められる
- 組み込みのエラー制御
- 詳細なエラー情報を投げてくる
- 予期しないエラーはこない
- 独自のチェックも入れられる
- エンコーディングの詳細をカプセル化
- 抽象化されたフォーマット
XCTest.framework
- 自己紹介
- 学生
- アルバイト
- テストを書いていないって人が多いから
- Xcode 9.0
- 非同期テスト
- teardown
- 個々のメソッドにteadownを入れられるようになった
- 積むタイミングには注意
- 名前ありアクティビティ
- サブステップに分割出来るようになった
- runActivity
- ログが分かりやすくなる
- マルチApp
- 複数のアプリを扱えるようになった
- launch()に加えて、activate()が増えた
- 列挙型で状態が取れる
- UI Elements
- wait処理が増えた(existsがtrueになるまで待つ)
- firstMatchで早く処理できる
- screenshot
- スクリーンショットを取れる
- 単体では無力
- 保存
- XCTAttachment
- テスト中の情報を保存できるようになった
- 成功時に残しておく場合は
.keepAlways
する必要あり - まとめて保存する方法ない?
High Efficiency Image File Format (HEIF)について話します
- 自己紹介
- 新しい画像フォーマットに対応
- HEIF
- 今日は概要とデモだけ
- JPEGがデファクト
- 連続した画像をうまく保存できない
- 深度情報を保存できない
- Appleが求めた画像フォーマット
- HEVC
- コーデック形式
- H.264に比べて2倍の圧縮性能
- 今後10年はサポート
- HEIF
- 連続する画像の保存圧縮
- アニメーション
- 国際規格
- HEVC
- HEIFファイル
- HEIF作成にはNokiaのライブラリを使う?
- 実験
- 最後に
More Swift App Startup Time
- アプリの起動速度を高速化
- 困っていること
- dLibを増やすとアプリの起動速度が遅くなる
- SwiftのライブラリはDynamicFrameworkとしてリンクされる
- Carthage
- CocoaPods
- 増やすと遅くなる
- おすすめセッション
- App Startup TIme
- Dynamic Linkの歴史を紐解く
- Optimizing App Startup Time
- 計測と改善
- App Startup TIme
- dyld3(現状2.x)
- 新しいDynamic Linkerを作ってる
- 実用段階になったらリンク早くなる
- 計測手法と改善方法
- Optimizing Startup Time Lab
- めちゃくちゃニッチなLabがあった
- Optimizing Startup Time Lab
- Labで聞いたこと
- dLib増やしすぎると遅くなる?
- YES
- namespaceないし、frameworkないとつらい
- Prefixつければ?
- iOS11で入るか?
- まだ言えない
- dLib増やしすぎると遅くなる?
- 起動時間の計測方法
- まとめ
- 遅いのはどうしようもない
- Labで生き残る方法
- 台本を作っていく
- ゆっくり喋ってくれ
- 同じことを2人以上に聞く
Core ML
- 自己紹介
- メタプログラマー
- Vision Framework/NLP
- 学習済みモデルをAppleように変換?
- CoreML in depth をみれば分かる
- Q
- まとめ
- 使うのは簡単
- メモリーはめちゃくちゃ食うよ
5分でわかる Password AutoFill for Apps
- 自己紹介
- Password AutoFill for Apps
- なぜこの機能に注目した?
- 実装方法
- アプリ
- ContentTypeにusername/passwordが追加された
- Associated Domains にWebサービスを設定
- アプリ側にも設定
- サーバサイド
- ファイルを置く
- アプリ
- 実装したけど鍵マークが表示されない
- シミュレータでも実機でも出ない
- まとめ
CoreNFC
- NFCのAPIが来た
- セッションはなかった
- メリット
- 直感的
- 互換性
- 安い
- Reader/Writerモード(実装必須)
- 八重洲にNFC専門ショップ
- ユーザをトラッキングしたり(イベント)
- Wiiのコントローラーにも
- iPhone7とiPhone7+
感想
全体的に濃い内容が多く、非常にためになる内容ばかりでした。 個人的には新しいXCTestの内容に非常に興味をもちました。