Что такое мини-приложения?

Строительные блоки и совместимость

Мини-приложения — это небольшие (обычно 2–4 МБ ) приложения, для запуска которых требуется суперприложение . Что их объединяет, независимо от суперприложения, так это то, что они созданы с использованием («диалектов») веб-технологий HTML, CSS и JavaScript. Среда выполнения мини-приложения — это WebView в суперприложении, а не базовая операционная система, что делает мини-приложения кроссплатформенными. Одно и то же мини-приложение может работать в одном и том же суперприложении, независимо от того, работает ли суперприложение на Android, iOS или другой ОС. Однако не все мини-приложения могут работать во всех суперприложениях, подробнее об этом позже .

Открытие

Мини-приложения часто обнаруживаются ad hoc с помощью фирменных 2D-штрихкодов, что решает важную задачу перехода из офлайн-в-онлайн, например, переход из меню физического ресторана в платежное мини-приложение или из физического электроскутера в мини-приложение аренды. На изображении ниже показан пример такого фирменного 2D-штрихкода для демонстрационного мини-приложения WeChat . Когда код сканируется с помощью супер-приложения WeChat, мини-приложение запускается напрямую. Другие супер-приложения, как правило, не смогут распознать штрихкод.

2D штрихкод с логотипом WeChat.
Сканирование этого 2D-штрихкода с помощью приложения WeChat запускает демонстрационное мини-приложение.

Мини-приложения также можно обнаружить с помощью обычного поиска в приложении в суперприложении, поделиться ими в сообщениях чата или стать частью новостной статьи в ленте новостей. Некоторые суперприложения имеют понятие проверенных учетных записей, которые могут содержать мини-приложения в своих профилях. Мини-приложения могут быть выделены, когда они физически географически близки, как мини-приложение компании, перед которой стоит пользователь, или виртуально близки, как когда пользователь получает указания на карте, показанной в суперприложении. Часто используемые мини-приложения доступны в панели приложений, к которой во многих суперприложениях можно получить доступ с помощью жеста смахивания вниз или через специальный раздел в меню суперприложения.

Пользовательский опыт

Все суперприложения имеют более или менее одинаковый пользовательский интерфейс для мини-приложений. Тематическая верхняя панель с названием мини-приложения и, в верхнем углу экрана, кнопка закрытия справа, которой предшествует меню действий, предоставляющее доступ к общим функциям, таким как совместное использование приложения, добавление его в список избранного или на домашний экран, сообщение о вредоносных приложениях, предоставление отзывов и настройки. На снимке экрана ниже показано мини-приложение для покупок, работающее в контексте суперприложения Alipay с открытым меню действий.

Суперприложение Alipay, запускающее мини-приложение для покупок с выделенной верхней панелью, кнопкой меню действий и кнопкой закрытия. Меню действий открыто.
Открытое меню действий мини-приложения для покупок, запущенного в суперприложении Alipay.

Парадигмы пользовательского интерфейса

Обычно есть нижняя панель вкладок для основной навигации мини-приложения. Большинство поставщиков супер-приложений предлагают компоненты , которые помогают разработчикам быстро реализовывать общие парадигмы пользовательского интерфейса, такие как карусели, аккордеоны, индикаторы выполнения, спиннеры, переключатели, карты и т. д. Это также помогает сделать пользовательский опыт между различными мини-приложениями единообразным, что поощряется в Мини-программах WeChat's Mini Program Design Guidelines . Это похоже на то, что Apple стимулирует своими Apple Human Interface Guidelines и Google своими рекомендациями Design for Android .

Демонстрационное мини-приложение Douyin, демонстрирующее компонент слайдера (карусель) Douyin с переключателями для автоматического перехода вперед, точечными индикаторами и т. д.
Компонент слайдера (карусели) Douyin с различными опциями.

Обслуживание

Вместо того, чтобы обслуживаться по частям как отдельные ресурсы, мини-приложения обслуживаются как зашифрованные упакованные приложения, то есть как архивы, которые содержат все ресурсы в одном файле. В отличие от обычных веб-приложений, они также обслуживаются не из конкретного источника создателя мини-приложения, а напрямую от поставщика суперприложения. Они по-прежнему могут получать доступ к API с серверов создателя мини-приложения, но основные ресурсы (обычно называемые оболочкой приложения) должны обслуживаться поставщиком суперприложения. Мини-приложения должны объявлять источники, из которых они запрашивают дополнительные данные.

Кэширование, обновления и глубокие ссылки

Мини-приложения хранятся в кэше суперприложения, поэтому в следующий раз, когда пользователь запустит кэшированное мини-приложение, оно загрузится практически мгновенно. Если есть обновление, загружается новый пакет приложения. Номер версии может быть частью URI запуска (см. Discovery ), поэтому суперприложение заранее узнает, является ли локально кэшированная версия все еще актуальной. URI запуска также опционально содержит нужную страницу мини-приложения, поэтому возможны глубокие ссылки на определенные страницы мини-приложений. С помощью карты сайта мини-приложения могут объявлять, какие из их страниц должны индексироваться поисковым роботом мини-приложений поставщика суперприложения.

В macOS Finder отображается папка, содержащая кэшированные файлы `.wxapkg` приложения WeChat mini.
Мини-приложения кэшируются как зашифрованные упакованные приложения.

Безопасность и разрешения

Мини-приложения проверяются поставщиком суперприложений, что означает, что пользователи воспринимают их как более безопасные, чем веб-приложения. Им необходимо заранее объявить о своих потенциально требуемых разрешениях в файле манифеста или конфигурации мини-приложений, который для некоторых поставщиков также требует объяснений того, почему каждое разрешение необходимо. Мини-приложения, конечно, все еще могут лгать, но им будет трудно оправдать, почему они, например, пытаются получить доступ к датчикам движения без причины, которая очевидна пользователю. Стимул снять отпечаток пальца пользователя заметно ниже по сравнению с вебом, поскольку пользователь, как правило, в любом случае уже вошел в суперприложение (см. Идентификация, оплата и социальный граф ).

Всякий раз, когда мини-приложение выполняет операцию, требующую специального разрешения, пользователю отображается запрос, который, если он применяется платформой, также включает обоснование использования, как заявлено разработчиком. На снимке экрана ниже показано демонстрационное мини-приложение Douyin , запрашивающее у пользователя разрешение на предоставление своего местоположения. В некоторых суперприложениях также есть императивный API, который мини-приложения могут использовать для запроса разрешений без их немедленного использования или только для проверки статуса разрешения. Это может даже включать API для открытия центральных настроек разрешений супер-приложения, что соответствует настройкам сайта Chrome . Мини-приложения также должны заранее объявлять источники всех серверов, с которых они потенциально будут запрашивать данные.

Демонстрационное мини-приложение Douyin, демонстрирующее запрос геолокации с двумя вариантами: «Не разрешено» и «Разрешено».
Демонстрационное мини-приложение Douyin запрашивает разрешение на геолокацию.

Доступ к мощным функциям

Хостинговое суперприложение предлагает доступ к мощным API через мост JavaScript, который внедряется в WebView, предлагаемый суперприложением (см. раздел Строительные блоки и совместимость ). Этот мост JavaScript обеспечивает подключение к API операционной системы. Например, функция JavaScript мини-приложения, такая как getConnectedWifi() — возможность мини-приложения получать имя текущей активной сети Wi-Fi — под капотом осуществляется через API Android getConnectionInfo() или API iOS CNCopyCurrentNetworkInfo() . Другими примерами мощных API устройств, представленных в обычных суперприложениях, являются Bluetooth, NFC, iBeacon, GPS, системный буфер обмена, датчики ориентации, информация о батарее, доступ к календарю, доступ к телефонной книге, управление яркостью экрана, доступ к файловой системе, вибрационное оборудование для физической обратной связи, доступ к камере и микрофону, запись экрана и создание снимков экрана, состояние сети, сокеты UDP, сканирование штрихкодов, информация о памяти устройства и многое другое.

Демонстрационное мини-приложение WeChat, демонстрирующее ползунок, регулирующий яркость экрана устройства, установленный на максимум.
Демонстрационное мини-приложение WeChat, устанавливающее яркость экрана устройства на максимум.

Доступ к облачным сервисам

Многие суперприложения также предоставляют «бессерверный» доступ к облачным сервисам поставщика суперприложений, которые, помимо сырых облачных вычислений и облачного хранилища, часто также включают в себя задачи более высокого уровня, такие как перевод текста, обнаружение объектов или классификация контента на изображениях, распознавание речи или другие задачи машинного обучения. Мини-приложения можно монетизировать с помощью рекламы, которая обычно предоставляется поставщиками суперприложений. Платформы суперприложений обычно также предоставляют данные облачной аналитики, поэтому разработчики мини-приложений могут лучше понять, как пользователи взаимодействуют с их приложениями.

Идентификация, оплата, социальный граф

Очень важной особенностью мини-приложений является информация об идентификации и социальном графе, которая передается из суперприложения. Суперприложения, такие как Douyin или WeChat, начинались как сайты социальных сетей в самом широком смысле, где у пользователей есть (иногда даже подтвержденная правительством) личность, сеть друзей или подписчиков, а также часто также сохраненные платежные данные. Например, мини-приложение для покупок может (или иногда даже должно) обрабатывать любые платежи напрямую через платежные API суперприложения и, с согласия пользователя, может получать данные пользователя, такие как адрес доставки, номер телефона и полное имя, и все это без необходимости заставлять пользователя мучительно заполнять формы. Ниже вы можете увидеть мини-приложение Walmart, работающее в WeChat, открытое в первый раз, приветствующее меня знакомым лицом.

Мини-приложение Walmart, показывающее лицо и имя автора на вкладке «Я».
Мини-приложение Walmart с персонализированным представлением «Я» при первом посещении.

Мини-приложения могут стать очень популярными, позволяя людям делиться своими достижениями, такими как рекорды в игре, и бросать вызов своим контактам через обновления статуса. Мини-приложение тогда находится всего в одном касании, так что пользователи могут вступать в соревнование без каких-либо проблем, и мини-приложение, таким образом, расширяет свой охват.

Благодарности

Эту статью рецензировали Джо Медли , Кейс Баскес , Милица Михайлия , Алан Кент и Кейт Гу.