Introductions to App Clips on iOS 14

Ruturajsinh Jadeja
Mindful Engineering
5 min readSep 16, 2020

With the release of iOS14, we view App Clips as an innovative step by Apple.

Image credits: Apple

App Clips are a great way for users to quickly access and experience what an app has to offer. An App Clip is a small part of your app that’s discoverable at the moment it’s needed, even when the app is not installed on the phone.

The App Clip Invocation flow

The App Clip Invocation flow
Image credits: Appsflyer

App Clips start when a user interacts with an Invocation.

The Invocations

An App Clip is generated from an Invocation. An Invocation is not just a click, as you probably know from Universal Links. An Invocation is an object created by Apple, which currently only Apple tools or infrastructure can create for you.

Once the Invocation URL is verified, the iOS presents an App Clip Card to the user.

Image credits: Appsflyer

The Invocation methods

  • Safari Smart App Banner: Metadata can be added to the header of a website in order to create a Smart App Banner that will be presented in Safari.

Here is a sample code snippet that you are required to add:

<meta name=”apple-itunes-app” content=”app-clip-bundle-id=com.coffeeshop.retailapp.Clip, app-id=12345ABCD”>

Image credits: Appsflyer
  • iMessages: When you enable sharing within your App Clip, users can send it via iMessage, and the person who receives it can open it right from Messages.
Image credits: Appsflyer
  • NFC tag: Users can tap their iPhone on NFC tags that you place at specific locations to launch an App Clip, even from the lock screen.
  • QR Codes: Place QR codes at specific locations to let users launch an App Clip by scanning the code with the Barcode reader or the Camera app.
  • Place Cards in Maps: When your App Clip is associated with a specific location, you can register your App Clip to appear on a place card in Maps so users can open it from there.
  • Recently Used App Clips: App Clips don’t clutter the Home Screen, but recently used App Clips can be found and launched from the Recents category of the new App Library.

Every App Clip Invocation is associated with an Invocation URL. iOS must verify the Invocation URL to ensure that the publisher of the App Clip indeed owns the domain. iOS verifies the domain by accessing an Apple-App-Site-Association (AASA) file. This file is usually known for verifying Universal Links for a given domain.

In order to verify iOS14 App Clips you must add the following section to the AASA file:

{
"appclips": {
"apps": ["ABCED12345.com.fruitstore.feedmeapp.Clip"]
}
...
}

Important note about AASA files:

Apple announced at WWDC2020 that they intend to improve the access mechanisms of the AASA files from devices. Instead of the devices fetching the AASA directly from the domain associated with a given app, Apple fetches the AASA files and caches them in a CDN. The devices will access Apple’s CDN, and aggregate the AASA files fetching into more optimal reads and operations.

Image credits: Appsflyer
Image credits: Giphy

App Clip Experiences:

An App Clip Experience is an action offered to the user, for example, buying, renting, checking into a hotel, and the list goes on. Each Experience displays a different App Clip Card. If you’d like to display a specific App Clip Card, you must define a specific Experience.

However, if a business has multiple operations, it is recommended that you configure App Clip Experience for one or more operations, and use a different App Clip Card and Invocation URL for each operation.

Image credits: Apple

A default App Clip Experience is used to fire an App Clip from Smart App Banners and links that users share in the Messages app when Advanced App Clip Experiences are not configured.

No Invocation URL is required to register a default App Clip Experience.

Advanced App Clip Experience:

Advanced App Clip Experiences allow you to do the following:

  • Support all possible Invocations, including Invocations from NFC tags, and visual codes.
  • Associate your App Clip with a physical location.
  • Associate an Invocation URL with your App Clip.
Image credits: Apple
Image credits: Apple
Image credits: Apple

App Clip limitations:

Apple has imposed several limitations on App Clips to allow users to enjoy the instantaneous functionality with most privacy and transparency. These limitations serve to give the user with greater control over their privacy and become more confident with the privacy standards of the app.

  • App Clips are limited to 10MB in size.
  • The following frameworks are not available to App Clips: CallKit, CareKit, CloudKit, HealthKit, HomeKit, ResearchKit, SensorKit, and Speech. Using any of these frameworks in an App Clip does not result in compile-time errors, but their APIs return values that indicate unavailability, empty data, or error codes at runtime.
  • App clips cannot perform a background activity, such as background networking with URLSession or maintain Bluetooth connections when the App Clip is not in use.
  • To protect user data, Apple App Clips cannot access: Motion and fitness data, Apple Music and Media, Data from apps like Contacts, Files, Messages, Reminders, and Photos.
  • An App Clip cannot share data with any other app, except its corresponding full app.
  • An Important limitation is location access. App Clips cannot request continuous location access.

Conclusion:

App Clips represent a new stage in how applications will be consumed and developed while providing iOS users with greater instantaneous functionality.

The App Clips user experience can be categorized into two phases:

  • Here-and-Now’ — An App Clip for interactions between the user and their immediate environment, carried out in a simple but highly secure way.
  • ‘On-Going-Universal’ — A full app that allows the user to constantly engage with the app’s functionality and receive notifications and services globally.

I hope you like what you read 🙂. Let me know your thoughts in the comment box below!, that’s it for now.

References:

Image credits: Giphy

--

--

Ruturajsinh Jadeja
Mindful Engineering

iOS developer at @MindInventory. #Swift, #ObjC, #ReactNative