Closed7

WWDC2021 のメモ

Yusuke AriyoshiYusuke Ariyoshi

Keynoteで気になったもの

  • async/await/actor: Swift で並行処理のコードをシンプル・安全に書ける
  • In-App Events (App内イベント): アプリの動的なコンテンツをApp Storeに表示できる
  • Xcode Cloud: ビルド、テスト、配布 (Xcode と統合されたCIサービス)
Yusuke AriyoshiYusuke Ariyoshi

Platforms State of the Union - WWDC 2021 - Videos - Apple Developer

Xcode Cloud

  • ベータ登録あり
  • Xcode からワークフローの設定や実行ができる
  • Slack への通知も可能

async/await

  • Structured Concurrency (構造化された並行性)
    • 同時に行うタスクを整理し推論しやすくする方法
      • 並行の小タスクを簡単に作成できる
      • 「ダンサーのウォームアップが終えるのを待つ」タスクが完了してから「舞台装置を持ってくる」タスクを行っていたコードを書き変える例。これらを並行に処理できるようにする
    • 共有状態へのアクセスが並行タスク間で確実かつ安全に調整される
    • Actor が中核
  • Actor は業界で実証済みのモデル
    • 相互排他的なアクセスのみを提供することで自身の状態を守るオブジェクト
    • 並行のアクセスとそれに伴うローレベルのデータ競合を完全に排除する
    • DispatchQueue をいくつも書くパターンではミスが起きがちだった
  • Swift ではactor キーワードで宣言できる
    • async/await で相互排他性を保証する
    • 手動で同期させる必要がない
  • メインキューにdispatch していた関数を@MainActor を使って書ける
  • 言語仕様に組み込んだので、 パフォーマンス改善も可能になる
    • コンパイラが賢くなるにつれて並行コードの速さも向上する

SwiftUI

  • List への機能追加 (1行で書ける)
    • スワイプアクション .swipeActions
    • pull-to-refresh .refreshable
    • 検索フィールド .searchable
  • 自動で見栄えを調整するUI が1行のコードで実現可能

Swift Playgrounds 4

  • iPad でSwift やSwiftUI のコードが書ける
  • アプリをApp Store Connect へアップロードできる

AR

  • Object Capture で3Dモデルを簡単に作れる

Metal

  • M1 リリース
  • Apple のCPU, GPU, Metal でUnified Metal Graphics Platform (統合型グラフィックスプラットフォーム) を実現
    • 10億台以上のデバイス
    • あるゲームはMac 版とiPad 版をリリースできた
  • ゲームや開発ツールのようなアプリで高性能のグラフィック処理が可能

  • 通知への新しいアプローチ
  • Interruption Level API
    • 緊急性を指定して通知を扱うことが出来る
  • 新しいUser Notification API
  • Focus Status API
  • Screen Time API

SharePlay

  • GroupActivities フレームワーク
  • 複数のデバイスで動画再生を同期
    • コンテンツのデータは送受信しない (各端末がサーバーからデータをダウンロードするため高品質)
  • E2E 暗号化でプライバシーが保たれる
  • ホワイトボードに描くペンの動きを同期する例
    • 画面共有ではないので全員の端末から書き込める
Yusuke AriyoshiYusuke Ariyoshi

App Store Review Guideline

App Store Review Guideline updates now available - News - Apple Developer

  • 5.1.1(v): Apps supporting account creation must also offer account deletion.

App Store Review Guidelines - Apple Developer

(v) Account Sign-In: If your app doesn’t include significant account-based features, let people use it without a login. If your app supports account creation, you must also offer account deletion within the app. Apps may not require users to enter personal information to function, except when directly relevant to the core functionality of the app or required by law. If your core app functionality is not related to a specific social network (e.g. Facebook, WeChat, Weibo, Twitter, etc.), you must provide access without a login or via another mechanism. Pulling basic profile information, sharing to the social network, or inviting friends to use the app are not considered core app functionality. The app must also include a mechanism to revoke social network credentials and disable data access between the app and social network from within the app. An app may not store credentials or tokens to social networks off of the device and may only use such credentials or tokens to directly connect to the social network from the app itself while the app is in use.

Yusuke AriyoshiYusuke Ariyoshi

気になってるもの

  • Swift async/await
  • SwiftUI modifier 追加 (.swipeActions, .refreshable, .searchable)
  • Xcode Cloud
  • SF Symbols 3
  • StoreKit 2
  • アプリ内イベント
  • 製品ページ A/Bテスト
  • カスタム製品ページ
このスクラップは2021/07/17にクローズされました