Swift Concurrencyと歩む、プライバシーの許可リクエスト共通化 by Nao-RandD / ナオランド

iOSDC Japan 2024
採択
パンフ記事(4ページ)

Swift Concurrencyと歩む、プライバシーの許可リクエスト共通化

Nao_RandD Nao-RandD / ナオランド Nao_RandD
5

皆さん、*許可リクエストをしっかりハンドリングできてますか?👀

アプリ上で位置情報やATTなどのプライバシーデータを扱う場合、アクセスするために*許可リクエストを適切に行うことはアプリ開発者において重要な責務の一つです。
ただ、データを扱うフレームワークごとに許可リクエストのAPIは異なっており、後続処理の制御にコールバックが提供される場合もあれば、位置情報やBluetoothのようにDelegateパターンで提供される場合もあります。
そのため、複数のリクエストを同時に呼び出したり、”データをこのように使用します”という事前説明画面の後に呼び出すなど、前後処理に紐づけて柔軟に呼び出すケースでは複雑な実装となりがちです。

本記事では、以下の二つをコードを交えてハンズオン形式で紹介していきます。
・既存のコールバックやDelegateパターンの実装をSwift Concurrencyのasync/awaitで扱えるようにする
・異なるフレームワークの許可リクエストを共通のAPIから呼び出せるようにする

withCheckedContinuationでコールバックやDelegateを置き換えたり、Actorでデータ競合対策など、実際のコードを置き換えながら学んでいきましょう!

* 本記事では、プライバシーデータにアクセスするための処理を「許可リクエスト」と表現しています。