iOSDC 2017 day 2 午前 参加メモ

iOSDC 2017 2日目午前の参加メモです。

新しい画像フォーマットHEIFを用いたiOSアプリの通信量削減

  • 日経新聞社のiOSエンジニアの方
  • Live Photosのようなシーケンス画像を効率的に取り扱える
  • 深度、透過に対応
  • iOS11/iPhone7以上の写真がHEIFで保存されていることを確認
  • WebにアップするときはHEIFからJPEGに自動変換される
  • 日経新聞の朝刊画像を1週間分HEIF/WebP/JPEGで比較した
  • WebPはJPEGと比較して32%削減
  • HEIFはJPEGと比較して52%削減
  • エンコード処理は細かく調査していないがHEIFが一番遅かった
  • HEIFだとハードウェアデコードが可能(A9chip以降に限る)
  • HEIFは特許的にグレー(ffmpeg, GPAC/MP4Box)のところがあるので商業目的で使うのは避けた方がいい
  • 特許的にクリーンな方法を考えてみた(力技)
  • iPhoneをサーバしてHEIFエンコードするシステム

結婚式を支えた技術 Firebaseを活用したサーバレスiOSアプリケーション開発

  • メルカリ カウルのiOSエンジニアの方
  • 結婚式用のアプリを作成したアプリ
    • 写真を取って、サーバに送る
    • その写真にいいねできる
    • お知らせの表示
    • Push通知
  • Firebase Storage, Firebase Database, Firebase Notificationを利用して実現

触り心地の良いInteractive Transitionをマスターしよう

発表資料

  • エウレカでリードエンジニアとスクラムマスターを経験
  • アニメーションにこだわっているアプリは海外製が多い
  • アニメーションの基礎をマテリアルデザインから持ってきた
  • iOSガイドラインにはあまりアニメーションについて書かれていない
  • easing curveとdurationを意識
  • duraionの基準を設けてアプリで統一すると良い
    • 画面外への移動
    • 画面内への移動
    • フルスクリーンの移動
  • 人が遅いと感じる限界は400ms。その基準も設ける

実装について

  • アニメーションの2つのプロトコル
    • AnimatedTransitioning 通常のアニメーション
    • InteractiveTransitioning インタラクティブなアニメーション
  • 遷移のアニメーションはTransitioningDelegateで決める
  • 今日はInteractiveTransitioningについて
  • PanGestureでdispossしていく
  • duration 0.1にすると素早くジェスチャーした時に自然に見える
  • 指を離した時にSpringAnimationをしたい
  • UIViewAnimationのDurationを指定する必要がある
  • 適切なDurationの値は連立方程式を解く必要がある
  • そこでFacebookのpopを使う

AutoLayout と友達になる方法

発表資料

  • CyberAgentのエンジニアの方
  • IB上で行うAutoLayoutの設定の話
  • 友だちになる=1人でAutoLayoutを組めるようになる
  • 大切なこと2つ
    • 制約の正しい付け方と種類を理解する
    • 本当に正しい制約が貼られているか確認する