branch10480’s blog

Topics that I learned.

AppClips の探求 まとめ

App Clips 理解に必要な3つの概念

  1. App Clips は付加機能なので、アプリ本体が必要
  2. App Clip Experiences
  3. App Clips 自体について

f:id:branch10480:20200705141611p:plain

App Clip Experiences

iOS14 で開いた際に、Webブラウザの代わりに App Clip で処理されるURLのこと。

作成手順は Universal Links とほぼ同じだが、違いがある。

Universal Links

Appleアプリのサイト関連付けファイルで定義される。

App Clips

App Store Connect で定義される。

この App Clip Experience 作成については WWDCセッション「App Clipの設定とリンク」で詳しく解説されている。

App Store Connect に登録が完了後、App Clip が公開されると、そのURLを開いた時に表示が行われる。

読み取り方法としては

  • QRコード
  • NFCタグ
  • Safari、メッセージのリンク
  • ビジネスやマップ
  • App Clipコード

App Clipコードとは?

NFCと視覚コードの使いやすさを組み合わせたもので、タップしたりスキャンしたりすることができる。

App Clip実装について

ターゲット作成

実装にあたり、Xcodeで2つ目のアプリケーションターゲットを作成する必要がある。このターゲット内には App Experienceを処理するために必要なすべてのコードとアセットが含まれる。

容量は 10MBまで

ダウンロードしてすぐに起動できるように、10MBまでの容量にすることが必要。

ExperienceのURLは体験毎に1つずつ

e.g.

  • 決済体験 Experience
  • 各店舗毎に別々の Experience

App Clip のアプリへの追加

  1. 新しいターゲットを作る(App Clip ターゲット)
  2. 依存関係の追加
  3. 共有アセットカタログの設定(共有したいものだけを入れ込むことにする)
  4. ターゲットに含まれるSwiftソースファイルの選択
  5. ターゲットのSwiftコンパイラのカスタムフラグセクションでDebug、Releaseスキーム両方にAPPCLIPという新しいカスタム条件を定義

センシティブなユーザーデータへのアクセスは制限される

データへのアクセスの際は、アクセスが可能かを毎回確かめる必要がある。

健康やフィットネスなどの一部の機密データへのアクセスを全面的に制限している。

e.g. HKHealthStore isHeathDataAvailableは常にfalseを返す

使用するフレームワークのベストプラクティスに従うこと!

詳しくは「App Clipを効率化する」セッション参照

カスタムURLスキーム、ドキュメントタイプ、ユニバーサルリンクはサポート外

Custom URL Scheme をサインインのコールバックとして使用している場合、 ASWebAuthenticationSessionを使用する必要がある。

App Clipの使用サイクルについて

QRコードを読み取りApp Clipがダウンロードされ起動後、一定期間アプリを起動しないと以下が削除される。

  1. App Clip
  2. App Clipのデータコンテナ
  3. App Clipのキーチェーン

その後、改めてユーザーが同じコードを読み取った場合は同様のプロセスが繰り返される。

App Clipsはデバイスにデータを保存することが可能であるが、システムの判断で削除される可能性があるため、一時的なキャッシュの様に扱うこと!

その他

カメラ、マイク、Bluetoothへのアクセス認証は自動的に権限移行される。

共有データコンテナにデータを移行すれば、フルアプリへのデータ移行ができる。

App Clipでユーザーをアカウントに関連付けることでメリットがある場合は、AuthenticationServicesのASAuthorizationControllerを使用するとよい。