Developing a Great App Clip with iOS 14 – Article I
Availability: iOS 14.0+
Create an app clip to make some of your app’s functionality available to users who don’t have the full app installed.
An app clip is a lightweight version of your app that offers users some of its functionality when and where they need it. Consider a coffee-shop app that users download from the App Store: it allows users to order a drink on their device, save favorite drinks, collect rewards, get special offers, and so on.
It’s a two-part article, our first session is an overview of AppClip. we have covered, app clip launches, User Experience, Available Frameworks, User Privacy. In second part we have to create one app clip on available public demo and also discuss with SwiftUI and Storyboard.
Article I
Developing a Great App Clip
Identify technology and other factors to help users quickly launch and use your app clip to complete a task.
Overview
An app clip is a lightweight version of your app that offers some of its functionality where and when users need it. In your Xcode project, your app clip is an additional target that shares code and assets with your app’s target. Your app clip also has access to the same frameworks that are available to the full app. For example, your app clip can request access to the camera, store sensitive data in the local keychain, connect to Bluetooth devices, and so on.
However, app clips come with limitations to protect user privacy and preserve resources. Review the technology that’s available to app clips before you identify which of your app’s functionality would make a great app clip.
Note: Your full app can have only one app clip, and it must support all of the app clip’s functionality.
Understand How Users Launch App Clips
Users launch app clips by performing one of the following invocations:
- Scanning an NFC tag or visual code at a physical location
- Tapping a location-based suggestion from Siri Suggestions
- Tapping a link in the Maps app
- Tapping a Smart App Banner on a website
- Tapping a link that someone shared in the Messages app (as a text message only)
When a user invokes an app clip, the system first validates the app clip’s metadata and its associated invocation URL. It then uses the URL to determine which metadata it displays on the app clip card, a sheet it presents upon invocation. The app clip card provides additional information and presents a button that the user taps to launch the app clip.
When the user launches the app clip, the system passes the URL to it. Upon launch, the app clip accesses the URL and parses it to extract information, and then uses the information to update its user interface.
Provide a Great User Experience
App clips don’t appear on the home screen, and users don’t manage them the way they manage full apps. Instead, the system removes an app clip from a device after a period of inactivity. Therefore, it’s important for your app clip to offer a polished user experience.
App clips avoid complicated interface elements like tab bars or complex forms, to provide a linear, focused user experience. Where app clips require people to perform a more complex task, they make use of technology that reduces complexity. For example, app clips may offer Apple Pay to pay for services and goods or make use of Sign in with Apple to avoid a complex sign-up form.
For design guidance, see Human Interface Guidelines.
Keep Your App Clip Small
App clips must be small — no more than 10 MB — to provide an instantaneous launch. If possible, keep your app clip well below this limit. For more information, see the second part Creating an App Clip with iOS 14.
Review Available Frameworks
App clips make use of SwiftUI and UIKit and have access to the same frameworks as your full app. However, the following frameworks aren’t available to app clips: CallKit, CareKit, CloudKit, HealthKit, HomeKit, ResearchKit, SensorKit, and Speech.
Using any of these frameworks in an app clip doesn’t result in compile-time errors, but their APIs return values that indicate unavailability, empty data, or error codes at runtime. For example, HealthKit’s isHealthDataAvailable() returns false when you call it from an app clip.
Preserve User Privacy
App clips come with limitations that ensure user privacy and prevent user tracking across apps and app clips, for example:
- The functionality provided by SKAdNetwork isn’t available.
- Limit App Tracking is always enabled in-app clips.
- App clips can’t request authorization to track the user with App Tracking Transparency.
- Both name and identifier for vendor return an empty string.
- isAdvertisingTrackingEnabled indicates limited tracking.
- App clips can’t request continuous location access. However, they may request the When In Use authorization, which resets automatically the next day at 4:00 a.m.
- App clips can’t request the Pass Type IDs Entitlement to read passes stored in the Wallet app. However, if your app clip contains functionality to add a pass to the Wallet app, you can check if this pass is already present. For more information, see Checking Whether a Pass Is in the Library.
- An app clip can’t share data with any other app except its corresponding full app. For more information, see Making Data Available to the App Clip’s Corresponding App.
In addition, app clips can’t access:
- Apple Music and Media
- Data from apps like Contacts, Files, Messages, Reminders, and Photos
- Motion and fitness data
Reserve Certain Functionality for Your Full App
To preserve resources and help ensure user privacy, app clips can’t perform background activity. For example, app clip’s can’t make use of the following:
- Background networking with URLSession
- Functionality enabled by the Background Modes capability as described in Pushing Background Updates to Your App
- Maintaining Bluetooth connections while the app clip is not in use
App clips provide an in-the-moment experience and focus on offering the quickest possible solution to an everyday task, so some functionality will work best in your full app. Reserve the following functionality for the full app:
- Advanced networking features like Bonjour. However, app clips may configure Wi-Fi networks using the Hotspot Configuration Entitlement.
- App extensions
- Customization and settings; for example, creation of a settings bundle
- Data handoff and document opening
- In-app purchases and in-app provisioning of payment cards
- Low-level Unix functionality; for example, BSD notifications
- Multiple scenes on iPad
- On-demand resources
- Promoting other apps
- Registration of custom URL schemes
- Requests for user reviews of the app, using StoreKit’s requestReview(in:) method
- Searching for paired Bluetooth devices