みなさんはiOS 17で登場したTipKitフレームワークを利用したことがありますか?ポップオーバービューを使用して、ヒントをアプリのUI上に表示させたり、ボタンなどの要素を直接指すような表示がとても簡単に実装できるようになりました。しかし、TipKitでは表示要素のカスタマイズにはタイトル、メッセージ、画像のみという制限があります。このため、デザイン要件によっては実際のプロダクトへの採用が難しい場面も多いのではないでしょうか。
TipKitを使わなくても、SwiftUIには対象要素にスポットライトを当てた上でポップオーバービューを表示するようなオンボーディングUIを構築する道具が揃っています。Shapeプロトコルを使った吹き出しコンポーネントの作成、Preferencesによる子要素のアンカーの収集、マスキングのためのModifierなどがそれにあたります。
このトークでは、実際のプロダクト開発を通して得た経験をもとに、実際の要件を想定しアプリケーションに導入する際の設計アプローチ例も交えながら、独自のオンボーディング機能をSwiftUIで実装するアプローチをご紹介します。