Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOS_DC_2018_参加レポート.pdf

SatoshiN
September 04, 2018
23

 iOS_DC_2018_参加レポート.pdf

SatoshiN

September 04, 2018
Tweet

Transcript

  1. Haptic(触覚) Feedback による効果的な マイクロインタラクション • iOS で 何かの動作を行った際に 「ブッ」 となるやつの実装例

    • Human Interface Guideline でも 乱用はしないようにと記載 • 以下の 3 種類を 適材適所で使うと 最近のアプリっぽくなる • Notification 「 Success, Warning, Failure 」 • Impact 「 Light, Medium, Heavy 」 • Selection 「 selection 」
  2. 詳解Fastfile • 巨大な Fastfile を 避けるための Tips • Fastfile に集約させないために

    Appfile, Gymfile, Scanfile などで分割するといい • 通常開発 =>autosign CI ・配布・リリース =>manual を buildconfig でそれぞれ設定 するといい • Fastlane のデバッグで 「専用のブランチに push して ログ出力して … 」などを行ってい る場合は ローカル で走らせて pry 使うと捗る
  3. Depth in Depth • iOS12 から使える PortraitMatte で深度からマスクを簡単にとれる (1. 深度データが入ってる静止画

    & 人が写ってる場合のみ利用可能 ) (2. 前面カメラからだけではなく、背面カメラからも取得できる ) • iOS11 までで深度から綺麗なマスク取ろうとすると三手間くらい 掛かるが実装可能。境界は多少ギザギザしてしまう。 詳細記事 Portrait Matte で背景分離/セグメンテーション デプス(深度)を iOS で扱う方法を網羅したサンプルコード集 「 iOS-Depth-Sampler 」を公開しました
  4. ARKit Maniacs • 建物程度の広さで ARWorldMap を利用して永続化可能か?の実験 → ビルいけた。データサイズが問題? → 50

    〜 150MBMB の範囲では relocalize で現在地点を見つける 0.01s くらい • EnvironmentTextureing → .automatic でよさそう • 平面をみつけてからの Tips → 平面を検知しつづけるので一度検知したら画面タップ等で 検知を止める機構いれるとユーザーのストレスすくないよね
  5. LIFULL HOME'S「かざして検索」リリースの裏側 • CoreML + Vision + ARKit を実際のプロダクトでリリースした際の Tips

    • 実際のプロダクション環境でリリースする際の問題 ( 学習モデルをダウンロード , モデル容量は CoreMLTools で落とす , Vision の fps 制御 ) • 学習モデルはサーバーからダウンロードなので比較的容易な機能強化
  6. MicroViewControllerで無限にスケールするiOS開発 • ChildViewController + StackView を利用して UI の部品を UIView ではなく

    UIViewController で 実装する • VC なので 部品毎に ライフサイクル持てるため 開発スピード UP • Storyboard でなく XIB で レイアウトを行う (xib 使って初期化にすると ViewController も generics 使えるようになる等 ) • プロトコルを 3 つ定義して VC 同士を疎結合に サンプルコード https://github.com/mercari/Mew
  7. iOSエンジニアの為のgrpc-swift入門 • grpc (google の rpc 通信プロトコル ) • 同じ立ち位置としては

    REST だったり GraphQL とか • リクエストとレスポンスが定義した型で包まれるため REST の問題点を解消できる • ただ protbuff でやりとりするため デバッグが辛い • TCP コネクションを使い回すことになるのでロードバランサー動かない
  8. iOS × GraphQLの嬉しみとつらみ • エラーハンドリング辛い • 発行 Query によっては N+1

    問題の対応が辛い • クエリの一部成功、一部失敗が起きうるのが辛い • 404でもstatuscodeが200で返ってくるのが辛い
  9. 所感 • AR や機械学習 は 飛び道具の時代が終わり一般的なものにシフトしつつある • アーキテクチャー や Rx

    とか 設計手法は出揃った感 • HapticFeedback や 3DTouch などマイクロインタラクションは 重要な箇所で • Swift5 の async/await は 雰囲気 Rx の代替 になりそうでインパクト大 • grpc や GraphQL の ツラミやデバッグツールが出たら一気に普及しそう