Skip to content

Instantly share code, notes, and snippets.

@tikidunpon
Last active June 19, 2019 15:09
Show Gist options
  • Save tikidunpon/edcd5731cc8b11132ca50cbbfbec5d96 to your computer and use it in GitHub Desktop.
Save tikidunpon/edcd5731cc8b11132ca50cbbfbec5d96 to your computer and use it in GitHub Desktop.
CA.swift #9 WWDC19報告会参加メモ

connpassページ ハッシュタグ: #ca_swift

  • 『 Storyboard Preview by Swift UI 』板谷 晃良
    • 発表資料
    • https://github.com/AkkeyLab/StoryboardPreviewsBySwiftUI
    • wwdcに3名が参加した
      • 報告会2回目以上の方多い
      • SwiftUIに興味がある人結構多い
      • SwiftUI導入無理ぽい、iOS13だし。
    • Previewの話
      • Mastering Xcode Preview
      • 運用中のプロダクトに導入した話。タップル
      • 画面レイアウトの説明、タップルの
        • プロフィール画面のヘッダーっぽいところをプレビューしてみる
        • 名前は文字サイズを調整して対応
        • SEの場合は年確済みを非表示にする
        • 写真はURLを指定して画像を表示している、これは別のxibファイル
      • デモ
        • Cellに対してUIVIewRepresentableを適用
        • makeUIViewとupdateUIViewを実装
        • updateUIViewとPreviewProvidorをを実装するとプレビューに反映される
        • previewの段階で外部URL指定の画像ファイルも表示できている
        • ライブコーディングでAutoLayoutを修正
      • コードの説明
        • UIVIewRepresentableに準拠する
        • updateUIView
          • セッションでは何も触れていないが
          • ここで画像にURLを設定するとPreviewに出せる
          • contextは何が飛んでくるの?
            • 忘れました
        • Groupで複数のプレビューを表示
        • プレビュー用のターゲットを分けることでいい感じに対応できる
    • Agenda3
  • 『 Image Processing with Vision Framework 』横山 祥平
    • 発表資料
    • Visionフレームワークとは
      • iOS11から
      • コンピュータビジョンアルゴリズムを適用
      • 画像や動画の特徴を検出したりできる
    • Saliency
      • 顕著性
        • 画像内で目立つものや重要なもの
      • object-based saliency
        • 画像内の被写体や前景のオブジェクトのハイライト度合い
        • コードはattention baseとほとんど変わらない
      • attention-based saliency
        • 人々が見ている可能性が高い/低い
        • コントラスト、顔、被写体、地平線、光など複雑
        • コード
          • リクエストハンドラを作り、リクエストを作り、perform、監視オブジェクトを作りそこからpixelのバッファを得る
      • HeatmapでSaliencyを表示するデモ画像
      • Use Saliency
        • 写真閲覧の体験を向上させるユースケース
        • 写真ビューアでランダムに見える部分を拡大
    • Image Classification
      • Appleは大規模分類ネットワークを公開する段階
      • OSの写真アプリに使われている
      • Taxonomy
        • 階層構造に焼く1000クラスの分類
        • 意味を持つクラスでグループ化
        • 方向関係と親子関係を持つ、親は抽象的(犬とか)、子はパグとか
      • コード
        • knownClassificationsで今使える分類が取れる
        • ハンドラ作る、リクエスト作る、perform、監視オブジェクトの配列が返る、
          • ラベルに対する信頼度が取れる
          • 一つの画像に対して1000件近く結果が取得される、猫で試した
          • [(animal, 0.84)...]
      • Filtering result
        • hasMinimumPrecision
          • 精度
          • どれだけ無関係な結果よりも関連性の高い結果を返すか
        • hasMinimumRecall
          • 結果にどれくらい正解が含まれているか
        • Precision and recall
          • 検索エンジンの例
            • 検索エンジンで30件ヒット
            • そのうち20件が関連
            • 関連している40件がヒットしなかった
            • Presision 20/30 = 2/3
            • Recall 20/60 = 1/3となる
        • The PR Curve
          • Precisionが上がればRecallは低下する
          • クラスによって固有のカーブを描く
          • 曲線が上に位置すれば優れた検索システムといえる
        • observations?.filter { $0.hasMinimumPrecision(a, forRecall: b)}のように範囲を決める
        • F-measure
          • 最適なPrecisionとRecallを決める方法の一つ
          • F値が高いほど、バランスよく双方の値が高い
    • Image Similarity
      • 画像の類似度を判定
      • FeaturePrintという尺度で類似性を示す
      • FeaturePrint
        • 単語ベクトルのような画像ディスクリプタ
        • 値が小さいほど類似性の高さを示す
    • Other New API
      • Face capture quality, Face Landmarks Enhancements, Human detector, Cat and Dog detector, New Object Detector
  • 『 Sign In with Apple 』井原 岳志
    • 発表資料
    • Sign In with Appleとは
      • Respect for privacy
        • 名前とメアドしか取得できない
        • サービス毎にプライベートなメアドを発行可能
        • Appleは追跡しない
      • Security Built in
        • 2段階認証を設定しているApple IDのみで利用可能
        • AppleデバイスではFace ID or Touch IDでサインインできる
      • Works everywhere
        • iOS, macOS, tvOS, watchOS
        • jsでブラウザで動作可能
      • Antifraud
        • デバイス上で機械学習してユーザーかbotかを判定する
        • レスポンスに含まれている情報を参考にする
        • ASUserDetectionStatusに返ってくる
      • iOS 13のリリースと同時に利用可能
    • Sign In with Appleの構造
      • js側とネイティブで構造が少し異なる
      • jsはユーザー情報がまだとれず不完全な感じ
      • 共通のuser識別子はApple Developer Teamに所属するもの..聞き逃し
      • PrivateなEmailアドレスに送信可能なドメインまたは10件までの個別アドレス
      • OAuthやOpen ID Connectのような認証規格のKey群
      • 構造
        • App ID
          • 単一Appの場合はService ID不要
          • PrivateなEmailアドレス
        • Service ID
          • 新しく追加された概念
          • 共通のService識別子
          • Service識別子を用いてブラウザでサインイン可能
          • Primary App ID
          • App ID
    • Labで質問してきたこと
      • Privateなアドレスにメールを送信する方法
        • 事前に登録したアドレスorドメイン
        • 送信者と受診者が同一だと送れない
        • SIAを複数したときに最初に生成されたアドレスのみ有効
          • 毎回同じアドレスが生成されるように修正されていた
      • PrivateなアドレスのRevoke
        • 設定アプリまたはブラウザからService単位でRevoke可能
      • SIAJSでのユーザー情報のとり方
        • 未提供
      • 3rd Partyログインのボタンより上に置かないと駄目?
        • HIGからは文言が削除されている
      • 3rd PartyログインをサポートしててSIAやらないとだめ
        • まだ決めてない
      • AuthentifationServices.ASFoundationは何?
        • Foundationとの内部通信クラス
        • Jump to Definition出来ない
      • アカウントを複数持てるサービスでは同対応すればいいか
        • ひとつのAIDで複数アカウントの作成をサポートしていない
          • サービス側で解決するしかなさそう
      • サインインした後に年齢などを追加で取得するのはOK
        • サービスとして必要な情報は取得しても良い、FB連携も同様
        • SIAはあくまでサインインの手段
  • 『 Awaiting for New UI in iOS 13 』 仙石 晃久
    • 発表資料
    • Dark mode
      • iOS 13からサポート
      • 設定やコントロールセンターから変更できる
      • XcodeはDebugging Toolなどがある
      • Appleとしてはdark/lightの両方を推奨
      • ユーザーが作ったものはその特性を維持することを推奨
      • Implementing
        • System Color
          • light/darkを提供(Dynamic Color)
          • アクセシビリティにも対応
          • Gray2〜6が追加された
          • 交差する要素に使うのが適切、例えばグリッドライン
          • 色が重なっている時にalphaをいじるのを避ける
        • Semantic Color
          • 色の目的を表したColor
          • BackgroundColor
            • 階層化を想定
            • primary,secondary
            • elevated color(only dark)
          • Custom Color
            • コード
              • traitCollectionでdarkかを判定して適切な色を返す
            • Asset Catalog
        • Image
          • Dynamic Images
          • SF Symbolsを推奨
        • Materials and Vibrancy
          • Materialsは背後に描画されたコンテンツへのエフェクト
          • Vibrancyは背景によらずよく見えるやつ
        • StatusBarやMenuButtonが黒のまんまだったり
          • CALayerは動的に色が変わらない
          • Traitが更新されたタイミングで毎回CALayerの色を変えてあげる
        • その他
          • UIActivityIndicatorView
            • mediumとlargeが追加され、grayとwhiteが廃止
          • AttributedText
          • アイコンのSFSymbol化
          • Semantic Colorやる?
          • デザイナーやディレクターと相談
    • UI in iOS 13
      • Flexible UI
        • 2020年4月までに対応してね
        • スプラッシュ画面でLaunchImagegがdepでStoryboardで対応が必要
      • Sheet
        • defaultでModalがセミモーダル
        • 推奨
          • 複雑なことしない
          • 閉じるボタンをおけ
          • 処理を表すタイトル
          • 中断はアラートだして
        • UIModalPresentationStyle
          • デフォルトがautomaticに変更
          • ほとんどは.pageSheetでの表示
          • Landscapeモードはfullscreenがデフォルト
          • imagePickerのカメラはfullscreen
        • 閉じるときの対応
          • isModalPresentation = trueにする
          • 閉じるときに呼ばれるデリゲートを実装
      • UISearch Controller
        • カスタマイズができる
        • キャンセルボタンの表示非表示
        • スコープバーの表示非表示
        • UISearchTextFieldもカスタマイズできる
      • UISearchToken
        • テキストから検索条件を表示するUISeardhTokenが作成可能
        • 複数条件検索がやりやすくなる
      • Multiple Selection Gestures
        • 2本指で操作できるようになった
  • ゲスト LT 1 @rockname
    • 発表資料
    • Sign In With Apple JS、以下SIAJS
    • github
    • https://github.com/rockname/apple-js-sign-in-sample
    • SIAJS
      • jsライブラリ
      • web上でサインインできる
    • 下準備
      • capabilityを追加
      • service idを作成
      • descriptionとidを入力してconfigure
      • web domainとreturn urls(成功時のリダイレクト先)を入力
      • domainの検証
        • apple-developer-domain-assosciation.textをダウンロード
        • テキストをデプロイして検証
    • 実装
      • Apple JSを読み込む
      • Sign Inに必要な情報をメタタグで渡す、jsで書いてもいい
      • Sign inのボタンを配置
        • divで配置
        • data-color black or white
        • これもjsでかける
      • https:applesigninsample.web.app
      • ちゃんとやるなら
        • redirect先にURLクエリパラメータでcodeとsateが渡ってくる
        • stateの同一性を確認
        • code, もろもろをauth/tokenにPOST
        • 聞き逃し
    • SIWA済みのユーザーがAndroidに機種変したらどうなるの?
      • 同じサービスIDに所属していたら同じuser識別子が返ってくるのでサービス側で紐づけをやり直してあげればOKなはず。
  • ゲスト LT 2 @akatsuki174
    • 発表資料
    • Voice Controlについて
      • アクセシビリティの機能の一部
      • 音声で端末が操作できる
      • 今までも使えたがアップデートされた
      • Accessibilityが設定画面のTOPにきた、そこからVCをONにする、ステータスバーにマークがつく
      • 対応言語は現在英語のみ
    • できること
      • アプリを開く
        • Open [app name]でアプリが開く
        • 画面の右上にボイスコマンドが表示される
      • Show grid
        • 画面が分割されて、Top [number]でそのブロックのアプリが起動する
      • Show numbers
        • Tap [number]
      • Show names
        • Tap [name]
        • タップ可能なものの名前が出てくる
      • 文字入力もできる
      • カスタマイズ
        • コマンド変更や新規作成ができる
        • Twitterでカメラ起動などを登録できる
        • フレーズとアプリとアクションで登録できる。Actionにジェスチャを登録する
        • 単語登録
          • ww dcをwwdcと認識できるようになる
    • エンジニアは何を対応すればいいか
      • 標準UIはデフォルトでアクセシブル
      • Middle Button
      • Image名が自動でアクセシブルラベルになる
        • initializerのlabel引数にTextを指定すると良い
      • 高めるには
        • 計算機のxにmultiplyをあてるなど
      • 状態変化を自動で送信
        • チェックボックスが選択されたときなどにそれをフィードバックしてくれる
      • Accessiblitily in SwiftUI
      • ラボ情報共有会を7/2に開催します
  • ゲスト LT 3 @nameki
    • 発表資料
    • チケットなくても楽しかったよWWDC19 周辺現地レポート
    • Beyond WWDC
      • 沢山のイベントが同時開催されています
      • AltConf、try! Swift, Layers(desingerより)、Live near WWDC, Loop Bash
    • AltConf
      • San Jose Marriotでやっている
      • wwdcより1日短かい
      • 初日はKeynoteとpsotunionを一緒にみる
      • 今年は日本からも数名登壇
      • Swift over Coffeeの公開収録
      • Week in ReviewでJames Dempseyと歌で振り返るWWDC
    • Infinite Loop Apple社屋訪問
    • 閑話休題
      • Uberはいわずもがな
      • VTA,muni
      • レンタル電動スクーターがある
      • Squareが人気だった
    • イベントに参加してないときは
      • ライブ配信みたり
      • WebSoceket周りで遊んだり
    • Saliencyを試した
      • attention basedのほうで何も注目するものがないと中央に集まるのが面白かった
      • デモ
        • 左に元画像、右に注目された画像
        • 靴ずれした所に注目していたり
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment