WWDC Quick Look 💓 By SwiftGGTeam
WWDC22 Day 5 recap

WWDC22 Day 5 recap

元の動画を見る

ハイライト

WWDC22 5 日目のレビュー ビデオでは、iOS アプリのバッテリー最適化、サーバー上の Swift、ShazamKit オーディオ マッチング、iPad マルチウィンドウ、デバイス間の Nearby Interaction インタラクションなど、その日の主要なセッションを要約しています。

主要内容

アプリの消費電力を削減する

ディスプレイは主な電力消費源の 1 つです。この日のセッションでは、ディスプレイ関連の電力消費を最適化し、アプリをより省電力にする方法が紹介されました。

00:07

Swift on Server

Apple は、Xcode で iOS アプリと Swift Server バックエンドの両方を構築する方法を示しています。 Swift でサーバー側コンポーネントを作成すると、テクノロジー スタックのギャップを埋めることができ、フロントエンドとバックエンドでコードと型の定義を共有できるようになります。

00:15

ShazamKit オーディオ マッチング

Neil は、ShazamKit を使用してオーディオ ディレクトリとビデオを一致させる方法をデモンストレーションします。 Apple はまた、カスタム オーディオ カタログを大規模に管理するための重要なアップデートも導入しました。

00:23

iPad マルチウィンドウ

今日のセッションでは、iPad アプリ用に複数のウィンドウを作成する方法を説明します。プレゼンターは、読書を追跡するアプリを例として使用し、マルチ ウィンドウによってもたらされる生産性の向上を実証しました。

00:32

近隣インタラクションと Apple TV

レビュービデオは、デバイス間の三目並べゲームで終わり、Nearby Interaction フレームワークによってデバイスが Apple TV に簡単に接続して、クロスデバイスのインタラクティブ体験を実現する方法を示しています。

00:38

詳細

今日のセッションリスト

WWDC22 の 5 日目では、次のトピックが取り上げられました。

バッテリーとパフォーマンス

  • ディスプレイの消費電力を最適化し、デバイスの寿命を延ばします。
  • バックグラウンドアクティビティによるバッテリー消費を削減します

サーバーサイド Swift

  • Xcode で Swift Server プロジェクトを作成する
  • iOSアプリとモデルコードを共有
  • Swift Package Managerを使用して依存関係を管理する

オーディオとメディア

  • ShazamKit カスタム オーディオ ディレクトリ
  • 大規模なオーディオマッチング管理
  • オーディオ ディレクトリとビデオ コンテンツの同期

iPad の生産性

  • マルチウィンドウシーン構成
  • ウィンドウ管理と状態回復
  • 大画面向けに最適化されたインタラクションデザイン

デバイス間の対話

  • 近隣インタラクション フレームワーク
  • デバイスの検出と接続
  • ゲームセンターとしての Apple TV

三目並べのクロスデバイス インタラクションの例

import NearbyInteraction
import MultipeerConnectivity

// 发现附近的设备
let session = NISession()
session.delegate = self

// 通过 MultipeerConnectivity 建立连接后
// 交换 discovery token
func shareDiscoveryToken(_ token: NIDiscoveryToken, to peer: MCPeerID) {
    let data = try! NSKeyedArchiver.archivedData(
        withRootObject: token,
        requiringSecureCoding: true
    )
    // 发送给对等端
}

// 接收对方 token 后开始交互
func startInteraction(peerToken: NIDiscoveryToken) {
    let config = NINearbyPeerConfiguration(peerToken: peerToken)
    session.run(config)
}

// NISessionDelegate 回调
func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) {
    for object in nearbyObjects {
        if let distance = object.distance {
            print("距离: \(distance) 米")
        }
        if let direction = object.direction {
            print("方向: \(direction)")
        }
    }
}

キーポイント:

  • NISessionNearby Interaction のコアクラスです
  • 最初にデバイスを交換する必要がありますNIDiscoveryToken相互作用を確立する
  • 普段は協力的MultipeerConnectivityまたはCoreBluetoothトークン交換を完了する
  • NINearbyPeerConfigurationインタラクションパラメータを構成する
  • didUpdateコールバックは、空間認識 UI で使用できる距離と方向の情報を提供します。

重要ポイント

  • フロントエンドとバックエンドのテクノロジー スタックを Swift で統合: iOS アプリと Swift Server プロジェクトを Xcode で同時に管理し、データ モデルと検証ロジックを共有します。エントリ: Xcode -> ファイル -> 新規 -> プロジェクト -> Swift サーバー アプリ。

  • iPad アプリにマルチウィンドウ サポートを追加: UIScene 構成を使用して、アプリが同時に複数のウィンドウを開くことをサポートできるようにし、生産性シナリオでのユーザー エクスペリエンスを向上させます。入り口: Info.plist -> UIApplicationSceneManifest -> 複数のシーン デリゲートを構成します。

  • ShazamKit を使用してオーディオ認識を構築: カスタム オーディオ ディレクトリを作成して、アプリが特定のオーディオ コンテンツを認識できるようにします。美術館のツアー、イベントのチェックイン、コンテンツの著作権検証、その他のシナリオに適しています。入り口:SHCustomCatalog + SHSession

  • Nearby Interaction を使用して空間認識機能を実装: デバイス間の距離と方向を取得し、「見つける」や「近づいてロックを解除する」などのインタラクティブなエクスペリエンスを構築します。 U1 チップのサポートが必要です (iPhone 11 以降)。入り口:NISession + NINearbyPeerConfiguration

  • ディスプレイの消費電力を最適化し、バッテリー寿命を延長: アプリのアニメーション、リフレッシュ レート、背景表示の動作をチェックして、不必要な画面の更新を減らします。エントリ: 機器 -> エネルギーログ。

関連セッション

  • 基調講演 - WWDC22 のフルキックオフ、今週のリリースの概要を確認
  • Swift の新機能 — サーバーサイドの Swift 関連コンテンツを含む、Swift 言語の新機能
  • SwiftUI の新機能 — SwiftUI マルチウィンドウとナビゲーションの改善
  • Swift Charts の紹介 — データ視覚化のための新しいフレームワーク

コメント

GitHub Issues · utterances