Лучшие практики UX для доставки по требованию, Лучшие практики UX для доставки по требованию, Лучшие практики UX для доставки по требованию

Функциональные возможности, которые хорошо работают в качестве модуля по требованию, — это те, которые не нужны большинству ваших пользователей во время установки. Ниже приведены несколько примеров функций приложения, которым подходят модули по требованию:

  • Редактирование и загрузка видео в приложении, где большинство пользователей смотрят только видео.
  • Добавление рецепта в приложение, где большинство пользователей только просматривают и следуют рецептам других.
  • Функция помощи и поддержки, когда большинство пользователей не обращаются за помощью или не ищут ее в приложении.
  • Большие библиотеки для менее используемых функций, таких как подробный сбор ошибок и отчетность.
  • Особые возможности оплаты или оформления заказа
  • Мультимедийные возможности очень высокого разрешения или функции VR/AR

В типичном случае, когда эти модули относительно малы (менее 10 МБ) и нет сетевых или других сбоев, пользователи могут очень быстро загрузить и использовать модуль по требованию. То есть впечатления обычно ничем не отличаются от того, если бы модуль присутствовал при установке приложения.

На этой странице описаны рекомендации, которые помогут вам сделать следующее:

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

Прочитав это руководство, вы сможете увидеть эти рекомендации в действии, попробовав пример приложения Play Core API .

Держите пользователя в курсе

Вы должны информировать пользователя, если какая-либо функция недоступна немедленно. Если пользователь решит загрузить функцию из Google Play, отобразите ход загрузки.

Вы можете отслеживать состояние запроса , чтобы отображать ход загрузки и состояние установки. Однако тип пользовательского интерфейса, который вы хотите отобразить, может зависеть от размера загрузки:

  • Для модулей меньшего размера (~ 10 МБ или меньше), которые можно установить очень быстро, рассмотрите такие индикаторы, как счетчики или краткое сообщение «загрузка контента».
  • Для более крупных модулей, загрузка и установка которых может занять несколько секунд или больше, рассмотрите возможность отображения индикатора выполнения загрузки и установки, например, показанного на рисунке 1.

Рис. 1. Отображение сообщения и индикатора выполнения при загрузке и установке функции по требованию.

Грамотно сообщайте о задержках и сбоях установки

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

Рисунок 2. Сообщите пользователю, почему в данный момент невозможно установить функцию.

Рисунок 3. Объясните пользователю, почему загрузка функции может занять больше времени, чем ожидалось.

Показывать значение перед запросом разрешения для больших загрузок

Если модуль по запросу имеет большой размер (> 150 МБ), Google Play требует, чтобы пользователь сначала дал согласие, прежде чем загружать его.

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

Например, представьте, что вы создаете приложение для электронной коммерции, и одна из функций позволяет пользователям размещать мебель прямо в своей квартире с помощью дополненной реальности (AR). Вы можете добавить сообщение, например: «Хотите ли вы увидеть свой новый диван в своей гостиной? Установите средство просмотра дополненной реальности прямо сейчас».

Выполните загрузку и установку в фоновом режиме.

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

Как показано на рисунке 5, пользователь продолжает использовать приложение и получает уведомление после завершения установки функции по требованию.

Рисунок 5. Вместо внезапного изменения контекста пользователя после завершения установки модуля уведомите пользователя о том, что запрошенная функция для него готова.

Когда модуль будет готов к использованию, уведомите пользователя и предоставьте ему возможность запускать эту функцию. Этот шаблон предоставляет пользователю контекст и контроль над своим опытом.

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

Освободите память устройства, когда модуль больше не нужен

Полезной возможностью всех функциональных модулей является возможность удаления их по отдельности. Если функциональный модуль больше не используется, вы можете уменьшить размер приложения на устройстве пользователя, попросив Google Play удалить этот модуль .

Например, ваше приложение может иметь надежный процесс адаптации, возможно, содержащий мультимедийную информацию. После того, как пользователь завершил процесс адаптации или после того, как он был активным пользователем в течение определенного периода времени, вы можете использовать API доставки функций Play, чтобы запросить Google Play удалить только этот компонент вашего приложения.

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

Дополнительные советы

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

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

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

Прогнозируйте потребность пользователя в этой функции в предстоящем сеансе . Если вам не нужно, чтобы ваше приложение немедленно загружало и устанавливало модуль по требованию, вы можете отложить установку, пока приложение работает в фоновом режиме, и Google Play выполнит загрузку и установку за вас. Например, представьте, что вы хотите опубликовать новые сезонные рецепты для кулинарного приложения, которые не являются приоритетными для текущего сеанса пользователя. Вы можете запросить Play для загрузки и установки этих рецептов, когда приложение работает в фоновом режиме. Это особенно полезно для больших функций (>10 МБ), которые не нужны сейчас, но, вероятно, потребуются в будущем.

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

,

Функциональные возможности, которые хорошо работают в качестве модуля по требованию, — это те, которые не нужны большинству ваших пользователей во время установки. Ниже приведены несколько примеров функций приложения, которым подходят модули по требованию:

  • Редактирование и загрузка видео в приложении, где большинство пользователей смотрят только видео.
  • Добавление рецепта в приложение, где большинство пользователей только просматривают и следуют рецептам других.
  • Функция помощи и поддержки, когда большинство пользователей не обращаются за помощью или не ищут ее в приложении.
  • Большие библиотеки для менее используемых функций, таких как подробный сбор ошибок и отчетность.
  • Особые возможности оплаты или оформления заказа
  • Мультимедийные возможности очень высокого разрешения или функции VR/AR

В типичном случае, когда эти модули относительно малы (менее 10 МБ) и нет сетевых или других сбоев, пользователи могут очень быстро загрузить и использовать модуль по требованию. То есть впечатления обычно ничем не отличаются от того, если бы модуль присутствовал при установке приложения.

На этой странице описаны рекомендации, которые помогут вам сделать следующее:

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

Прочитав это руководство, вы сможете увидеть эти рекомендации в действии, попробовав пример приложения Play Core API .

Держите пользователя в курсе

Вы должны информировать пользователя, если какая-либо функция недоступна немедленно. Если пользователь решит загрузить функцию из Google Play, отобразите ход загрузки.

Вы можете отслеживать состояние запроса , чтобы отображать ход загрузки и состояние установки. Однако тип пользовательского интерфейса, который вы хотите отобразить, может зависеть от размера загрузки:

  • Для модулей меньшего размера (~ 10 МБ или меньше), которые можно установить очень быстро, рассмотрите такие индикаторы, как счетчики или краткое сообщение «загрузка контента».
  • Для более крупных модулей, загрузка и установка которых может занять несколько секунд или больше, рассмотрите возможность отображения индикатора выполнения загрузки и установки, например, показанного на рисунке 1.

Рис. 1. Отображение сообщения и индикатора выполнения при загрузке и установке функции по требованию.

Грамотно сообщайте о задержках и сбоях установки

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

Рисунок 2. Сообщите пользователю, почему в данный момент невозможно установить функцию.

Рисунок 3. Объясните пользователю, почему загрузка функции может занять больше времени, чем ожидалось.

Показывать значение перед запросом разрешения для больших загрузок

Если модуль по запросу имеет большой размер (> 150 МБ), Google Play требует, чтобы пользователь сначала дал согласие, прежде чем загружать его.

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

Например, представьте, что вы создаете приложение для электронной коммерции, и одна из функций позволяет пользователям размещать мебель прямо в своей квартире с помощью дополненной реальности (AR). Вы можете добавить сообщение, например: «Хотите ли вы увидеть свой новый диван в своей гостиной? Установите средство просмотра дополненной реальности прямо сейчас».

Выполните загрузку и установку в фоновом режиме.

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

Как показано на рисунке 5, пользователь продолжает использовать приложение и получает уведомление после завершения установки функции по требованию.

Рисунок 5. Вместо внезапного изменения контекста пользователя после завершения установки модуля уведомите пользователя о том, что запрошенная функция для него готова.

Когда модуль будет готов к использованию, уведомите пользователя и предоставьте ему возможность запускать эту функцию. Этот шаблон предоставляет пользователю контекст и контроль над своим опытом.

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

Освободите память устройства, когда модуль больше не нужен

Полезной возможностью всех функциональных модулей является возможность их удаления по отдельности. Если функциональный модуль больше не используется, вы можете уменьшить размер приложения на устройстве пользователя, попросив Google Play удалить этот модуль .

Например, ваше приложение может иметь надежный процесс адаптации, возможно, содержащий мультимедийную информацию. После того, как пользователь завершил процесс адаптации или после того, как он был активным пользователем в течение определенного периода времени, вы можете использовать API доставки функций Play, чтобы запросить Google Play удалить только этот компонент вашего приложения.

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

Дополнительные советы

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

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

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

Прогнозируйте потребность пользователя в этой функции в предстоящем сеансе . Если вам не нужно, чтобы ваше приложение немедленно загружало и устанавливало модуль по требованию, вы можете отложить установку, пока приложение работает в фоновом режиме, и Google Play выполнит загрузку и установку за вас. Например, представьте, что вы хотите опубликовать новые сезонные рецепты для кулинарного приложения, которые не являются приоритетными для текущего сеанса пользователя. Вы можете запросить Play для загрузки и установки этих рецептов, когда приложение работает в фоновом режиме. Это особенно полезно для больших функций (>10 МБ), которые не нужны сейчас, но, вероятно, потребуются в будущем.

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

,

Функциональные возможности, которые хорошо работают в качестве модуля по требованию, — это те, которые не нужны большинству ваших пользователей во время установки. Ниже приведены несколько примеров функций приложения, которым подходят модули по требованию:

  • Редактирование и загрузка видео в приложении, где большинство пользователей смотрят только видео.
  • Добавление рецепта в приложение, где большинство пользователей только просматривают и следуют рецептам других.
  • Функция помощи и поддержки, когда большинство пользователей не обращаются за помощью или не ищут ее в приложении.
  • Большие библиотеки для менее используемых функций, таких как подробный сбор ошибок и отчетность.
  • Особые возможности оплаты или оформления заказа
  • Мультимедийные возможности очень высокого разрешения или функции VR/AR

В типичном случае, когда эти модули относительно малы (менее 10 МБ) и нет сетевых или других сбоев, пользователи могут очень быстро загрузить и использовать модуль по требованию. То есть впечатления обычно ничем не отличаются от того, если бы модуль присутствовал при установке приложения.

На этой странице описаны рекомендации, которые помогут вам сделать следующее:

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

Прочитав это руководство, вы сможете увидеть эти рекомендации в действии, попробовав пример приложения Play Core API .

Держите пользователя в курсе

Вы должны информировать пользователя, если какая-либо функция недоступна немедленно. Если пользователь решит загрузить функцию из Google Play, отобразите ход загрузки.

Вы можете отслеживать состояние запроса , чтобы отображать ход загрузки и состояние установки. Однако тип пользовательского интерфейса, который вы хотите отобразить, может зависеть от размера загрузки:

  • Для модулей меньшего размера (~ 10 МБ или меньше), которые можно установить очень быстро, рассмотрите такие индикаторы, как счетчики или краткое сообщение «загрузка контента».
  • Для более крупных модулей, загрузка и установка которых может занять несколько секунд или больше, рассмотрите возможность отображения индикатора выполнения загрузки и установки, например, показанного на рисунке 1.

Рис. 1. Отображение сообщения и индикатора выполнения при загрузке и установке функции по требованию.

Грамотно сообщайте о задержках и сбоях установки

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

Рисунок 2. Сообщите пользователю, почему в данный момент невозможно установить функцию.

Рисунок 3. Объясните пользователю, почему загрузка функции может занять больше времени, чем ожидалось.

Показывать значение до запроса разрешения для больших загрузок

Если модуль по запросу имеет большой размер (> 150 МБ), Google Play требует, чтобы пользователь сначала дал согласие, прежде чем загружать его.

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

Например, представьте, что вы создаете приложение для электронной коммерции, и одна из функций позволяет пользователям размещать мебель прямо в своей квартире с помощью дополненной реальности (AR). Вы можете добавить сообщение, например: «Хотите ли вы увидеть свой новый диван в своей гостиной? Установите средство просмотра дополненной реальности прямо сейчас».

Выполните загрузку и установку в фоновом режиме.

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

Как показано на рисунке 5, пользователь продолжает использовать приложение и получает уведомление после завершения установки функции по требованию.

Рисунок 5. Вместо внезапного изменения контекста пользователя после завершения установки модуля уведомите пользователя о том, что запрошенная функция для него готова.

Когда модуль будет готов к использованию, уведомите пользователя и предоставьте ему возможность запускать эту функцию. Этот шаблон предоставляет пользователю контекст и контроль над своим опытом.

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

Освободите память устройства, когда модуль больше не нужен

Полезной возможностью всех функциональных модулей является возможность удаления их по отдельности. Если функциональный модуль больше не используется, вы можете уменьшить размер приложения на устройстве пользователя, попросив Google Play удалить этот модуль .

Например, ваше приложение может иметь надежный процесс адаптации, возможно, содержащий мультимедийную информацию. После того, как пользователь завершил процесс адаптации или после того, как он был активным пользователем в течение определенного периода времени, вы можете использовать API доставки функций Play, чтобы запросить Google Play удалить только этот компонент вашего приложения.

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

Дополнительные советы

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

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

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

Прогнозируйте потребность пользователя в этой функции в предстоящем сеансе . Если вам не нужно, чтобы ваше приложение немедленно загружало и устанавливало модуль по требованию, вы можете отложить установку, пока приложение работает в фоновом режиме, и Google Play выполнит загрузку и установку за вас. Например, представьте, что вы хотите опубликовать новые сезонные рецепты для кулинарного приложения, которые не являются приоритетными для текущего сеанса пользователя. Вы можете запросить Play для загрузки и установки этих рецептов, когда приложение работает в фоновом режиме. Это особенно полезно для больших функций (>10 МБ), которые не нужны сейчас, но, вероятно, потребуются в будущем.

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