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

Важность автономной функциональности

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

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

Хороший, плохой, злой

Давайте рассмотрим пару примеров и попробуем лучше понять нашего пользователя.

Gmail. Популярный почтовый клиент Google – отличный пример приложения, обеспечивающего бесперебойную работу в автономном режиме.

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

Revolut: это приложение для цифрового банкинга также позволяет пользователям, среди прочего, проверять свой баланс в автономном режиме.

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

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

Не теряйте пользователей из-за плохой связи

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

Представление о том, что некоторые приложения не могут обеспечить автономную функциональность из-за своей природы или объема данных, которые они обрабатывают, просто неверно. Есть ВСЕГДА некоторые функции, которые можно реализовать в автономном режиме. Давайте возьмем пример приложения электронной коммерции, где пользователи просматривают множество продуктов и совершают покупки.

Вы можете подумать: «Как такое приложение может работать в автономном режиме, когда ему требуется постоянное подключение к Интернету для обновления списков продуктов и обработки транзакций?» Вот в чем дело — вам не нужно кэшировать все данные. Сосредоточьтесь на важных данных, таких как прошлые покупки пользователя или избранные товары. Почему?

Вы ВСЕГДА можете заключить сделку с вашим пользователем в автономном режиме!

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

Представьте себе пользователя, который открывает ваше приложение в автономном режиме, возможно, во время полета или в месте с плохой связью. Если ваше приложение отказывается работать без подключения к Интернету, пользователь кладет свой телефон обратно в карман и идет дальше. Но что, если позже они пойдут в магазин, чтобы купить то, что хотели? Этот магазин может по-прежнему не принадлежать вам, и продажа, которую вы могли бы совершить через свое приложение, достается кому-то другому.

Теперь рассмотрим другой сценарий. Тот же пользователь открывает ваше приложение в автономном режиме. Но вместо пустого экрана или сообщения об ошибке они видят свои предыдущие покупки и кнопку «выкупить». Они могут нажать эту кнопку, чтобы запланировать повторную покупку, и приложение заверит их: «Вы не в сети, но мы можем запланировать эту покупку, как только соединение будет восстановлено». Вы можете даже упростить сообщение. Когда я нажимаю кнопку «Отправить электронное письмо» в Gmail в автономном режиме, оно просто говорит: «Это электронное письмо будет отправлено позже». И после того, как я нажму на него, я просто позволю себе забыть об этом письме! Вот как это приложение расширяет возможности пользователей!

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

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

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

Стриминговые приложения: аргументы в пользу автономной работы

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

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

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

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

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

Тенденции отрасли

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

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

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

Как избежать ненужных экранов входа и потери данных

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

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

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

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

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

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

Как разработчик, крайне важно понимать негативное влияние этих практик на удержание пользователей. Сними шляпу разработчика. Будьте пользователем. Вы бы смирились с этим? Именно поэтому ВАШЕ приложение теряет 80% пользователей за 90 дней!

Неужели так сложно реализовать дискретное обновление токенов и миграцию данных?

Меня сбивает с толку, как это не является главным приоритетом для выпуска 0 в жизненном цикле разработки некоторых приложений!

Лучший способ не потерять пользователя — никогда не выкидывать его из приложения. ДУХ!

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

Использование силы глубоких ссылок

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

Рассмотрим приложение для доставки еды, которое позволяет пользователям просматривать меню различных ресторанов и заказывать еду. Пользователь только что обнаружил вкусное блюдо из местного ресторана и хочет поделиться этой находкой со своими друзьями. С помощью глубоких ссылок они могут создать ссылку на это конкретное блюдо и поделиться ею через предпочитаемый канал, будь то приложение для чата, SMS или социальные сети.

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

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

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

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

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

Примечание от автора

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

У меня есть личная формула предоставления полностью работающих автономных приложений, которую я совершенствовал годами, и, учитывая тот факт, что крупные компании, такие как LinkedIn и Medium, не предлагают никаких функций автономного редактирования постов/историй в своих приложениях, я думаю, что погода чтобы превратить это в новую статью, я бы выдал коммерческую тайну. Тем не менее, я дам вам пару подсказок: здесь используется Стратегия исходящих для незавершенных сетевых операций и выдача отрицательных идентификаторов объектам, созданным в автономном режиме, чтобы не столкнуться с идентификаторы, выданные серверной системой. Никаких идентификаторов корреляции и никаких сложностей со схемой, которую должны иметь все ваши данные!

Я буду рад поделиться своим опытом, чтобы помочь вам в этом начинании. Вы можете узнать больше о моей работе и связаться со мной через мое резюме. Давайте вместе создавать приложения, которые действительно выделяются на рынке и расширяют возможности пользователей независимо от подключения к Интернету.