Thành phần và khả năng tương thích
Ứng dụng nhỏ là những ứng dụng nhỏ (thường là 2-4 MB) cần có siêu ứng dụng để chạy. Điểm chung của những lớp này (bất kể ứng dụng lớn) là được xây dựng bằng ("phương ngữ" của) các công nghệ web HTML, CSS và JavaScript. Thời gian chạy của ứng dụng nhỏ là WebView trong siêu ứng dụng, không phải là hệ điều hành cơ bản, giúp các ứng dụng nhỏ đa nền tảng. Cùng một ứng dụng nhỏ có thể chạy trong cùng một ứng dụng cao cấp, bất kể ứng dụng đó chạy trên Android, iOS hay một hệ điều hành khác. Tuy nhiên, không phải ứng dụng nhỏ nào cũng có thể chạy trong mọi ứng dụng cao cấp, sẽ có thêm thông tin về việc này sau.
Chiến dịch Khám phá
Các ứng dụng nhỏ thường được phát hiện nhất định thông qua mã vạch 2D có thương hiệu. Việc này giúp giải quyết một thách thức quan trọng từ môi trường ngoại tuyến đến trực tuyến, ví dụ: chuyển từ thực đơn nhà hàng thực tế đến ứng dụng thanh toán nhỏ hoặc từ xe điện tử thực đến ứng dụng nhỏ cho thuê. Hình ảnh bên dưới cho thấy ví dụ về mã vạch 2D mang thương hiệu như vậy cho ứng dụng nhỏ minh hoạ của WeChat. Khi quét mã trực tiếp, ứng dụng nhỏ của WeChat được quét trực tiếp mã. Các siêu ứng dụng khác thường sẽ không thể nhận dạng mã vạch.
![Mã vạch 2D mang thương hiệu WeChat.](https://web.dev/static/articles/mini-apps/mini-app-about/image/wechat-branded-2d-barcode-e6ef7f80e48d8.jpg?authuser=5&hl=vi)
Các ứng dụng nhỏ cũng có thể được tìm thấy thông qua tính năng tìm kiếm thông thường trong ứng dụng lớn, được chia sẻ trong tin nhắn trò chuyện hoặc trở thành một phần của một mục tin tức trong nguồn cấp tin tức. Một số ứng dụng cao cấp có khái niệm là tài khoản được xác minh và có thể chứa các ứng dụng nhỏ trong hồ sơ. Các ứng dụng nhỏ có thể được làm nổi bật khi chúng ở gần địa lý, chẳng hạn như ứng dụng nhỏ của một doanh nghiệp ở phía trước mà người dùng đứng hoặc gần như khi người dùng xem đường đi trên một bản đồ hiển thị trong siêu ứng dụng. Các ứng dụng nhỏ thường dùng có trong ngăn ứng dụng. Người dùng có thể truy cập vào nhiều ứng dụng lớn thông qua cử chỉ vuốt xuống hoặc thông qua một phần đặc biệt trong trình đơn siêu ứng dụng.
Trải nghiệm người dùng
Tất cả các ứng dụng cao cấp đều có giao diện người dùng ít nhất là giống nhau cho các ứng dụng nhỏ. Thanh trên cùng có thể tạo giao diện có tên của ứng dụng thu nhỏ, và ở góc trên màn hình, nút đóng ở ngoài cùng bên phải, phía trước trình đơn thao tác cung cấp quyền truy cập vào các tính năng phổ biến như chia sẻ ứng dụng, thêm ứng dụng vào danh sách yêu thích hoặc màn hình chính, báo cáo ứng dụng lạm dụng, phản hồi và chế độ cài đặt. Ảnh chụp màn hình dưới đây cho thấy một ứng dụng mua sắm nhỏ chạy trong bối cảnh của siêu ứng dụng Alipay, với trình đơn thao tác đang mở.
![Siêu ứng dụng Alipay chạy một ứng dụng mua sắm nhỏ với thanh trên cùng được làm nổi bật, nút trình đơn thao tác và nút đóng. Trình đơn thao tác sẽ mở ra.](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-alipay-super-app-runn-39dde18ae385b.jpg?authuser=5&hl=vi)
Mô hình giao diện người dùng
Thông thường, có một thanh thẻ ở dưới cùng cho phần điều hướng chính của ứng dụng thu nhỏ. Hầu hết nhà cung cấp siêu ứng dụng đều cung cấp các thành phần giúp nhà phát triển nhanh chóng triển khai các mô hình giao diện người dùng phổ biến, chẳng hạn như băng chuyền, danh sách xếp bài, thanh tiến trình, trình đơn vòng quay, công tắc, bản đồ, v.v. Điều này cũng giúp trải nghiệm người dùng giữa các ứng dụng thu nhỏ được nhất quán. Điều này được khuyến khích theo Nguyên tắc thiết kế chương trình nhỏ của WeChat. Điều này tương tự như những gì Apple khuyến khích qua Nguyên tắc về giao diện con người của Apple và Google đưa ra các đề xuất Thiết kế cho Android.
![Ứng dụng nhỏ minh hoạ Douyin hiển thị thành phần thanh trượt Douyin (băng chuyền) với nút bật/tắt chế độ tự động tiến, chỉ báo dấu chấm, v.v.](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-douyin-demo-mini-app-fbf61969fee88.png?authuser=5&hl=vi)
Đang phân phối
Thay vì được phân phát theo từng phần dưới dạng tài nguyên riêng biệt, ứng dụng nhỏ được phân phát dưới dạng ứng dụng đóng gói đã mã hoá, tức là các bản lưu trữ chứa tất cả tài nguyên chỉ trong một tệp. Không giống như các ứng dụng web thông thường, các ứng dụng này cũng không được phân phát từ nguồn gốc cụ thể của trình tạo ứng dụng nhỏ mà được phân phát trực tiếp từ nhà cung cấp siêu ứng dụng. Chúng vẫn có thể truy cập API từ máy chủ của trình tạo ứng dụng nhỏ, nhưng các tài nguyên cốt lõi (thường được gọi là giao diện ứng dụng) phải được phân phát từ nhà cung cấp ứng dụng cấp cao. Ứng dụng nhỏ phải khai báo nguồn gốc để yêu cầu thêm dữ liệu.
Lưu vào bộ nhớ đệm, cập nhật và liên kết sâu
Các ứng dụng nhỏ được lưu trong bộ nhớ đệm của siêu ứng dụng, vì vậy, lần tiếp theo người dùng chạy một ứng dụng nhỏ đã lưu vào bộ nhớ đệm, ứng dụng đó sẽ tải gần như ngay lập tức. Nếu có bản cập nhật thì một gói ứng dụng mới sẽ được tải. Số phiên bản có thể là một phần của URI khởi chạy (xem phần Khám phá), nhờ đó, siêu ứng dụng sẽ sớm biết liệu phiên bản được lưu vào bộ nhớ đệm trên máy có còn mới nhất hay không. URI khởi chạy cũng tuỳ ý chứa trang mong muốn của ứng dụng nhỏ, vì vậy, bạn có thể liên kết sâu đến các trang cụ thể của ứng dụng nhỏ. Thông qua sơ đồ trang web, các ứng dụng nhỏ có thể khai báo Google có thể lập chỉ mục trang nào bằng trình thu thập thông tin ứng dụng nhỏ của nhà cung cấp ứng dụng cấp cao.
![Trình tìm kiếm macOS cho thấy một thư mục chứa các tệp `.wxapkg` nhỏ được lưu vào bộ nhớ đệm của ứng dụng WeChat nhỏ.](https://web.dev/static/articles/mini-apps/mini-app-about/image/macos-finder-showing-fol-d1f228bbf9ff2.png?authuser=5&hl=vi)
Tính bảo mật và quyền
Các ứng dụng nhỏ do nhà cung cấp ứng dụng cấp cao đánh giá, tức là người dùng cho rằng các ứng dụng này an toàn hơn các ứng dụng web. Họ cần khai báo trước các quyền có thể cần thiết trong tệp kê khai hoặc tệp cấu hình ứng dụng nhỏ. Một số nhà cung cấp cũng yêu cầu giải thích lý do cần có từng quyền. Các ứng dụng nhỏ dĩ nhiên vẫn có thể nói dối, nhưng chúng sẽ khó có thể biện minh cho lý do, chẳng hạn như cố gắng truy cập vào cảm biến chuyển động mà không có lý do rõ ràng với người dùng. Mức độ khuyến khích tạo vân tay số cho người dùng đáng kể so với trên web, vì người dùng thường đã đăng nhập vào siêu ứng dụng (xem phần Nhận dạng, thanh toán và biểu đồ xã hội).
Bất cứ khi nào một ứng dụng nhỏ thực hiện một thao tác yêu cầu một quyền đặc biệt, người dùng sẽ thấy một lời nhắc kèm theo lý do sử dụng (nếu được nền tảng thực thi). Ảnh chụp màn hình dưới đây cho thấy ứng dụng nhỏ minh hoạ Douyin khi ứng dụng này yêu cầu người dùng cấp quyền chia sẻ vị trí của họ. Trong một số ứng dụng lớn, cũng có một API bắt buộc mà các ứng dụng nhỏ có thể tận dụng để yêu cầu cấp quyền mà không cần sử dụng ngay lập tức hoặc chỉ kiểm tra trạng thái của một quyền. Thậm chí, API này còn có thể bao gồm một API để mở phần cài đặt quyền trung tâm cho ứng dụng cấp cao, tương ứng với phần Cài đặt trang web của Chrome. Các ứng dụng nhỏ cũng phải khai báo trước nguồn gốc của tất cả máy chủ mà ứng dụng có thể sẽ yêu cầu dữ liệu từ đó.
![Ứng dụng nhỏ minh hoạ Douyin hiển thị lời nhắc về vị trí địa lý với hai lựa chọn: "Không được phép" và "Được phép".](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-douyin-demo-mini-app-bab6b3dbfe49e.png?authuser=5&hl=vi)
Quyền sử dụng các tính năng mạnh mẽ
Siêu ứng dụng lưu trữ cung cấp quyền truy cập vào các API mạnh mẽ thông qua cầu JavaScript được chèn vào WebView do ứng dụng cao cấp cung cấp (xem phần Xây dựng các khối và khả năng tương thích). Cầu nối JavaScript này cung cấp các hook vào API của hệ điều hành. Ví dụ: chức năng JavaScript của ứng dụng nhỏ như getConnectedWifi()
(chức năng của một ứng dụng thu nhỏ để lấy tên của mạng Wi-Fi hiện đang hoạt động) được hỗ trợ thông qua API getConnectionInfo()
của Android hoặc API CNCopyCurrentNetworkInfo()
của iOS. Một số ví dụ khác về API thiết bị mạnh mẽ xuất hiện trong các ứng dụng cấp cao phổ biến là Bluetooth, NFC, iBeacon, GPS, bảng nhớ tạm của hệ thống, cảm biến hướng, thông tin pin, quyền truy cập lịch, truy cập danh bạ, kiểm soát độ sáng màn hình, truy cập hệ thống tệp, phần cứng rung để phản hồi vật lý, truy cập máy ảnh và micrô, ghi lại màn hình và tạo ảnh chụp màn hình, trạng thái mạng, ổ cắm UDP, quét mã vạch, thông tin bộ nhớ thiết bị, v.v.
![Ứng dụng nhỏ minh hoạ trên WeChat cho thấy một thanh trượt điều khiển độ sáng màn hình của thiết bị di chuyển lên mức tối đa.](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-wechat-demo-mini-app-964b40a49071.png?authuser=5&hl=vi)
Quyền truy cập vào các dịch vụ đám mây
Nhiều ứng dụng cao cấp cũng cung cấp quyền truy cập "không máy chủ" vào các dịch vụ đám mây của nhà cung cấp ứng dụng cấp cao. Ngoài việc điện toán đám mây thô và bộ nhớ đám mây thô, còn thường xuyên bao gồm các tác vụ cấp cao hơn như dịch văn bản, phát hiện đối tượng hoặc phân loại nội dung trong hình ảnh, nhận dạng lời nói hoặc các tác vụ khác trong Học máy. Bạn có thể kiếm tiền từ các ứng dụng nhỏ bằng quảng cáo, thường là do các nhà cung cấp siêu ứng dụng cung cấp. Các nền tảng ứng dụng siêu lớn thường cũng cung cấp dữ liệu phân tích trên đám mây, giúp nhà phát triển ứng dụng nhỏ có thể hiểu rõ hơn về cách người dùng tương tác với ứng dụng của họ.
Danh tính, thanh toán, biểu đồ xã hội
Một tính năng rất quan trọng của các ứng dụng nhỏ là thông tin danh tính và biểu đồ xã hội được chia sẻ từ ứng dụng lớn. Các ứng dụng Super như Douyin hoặc WeChat bắt đầu dưới dạng các trang web mạng xã hội theo nghĩa rộng nhất, nơi người dùng có danh tính (đôi khi đã được chính phủ xác minh), mạng lưới bạn bè hoặc người theo dõi và cũng thường xuyên lưu trữ dữ liệu thanh toán. Ví dụ: một ứng dụng mua sắm nhỏ có thể (hoặc đôi khi thậm chí phải) xử lý mọi khoản thanh toán trực tiếp thông qua API thanh toán của ứng dụng cấp cao và nếu người dùng đồng ý, có thể thu thập dữ liệu người dùng như địa chỉ giao hàng, số điện thoại và họ tên, tất cả mà không cần buộc người dùng phải điền thông tin vào các biểu mẫu. Ở bên dưới, bạn có thể thấy ứng dụng nhỏ của Walmart chạy trong WeChat lần đầu tiên được mở. Xin chào tôi bằng khuôn mặt quen thuộc.
![Ứng dụng mini của Walmart hiện khuôn mặt và tên của tác giả trên thẻ "Tôi".](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-walmart-mini-app-show-87a18e926c07a.png?authuser=5&hl=vi)
Ứng dụng nhỏ có thể trở nên rất phổ biến bằng cách cho phép mọi người chia sẻ thành tích của họ như điểm cao trong trò chơi và thách đấu người liên hệ thông qua thông tin cập nhật trạng thái. Sau đó, chỉ cần một lần nhấn là người dùng có thể sử dụng ứng dụng nhỏ để tham gia cuộc thi mà không gặp phải bất kỳ khó khăn nào, sau đó ứng dụng nhỏ sẽ mở rộng phạm vi tiếp cận của ứng dụng.
Xác nhận
Bài viết này đã được Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent và Keith Gu xem xét.