구성 요소 및 호환성
미니 앱은 슈퍼 앱을 실행해야 하는 작은 (일반적으로 2~4MB) 앱입니다. 슈퍼 앱과는 별개로 이 둘의 공통점은 웹 기술인 HTML, CSS, 자바스크립트로 빌드된다는 점입니다 ('방언'). 미니 앱의 런타임은 기본 운영체제가 아닌 슈퍼 앱의 WebView이므로 미니 앱이 여러 플랫폼을 넘나들게 합니다. 슈퍼 앱이 Android, iOS 또는 다른 OS에서 실행되든 상관없이 동일한 미니 앱을 동일한 슈퍼 앱에서 실행할 수 있습니다. 그러나 모든 미니 앱을 모든 슈퍼 앱에서 실행할 수 있는 것은 아닙니다. 이 내용은 나중에 자세히 설명합니다.
디스커버리
미니 앱은 브랜드 2D 바코드를 통해 임시로 발견되는 경우가 많으며, 이를 통해 실제 식당 메뉴에서 결제 미니 앱으로 이동하거나 실제 전동 스쿠터에서 대여 미니 앱으로 이동하는 것과 같은 중요한 오프라인-온라인 전환을 해결할 수 있습니다. 아래 이미지는 WeChat의 데모 미니 앱을 직접 실행하는 브랜드 2D 바코드의 예를 보여줍니다. 다른 슈퍼 앱에서는 일반적으로 바코드를 인식할 수 없습니다.
![WeChat 브랜드가 표시된 2D 바코드입니다.](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/wechat-branded-2d-barcode-e6ef7f80e48d8.jpg?authuser=5&hl=ko)
미니 앱은 Super 앱에서 일반 인앱 검색을 통해 검색되거나 채팅 메시지로 공유되거나 뉴스 피드의 뉴스 항목에 포함될 수도 있습니다. 일부 슈퍼 앱에는 인증된 계정이라는 개념이 있으며, 이 개념은 프로필에 미니 앱을 포함할 수 있습니다. 미니 앱은 사용자가 서 있는 비즈니스의 미니 앱과 같이 지리적으로 지리적으로 가까이 있을 때 또는 사용자가 Super 앱에 표시된 지도에서 경로를 찾을 때와 같이 가상으로 가까운 경우에 강조표시될 수 있습니다. 자주 사용하는 미니 앱은 앱 검색 창에서 사용할 수 있으며, 대부분의 슈퍼 앱에서는 아래로 스와이프하거나 슈퍼 앱 메뉴의 특수 섹션을 통해 액세스할 수 있습니다.
사용자 경험
모든 슈퍼 앱은 미니 앱을 위한 사용자 인터페이스가 거의 동일합니다. 테마 지정 가능한 상단 바에 미니 앱의 이름이 있고 화면 오른쪽 맨 오른쪽에는 닫기 버튼이 앞에 있는 작업 메뉴입니다. 작업 메뉴는 앱 공유, 즐겨찾기 목록 또는 홈 화면에 추가, 악성 앱 신고, 의견 제공, 설정 등 일반적인 기능에 액세스할 수 있는 메뉴입니다. 아래 스크린샷은 작업 메뉴가 열려 있는 Alipay 슈퍼 앱의 컨텍스트에서 실행되는 쇼핑 미니 앱을 보여줍니다.
![상단 바, 작업 메뉴 버튼, 닫기 버튼이 강조 표시된 쇼핑 미니 앱을 실행 중인 Alipay 슈퍼 앱 작업 메뉴가 열립니다.](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/the-alipay-super-app-runn-39dde18ae385b.jpg?authuser=5&hl=ko)
UI 패러다임
일반적으로 미니 앱의 기본 탐색에는 하단 탭 바가 있습니다. 대부분의 슈퍼 앱 제공업체는 개발자가 캐러셀, 아코디언, 진행률 표시줄, 스피너, 스위치, 지도 등 일반적인 UI 패러다임을 빠르게 구현하는 데 도움이 되는 구성요소를 제공합니다. 또한 여러 미니 앱 간의 사용자 환경을 일관되게 만드는 데 도움이 되며, 이는 WeChat의 미니 프로그램 디자인 가이드라인에서 장려합니다. 이는 Apple에서 Apple 휴먼 인터페이스 가이드라인을 통해 장려하고 Google에서 Android를 위한 디자인 권장사항을 제시하여 인센티브를 제공하는 것과 유사합니다.
![자동 진행, 점 표시기 등의 전환 버튼이 있는 Douyin 슬라이더 (캐러셀) 구성요소를 보여주는 Douyin 데모 미니 앱](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/the-douyin-demo-mini-app-fbf61969fee88.png?authuser=5&hl=ko)
서빙
미니 앱은 별도의 리소스로 조금씩 제공되지 않고 암호화된 패키지 앱, 즉 하나의 파일에 모든 리소스가 포함된 보관 파일로 제공됩니다. 일반 웹 앱과 달리 이러한 앱은 미니 앱 제작자의 특정 출처에서 제공되는 것이 아니라 슈퍼 앱 제공자에서 직접 제공됩니다. 이러한 앱은 미니 앱 제작자의 서버에서 API에 계속 액세스할 수 있지만 핵심 리소스 (일반적으로 앱 셸이라고 함)는 슈퍼 앱 제공자에서 제공해야 합니다. 미니 앱은 추가 데이터를 요청하는 출처를 선언해야 합니다.
캐싱, 업데이트, 딥 링크
미니 앱은 슈퍼 앱의 캐시에 유지되므로 사용자가 다음에 캐시된 미니 앱을 실행하면 거의 즉시 로드됩니다. 업데이트가 있는 경우 새 앱 패키지가 로드됩니다. 버전 번호는 실행 URI의 일부일 수 있으므로 (검색 참고) Super 앱은 로컬로 캐시된 버전이 여전히 최신인지 초기에 알 수 있습니다. 실행 URI는 미니 앱의 원하는 페이지를 선택적으로 포함하므로 미니 앱의 특정 페이지로 연결되는 딥 링크도 가능합니다. 미니 앱은 사이트맵을 통해 슈퍼 앱 제공업체의 미니 앱 크롤러가 색인을 생성할 수 있는 페이지를 선언할 수 있습니다.
![캐시된 WeChat mini 앱 `.wxapkg` 파일이 포함된 폴더가 표시된 macOS Finder](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/macos-finder-showing-fol-d1f228bbf9ff2.png?authuser=5&hl=ko)
보안 및 권한
미니 앱은 슈퍼 앱 제공업체에서 검토하므로 사용자는 앱을 웹 앱보다 안전하다고 인식합니다. 매니페스트 또는 미니 앱 구성 파일에서 잠재적으로 필요할 수 있는 권한을 미리 선언해야 하며, 일부 제공자의 경우 각 권한이 필요한 이유에 관한 설명도 필요합니다. 물론 미니 앱은 거짓말을 할 수 있지만, 예를 들어 사용자에게 명확한 이유 없이 움직임 감지 센서에 액세스하려고 시도하는 이유를 정당화하는 데 어려움을 겪을 수 있습니다. 사용자는 보통 이미 슈퍼 앱에 로그인되어 있기 때문에(ID, 결제, 소셜 그래프 참고) 사용자의 디지털 지문 인식을 위한 인센티브는 웹에 비해 현저히 낮습니다.
미니 앱이 특별 권한이 필요한 작업을 실행할 때마다 개발자가 명시한 대로 플랫폼에서 적용하는 경우 사용 근거도 포함된 메시지가 사용자에게 표시됩니다. 아래 스크린샷은 Douyin 데모 미니 앱에서 사용자에게 위치 공유 권한을 요청하는 모습을 보여줍니다. 일부 슈퍼 앱에는 미니 앱이 즉시 사용하지 않고 권한을 요청하거나 권한 상태만 확인하는 데 활용할 수 있는 명령형 API도 있습니다. 여기에는 Chrome의 사이트 설정에 해당하는 중앙 슈퍼 앱 권한 설정을 여는 API가 포함될 수도 있습니다. 또한 미니 앱은 데이터를 요청할 가능성이 있는 모든 서버의 출처를 미리 선언해야 합니다.
!['허용되지 않음'과 '허용됨'의 두 가지 옵션이 있는 위치정보 프롬프트를 보여주는 Douyin 데모 미니 앱](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/the-douyin-demo-mini-app-bab6b3dbfe49e.png?authuser=5&hl=ko)
강력한 기능에 액세스
호스팅 슈퍼 앱은 슈퍼 앱에서 제공하는 WebView에 삽입되는 자바스크립트 브리지를 통해 강력한 API에 액세스할 수 있도록 합니다 (블록 및 호환성 빌드 참고). 이 자바스크립트 브리지는 운영체제의 API에 후크를 제공합니다. 예를 들어 getConnectedWifi()
와 같은 미니 앱 자바스크립트 함수는 현재 활성화된 Wi-Fi 네트워크의 이름을 가져오는 미니 앱의 기능이며, 내부적으로는 Android의 getConnectionInfo()
API 또는 iOS의 CNCopyCurrentNetworkInfo()
API를 통해 작동합니다. 일반적인 Super 앱에 노출되는 강력한 기기 API의 다른 예로는 블루투스, NFC, iBeacon, GPS, 시스템 클립보드, 방향 센서, 배터리 정보, 캘린더 액세스, 전화번호부 액세스, 화면 밝기 제어, 파일 시스템 액세스, 물리적 피드백을 위한 진동 하드웨어, 카메라 및 마이크 액세스, 화면 녹화 및 스크린샷 생성, 네트워크 상태, UDP 소켓, 바코드 스캔, 기기 메모리 정보 등이 있습니다.
![기기의 화면 밝기를 최대로 높이는 슬라이더가 표시된 WeChat 데모 미니 앱](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/the-wechat-demo-mini-app-964b40a49071.png?authuser=5&hl=ko)
클라우드 서비스에 대한 액세스
또한 많은 슈퍼 앱은 슈퍼 앱 제공업체의 클라우드 서비스에 대한 '서버리스' 액세스를 제공합니다. 이 액세스에는 원시 클라우드 컴퓨팅과 클라우드 스토리지 외에도 텍스트 번역, 이미지 내 객체 감지 또는 콘텐츠 분류, 음성 인식 또는 기타 머신러닝 태스크와 같은 더 높은 수준의 작업이 포함되는 경우가 많습니다. 미니 앱은 일반적으로 슈퍼 앱 제공업체에서 제공하는 광고로 수익을 창출할 수 있습니다. 슈퍼 앱 플랫폼은 일반적으로 클라우드 분석 데이터도 제공하므로 미니 앱 개발자는 사용자가 앱과 상호작용하는 방식을 더 잘 이해할 수 있습니다.
ID, 결제, 소셜 그래프
미니 앱의 매우 중요한 기능은 Super 앱에서 공유되는 ID 및 소셜 그래프 정보입니다. Douyin 또는 WeChat과 같은 Super 앱은 광범위한 의미의 소셜 네트워크 사이트로 시작되었습니다. 여기서 사용자는 (경우에 따라 정부 인증) ID, 친구 또는 팔로어 네트워크를 가지며 결제 데이터도 저장되기도 합니다. 예를 들어 쇼핑 미니 앱은 슈퍼 앱의 결제 API를 통해 직접 결제를 처리할 수 있거나 사용자 동의에 따라 사용자가 양식을 작성하지 않아도 되며 배송지 주소, 전화번호, 전체 이름과 같은 사용자 데이터를 가져올 수 있습니다. 아래는 WeChat에서 실행 중인 Walmart 미니 앱으로, 처음으로 실행되어 나에게 익숙한 얼굴로 인사하는 것을 볼 수 있습니다.
!['나' 탭에 작성자의 얼굴과 이름이 표시된 Walmart 미니 앱](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/the-walmart-mini-app-show-87a18e926c07a.png?authuser=5&hl=ko)
미니 앱은 사용자가 게임에서 최고점수와 같은 업적을 공유하고 상태 업데이트를 통해 연락처에 있는 사용자에게 도전하도록 하여 큰 인기를 얻을 수 있습니다. 그러면 미니 앱을 탭 한 번으로 사용할 수 있으므로 사용자가 불편함 없이 경쟁에 참여할 수 있고, 이에 따라 미니 앱의 도달범위가 늘어납니다.
감사의 말씀
이 자료는 Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent, Keith Gu가 검토했습니다.