App Clip là phiên bản nhẹ của ứng dụng iOS, khởi chạy tức thì mà không cần cài đặt trên thiết bị. Được giới thiệu trong iOS 14, công nghệ này cho phép người dùng truy cập vào một chức năng cụ thể của ứng dụng bằng cách quét thẻ NFC, mã QR hoặc App Clip Code. Kích thước App Clip không vượt quá 10 MB và quá trình khởi chạy mất chưa đến hai giây. Đây là giải pháp của Apple để tương tác tức thì với ứng dụng gốc mà không cần cài đặt đầy đủ.
Những điểm chính
App Clip là công nghệ của Apple dành cho iOS cho phép khởi chạy một phần nhỏ của ứng dụng đầy đủ mà không cần cài đặt. Khi người dùng quét thẻ NFC, mã QR hoặc App Clip Code, hệ điều hành tải xuống và mở App Clip dưới dạng thẻ phía trên màn hình hiện tại. Apple đã thiết kế App Clip cho các kịch bản “thanh toán, đặt hàng hoặc đăng ký” — những hành động phải được thực hiện mà không có ma sát và chờ đợi.
App Clip hoạt động ở chế độ tạm thời. iOS lưu trữ dữ liệu App Clip trong một thời gian giới hạn (thường là vài ngày hoặc cho đến khi người dùng xóa rõ ràng). Nếu người dùng cần cùng một chức năng lần nữa, App Clip sẽ được tải xuống lại. Apple cố tình giới hạn tính bền vững của App Clip để khuyến khích cài đặt ứng dụng đầy đủ cho sử dụng liên tục. Dữ liệu được tạo trong App Clip tự động được chuyển đến ứng dụng đầy đủ khi cài đặt qua CloudKit.
Ví dụ thực tế: quét thẻ NFC trên bàn nhà hàng để đặt món và thanh toán (Panera, Pizza Hut), mã QR trên xe scooter thuê để mở khóa (Lime, Bird), App Clip Code tại máy đỗ xe để thanh toán (PayByPhone), quét sản phẩm trong cửa hàng để mua (Shopify). Tất cả các kịch bản này đều có chung một điểm — một tác vụ giao dịch được hưởng lợi từ việc không có bước cài đặt.
App Clip được kích hoạt thông qua năm cơ chế. Phổ biến nhất là thẻ NFC (chạm để khởi chạy App Clip), mã QR (quét camera hiển thị thẻ App Clip ở cuối màn hình) và App Clip Codes (mã trực quan độc quyền của Apple với viền có hoa văn và thẻ NFC tích hợp). App Clip cũng khởi chạy qua Safari App Banner và liên kết iMessage.
App Clip Code là công nghệ được cấp bằng sáng chế của Apple. Không giống như mã QR, App Clip Codes trông thẩm mỹ — chúng hỗ trợ màu thương hiệu và logo ở trung tâm, với URL được mã hóa trong các sóng giống âm thanh xung quanh các cạnh. Mã này chứa thẻ NFC tích hợp, cung cấp cơ chế khởi chạy kép: quét trực quan và chạm. Apple cung cấp các công cụ tạo App Clip Code qua cổng App Store Connect.
// SceneDelegate.swift — xử lý khởi chạy App Clip qua NSUserActivity
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene,
willContinueUserActivityWithType userActivityType: String) {
// Chuẩn bị cho NSUserActivity đến
}
func scene(_ scene: UIScene,
continue userActivity: NSUserActivity) {
guard let invocationURL = userActivity.webpageURL else { return }
// Phân tích URL và điều hướng đến màn hình yêu cầu
handleInvocationURL(invocationURL)
}
private func handleInvocationURL(_ url: URL) {
// Ví dụ: /order/restaurantID — màn hình đặt hàng
// Ví dụ: /pay/parkingID — màn hình thanh toán
}
}Tất cả các bộ kích hoạt cuối cùng tạo ra một NSUserActivity với tham số webpageURL chứa ngữ cảnh gọi. App Clip phân tích URL này và hiển thị màn hình tương ứng. App Clip cũng hỗ trợ bộ kích hoạt vị trí địa lý — iOS có thể đề xuất App Clip khi người dùng ở gần một địa điểm cụ thể (ví dụ: gần quán cà phê có App Clip).
Phát triển App Clip bắt đầu từ một dự án Xcode hiện có của ứng dụng đầy đủ. Bạn thêm một target App Clip mới — nó sử dụng cùng dự án, cùng nhóm và hầu hết mã chung. Target App Clip chỉ bao gồm các tệp, storyboard và tài nguyên cần thiết cho chức năng cụ thể. Apple cung cấp một mẫu App Clip với các entitlements và khóa Info.plist được cấu hình sẵn.
// AppClip/ProductViewModel.swift — logic chung giữa App Clip và ứng dụng đầy đủ
import Foundation
import StoreKit
class ProductViewModel: ObservableObject {
@Published var items: [Product] = []
@Published var total: Decimal = 0
func checkout() {
// Gửi đơn hàng qua API
}
func showInstallPrompt() {
// Hiển thị SKOverlay để cài đặt ứng dụng đầy đủ
guard let scene = UIApplication.shared()
.connectedScenes
.first(where: { $0 is UIWindowScene }) as? UIWindowScene else { return }
let overlay = SKOverlay(configuration: SKOverlay.AppClipConfiguration(
position: .bottom
))
overlay.present(in: scene)
}
}
// AppClip/MainViewController.swift — màn hình chính của App Clip
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Giao diện nhỏ gọn cho thẻ App Clip
// Sử dụng SF Symbols để giảm kích thước
// Chỉ tải dữ liệu cho giao dịch hiện tại
}
@IBAction func openFullApp(_ sender: Any) {
// Mở trang ứng dụng trong App Store
guard let url = URL(string: "https://apps.apple.com/app/id123456789") else { return }
UIApplication.shared.open(url)
}
}Target App Clip sử dụng cùng Apple Developer Team ID và Bundle ID như ứng dụng chính (với hậu tố .Clip). Các entitlements chính: com.apple.developer.app-clip và các miền liên kết để xử lý URL. App Clip hỗ trợ Apple Pay, Sign in with Apple, StoreKit cho mua hàng và Core Location. Một số framework không có sẵn: chế độ nền, HealthKit, Media Library và một số API cảm biến.
Giới hạn kích thước App Clip được Apple kiểm soát chặt chẽ — không quá 10 MB khi nén. Việc kiểm tra được thực hiện ở giai đoạn tải lên App Store; các bản dựng vượt quá giới hạn sẽ bị từ chối. Kích thước bao gồm mã nhị phân, tài nguyên (storyboard, danh mục tài sản) và các framework được liên kết. Các thư viện thời gian chạy Swift là một phần của iOS và không được tính, nhưng framework của bên thứ ba làm tăng kích thước.
| Phương pháp tối ưu hóa | Hiệu quả | Ghi chú |
|---|---|---|
| Làm mỏng danh mục tài sản | 30–60% | Tỷ lệ hình ảnh đơn (3x), loại trừ các idiom thiết bị không sử dụng |
| SF Symbols | Đáng kể | Biểu tượng hệ thống miễn phí — không bao gồm biểu tượng tùy chỉnh |
| SwiftUI thay vì UIKit | 20–30% | SwiftUI yêu cầu ít framework liên kết hơn |
| Tối thiểu phụ thuộc | Thay đổi | Chỉ bao gồm các framework cần thiết cho chức năng App Clip |
| Tài nguyên theo yêu cầu | Thay đổi | Tải dữ liệu không quan trọng (hình ảnh) sau khi khởi chạy |
| Loại bỏ mã | 10–40% | Loại bỏ mã chết và tối ưu hóa toàn bộ mô-đun trong Swift |
Xcode cung cấp báo cáo kích thước App Clip trong Organizer sau khi lưu trữ. Báo cáo phân tích kích thước theo thành phần (mã, tài nguyên, framework) và hiển thị kích thước tải xuống ước tính. Apple khuyến nghị giữ App Clip trong phạm vi 8 MB để tính đến sự khác biệt về nén trên các kênh phân phối khác nhau.
Kịch bản sử dụng App Clip bao gồm bốn giai đoạn. Khám phá: người dùng gặp thẻ NFC, mã QR hoặc App Clip Code trong thế giới vật lý. Khởi chạy: quét hoặc chạm tải App Clip (dưới 2 giây, thường là 1 giây). Tương tác: App Clip mở dưới dạng thẻ với một chức năng duy nhất — màn hình đặt hàng, thanh toán hoặc đặt chỗ. Hoàn thành: người dùng hoàn thành tác vụ và thấy đề xuất cài đặt ứng dụng đầy đủ qua SKOverlay hoặc liên kết App Store.
Apple đặc biệt chú trọng đến quyền riêng tư trong App Clip. Hệ thống yêu cầu quyền camera, vị trí và thông báo riêng cho App Clip. Dữ liệu được tạo trong App Clip (thông tin thanh toán, tùy chọn) được lưu trữ cục bộ và chuyển đến ứng dụng đầy đủ qua CloudKit khi cài đặt. App Clip không thể yêu cầu các quyền nhạy cảm (Health, Motion, Media Library) — những quyền này yêu cầu cài đặt ứng dụng đầy đủ.
Một tính năng quan trọng là SKOverlay, một phần tử iOS gốc xuất hiện ở cuối màn hình App Clip và đề xuất cài đặt ứng dụng đầy đủ. SKOverlay không yêu cầu truy cập App Store và hoạt động trong ngữ cảnh của ứng dụng hiện tại. Người dùng có thể cài đặt ứng dụng đầy đủ chỉ bằng một chạm, và App Clip tự động chuyển tất cả dữ liệu đã tạo sau khi cài đặt.
| Đặc điểm | App Clip (iOS) | Instant App (Android) |
|---|---|---|
| Giới hạn kích thước | 10 MB nén | 10 MB tổng |
| Phương pháp khởi chạy | NFC, QR, App Clip Code, Safari, iMessage, vị trí | Deep link, Google Play “Dùng thử ngay”, NFC, QR |
| Phát triển | Xcode + Swift (target đơn) | Android Studio + Kotlin (mô-đun tính năng) |
| Hỗ trợ | iOS 14+ (iPhone, iPod touch) | Android 5.0+ (API 21+) |
| Lưu trữ dữ liệu | Tạm thời, chuyển đến ứng dụng đầy đủ | Tạm thời (cookie API), chuyển |
| Kiếm tiền | Apple Pay, StoreKit | Google Pay, Google Play Billing |
| Kích hoạt trực quan | App Clip Code (định dạng độc quyền) | Mã QR tiêu chuẩn |
Cả hai công nghệ — App Clip và Android Instant App — giải quyết cùng một vấn đề: khởi chạy tức thì ứng dụng gốc mà không cần cài đặt, nhưng sử dụng các phương pháp nền tảng khác nhau. App Clip bị giới hạn hơn (chỉ iOS, hệ sinh thái nhỏ hơn), nhưng cung cấp tích hợp sâu với Apple Pay và hệ sinh thái thiết bị Apple. Instant Apps thắng thế với phạm vi Android rộng hơn và các bộ kích hoạt linh hoạt, bao gồm mã QR tiêu chuẩn không cần cơ sở hạ tầng bổ sung.
Câu hỏi thường gặp
App Clips yêu cầu iOS 14 trở lên và hoạt động trên iPhone 6s trở lên, iPod touch (thế hệ thứ 7) và tất cả iPad có chip A9 trở lên. Quét App Clip Code có sẵn qua ứng dụng Máy ảnh tích hợp. Khởi chạy qua thẻ NFC yêu cầu iPhone XR/XS trở lên (iPhone 7/8 có thể đọc NFC nhưng không thể khởi chạy App Clip).
Không, App Clip phải được liên kết với một ứng dụng iOS đầy đủ trong App Store. App Clip không thể được xuất bản độc lập. Ứng dụng đầy đủ và App Clip sử dụng cùng Apple Developer Team ID và Bundle ID (với hậu tố .Clip). Apple định vị App Clip như một điểm vào của ứng dụng đầy đủ, không phải là cơ chế phân phối độc lập.
Kích thước tối đa của App Clip là 10 MB nén. Apple kiểm tra nghiêm ngặt giới hạn này khi tải lên App Store. Khuyến nghị giữ kích thước trong phạm vi 8 MB để tính đến sự khác biệt về nén. Sử dụng SF Symbols, SwiftUI và giảm thiểu phụ thuộc bên thứ ba để tuân thủ giới hạn.
Không, App Clips không thể gửi thông báo push. Apple đã cố tình chặn khả năng này để ngăn chặn thư rác. Thông báo cục bộ được cho phép trong vòng đời ngắn của App Clip. Để nhận thông báo, người dùng phải cài đặt ứng dụng đầy đủ. Đây là điểm khác biệt chính so với PWA và ứng dụng gốc đầy đủ.
iOS lưu trữ dữ liệu App Clip trong thời gian giới hạn (thường 7–30 ngày không hoạt động). Nếu người dùng cài đặt ứng dụng đầy đủ, dữ liệu tự động được chuyển qua CloudKit. Nếu không cài đặt, iOS xóa App Clip và dữ liệu của nó. Người dùng cũng có thể xóa thủ công App Clip qua Cài đặt trong phần “App Clips”.
Đối với một kịch bản đơn giản (đặt hàng + thanh toán), việc thêm App Clip vào ứng dụng iOS hiện có thường mất 2–4 tuần cho một nhà phát triển. App Clip sử dụng hầu hết cơ sở mã của ứng dụng chính, do đó chi phí thấp hơn đáng kể so với xây dựng ứng dụng riêng từ đầu. Thời gian chính được dành cho tối ưu hóa kích thước và cấu hình bộ kích hoạt.
App Clip hỗ trợ Apple Pay, Sign in with Apple, StoreKit, Core Location, MapKit và PushKit (chỉ VoIP). Không có sẵn: HealthKit, ResearchKit, HomeKit, CarPlay, Metal (phạm vi đầy đủ), chế độ nền (background fetch, location updates) và Media Library. App Clip cũng không thể truy cập micrô và một số cảm biến thiết bị.
Tóm tắt
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm