WWDC Quick Look 💓 By SwiftGGTeam
Wednesday@WWDC21

Wednesday@WWDC21

元の動画を見る

ハイライト

WWDC21 3 日目は、AR 写真測量、ショートカット アクションのデザイン、UIKit スタイル システム、Apple Watch のアクセシビリティ イノベーション、Vision Framework の文字セグメンテーション、iCloud キーチェーン検証コード ジェネレーター、発見可能性の設計原則に焦点を当てます。

主要内容

水曜日の WWDC21 の要約では、一連の具体的な技術アップデートがまとめられており、それぞれが現実世界の開発者のニーズに直接対応しています。

AR 分野: オブジェクト キャプチャを使用すると、開発者は数十枚の写真を使用して 3D モデルを生成できるため、外注のモデラーを雇う必要がなくなります。 EC商品の表示、ARメニュー、バーチャル試着などのシーンに最適です。

ショートカットと Siri: アクション設計ガイドラインでは、ユーザーが音声コマンドやショートカット コマンドを通じてより自然にアプリケーションを使用できるようにするために、どのアプリケーション機能を公開する必要があるか、およびパラメーターを設計する方法を示します。

UI フレームワークのアップデート: 新しい UIKitUIButton.ConfigurationそしてcontentConfigurationボタンとセルのスタイル構成をより宣言的にし、Interface Builder はさまざまなアクセシビリティ設定の効果のプレビューをサポートします。

アクセシビリティのイノベーション: Apple Watch の AssistiveTouch は、センサーと機械学習を組み合わせて腕の微小な動きを検出し、上肢に障害のあるユーザーがジェスチャーを通じてウォッチを完全に制御できるようにします。これは「少数のためにデザインして全員に利益をもたらす」という典型的なケースです。

Vision Framework: 人物セグメンテーション API は、キャラクターを背景から分離し、仮想背景とキャラクターの切り抜きを実現します。同時に顔検出はマスク着用をサポートし、姿勢指標は離散値から連続値に変更されます。

セキュリティ認証: iCloud キーチェーンには TOTP 検証コード ジェネレーターが組み込まれており、ワンクリック セットアップ、自動入力、デバイス間同期をサポートしており、SMS よりも安全で信頼性が高くなります。

設計原則: 発見可能性の設計により、ユーザーは視覚的な手がかり、漸進的な開示、一貫した対話、および閉じたフィードバック ループを通じてアプリケーションの機能を自然に発見できます。

詳細

オブジェクト キャプチャ: 写真から 3D モデルを生成

00:08

従来の 3D モデリングには専門的なソフトウェアとスキルが必要であり、サイクルが長く、コストが高くなります。 Object Capture は写真測量を使用して写真から 3D 構造を復元します。

API エントリは次のとおりですPhotogrammetrySession

import RealityKit

let inputFolderUrl = URL(fileURLWithPath: "/tmp/Sneakers/", isDirectory: true)
let session = try! PhotogrammetrySession(
    input: inputFolderUrl,
    configuration: PhotogrammetrySession.Configuration()
)

キーポイント:

  • iPhone、iPad、DSLR、またはドローンで写真を撮影できます
  • HEIC形式の写真は深度データを自動的に抽出します
  • 4 つの精度レベルをサポート: 縮小、プレビュー、縮小、生

非同期出力ストリームを処理します。

Task {
    do {
        for try await output in session.outputs {
            switch output {
            case .requestProgress(let request, let fraction):
                print("Request progress: \(fraction)")
            case .requestComplete(let request, let result):
                if case .modelFile(let url) = result {
                    print("Request result output at \(url).")
                }
            case .processingComplete:
                print("Completed!")
            default:
                break
            }
        }
    } catch {
        print("Fatal session error! \(error)")
    }
}

キーポイント:

  • for try awaitセッションが解放されるまでメッセージを受信し続ける
  • .requestProgressプログレスバーを駆動できる
  • .requestCompleteモデルファイルのURLを返す

ショートカット アクションのデザイン

00:13

良いアクションには、役に立つ、モジュール化されている、マルチモーダルである、明確である、発見可能であるという 5 つの特性があります。

便利: カレンダーへの「イベントの追加」やメールへの「メッセージの送信」など、ユーザーの実際の問題を解決します。

モジュール式: 入出力設計はユニバーサルであり、1 つのアクションの出力を次のアクションの入力として使用できます。

マルチモーダル: ショートカットのドラッグ、Siri の音声、システムの提案で同じアクションを使用できます。

明確: 名前は動詞で始まり、パラメーター ラベルは内容を正確に説明します。

検出可能: アプリ内でユーザーを教育し、システムに学習させるためのインテントを寄付し、ショートカットの例を提供します。

UIKit スタイル システム

00:22

iOS 15で導入されましたUIButton.Configuration

var config = UIButton.Configuration.filled()
config.title = "Continue"
config.image = UIImage(systemName: "arrow.right")
config.imagePlacement = .trailing
config.cornerStyle = .capsule

let button = UIButton(configuration: config)

細胞contentConfiguration

var content = cell.defaultContentConfiguration()
content.text = "Title"
content.secondaryText = "Subtitle"
content.image = UIImage(systemName: "star")

cell.contentConfiguration = content

キーポイント:

  • 構成は値タイプであるため、変更後に再割り当てする必要があります。
  • 動的タイプとアクセシビリティ設定に自動的に適応します
  • Interface Builder は、さまざまなアクセシビリティ設定の効果をプレビューできます

Apple Watchのアクセシビリティ

00:37

AssistiveTouch は 3 つのセンサーを組み合わせて腕の微動を検出します。

  • 加速度センサー(腕の動きを検出)
  • ジャイロスコープ(手首の回転を検出)
  • 心拍センサー(血流の変化を検出)

ジェスチャーには、つまむ、ダブルピンチ、フィスティング、ダブルフィスティングなどが含まれ、機械学習モデルによって日常の動作と区別されます。

キーポイント:

  • 新たなハードウェアは不要で、既存のセンサーを組み合わせることで実現可能
  • エネルギー消費を削減する低衝撃ジェスチャー設計
  • 4 つのジェスチャによる完全な操作: ナビゲーション、選択、スクロール、戻る

ビジョンフレーム文字セグメンテーション

00:48

Person Segmentation API:

let request = VNGeneratePersonSegmentationRequest()
let requestHandler = VNImageRequestHandler(url: imageURL, options: options)

try requestHandler.perform([request])

let mask = request.results!.first!
let maskBuffer = mask.pixelBuffer

品質レベル:

  • accurate:最高品質、コンピュテーショナルフォトグラフィーに適しています
  • balanced: バランスが取れており、フレームごとのビデオ処理に適しています。
  • fast:最速、リアルタイムストリーム処理に適しています。

顔検出はマスク着用をサポートし、姿勢インジケーター(ロール、ヨー、ピッチ)は離散値から連続値に変更されます。

iCloud キーチェーン検証コード ジェネレーター

00:55

iOS 15 では、TOTP 検証コード ジェネレーターが iCloud キーチェーンに組み込まれています。

ワンクリック設定のサポート:

// 在 App 中
func openVerificationCodeSetup(url: URL) {
    if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
        scene.open(url, options: nil, completionHandler: nil)
    }
}

// 在网页中
// <a href="apple-otpauth://totp/Example?secret=...&issuer=example.com">设置验证码</a>

キーポイント:

  • otpauth://URLプラスapple-プレフィックスは iCloud キーチェーンを直接開きます
  • SMS 認証コードのエクスペリエンスと一致して、認証コードが自動的に入力されます。
  • デバイス間で同期し、iCloud に安全にバックアップ

見つけやすさの設計

01:07

発見しやすさの設計により、ユーザーは次の 4 つの原則を通じて自然に機能を発見できます。

視覚的な合図: 主要な操作にはハイコントラストの色を使用し、新しい機能を促すにはバッジやアニメーションを使用します。

段階的な開示: 最初に基本的な機能を表示し、必要に応じて高度な機能を表示します。長押しやスワイプなどのジェスチャにより、さらに多くのアクションが表示されます。

一貫したインタラクション: プルダウンで更新、左スワイプで削除など、システムの標準インタラクション モードに従います。

フィードバック閉ループ: すべての操作には即時フィードバックがあり、ユーザーは「正しく実行できた」ことを確認できます。

重要ポイント

  1. 電子商取引製品の視覚化: オブジェクト キャプチャを使用して製品の 3D モデルを生成し、AR クイック ルックで表示することで、ユーザーは自宅で製品の実際のサイズと詳細を確認できるようになります。
  2. 音声ファースト アプリケーション プロセス: 高頻度の操作向けにショートカット アクションを設計し、ユーザーがアプリケーションを開かずにタスクを完了できるようにし、Siri と組み合わせてフル音声操作を実現します。
  3. 仮想背景とキャラクター カットアウト: Vision の人物セグメンテーションを使用して、サードパーティ SDK を必要とせずに、ビデオ通話や写真編集用の仮想背景を実装します。
  4. バリアフリーデザインの普遍的価値: AssistiveTouch はもともと上肢障害のあるユーザー向けに設計されましたが、そのジェスチャー制御方法はスポーツシーンでの片手操作など、すべてのユーザーに利益をもたらすことができます。
  5. より安全な認証プロセス: SMS の代わりに iCloud キーチェーン検証コードを使用して、セキュリティを向上させながらコストを削減します。エンドツーエンドの暗号化により、検証コードが漏洩することはありません。

関連セッション

コメント

GitHub Issues · utterances