Мобильное приложение для интернет магазина. Зачем нужно и на чем делать?

Одно из направлений нашей работы - это мобильные приложения для Интернет-магазинов. Мы прошли путь от нативных приложений к кроссплатформенным далее к PWA и попробовали много вариантов и технологий в разных проектах.

Мобильное приложение для интернет магазина. Зачем нужно и на чем делать?

В данной статье мы дадим сравнительный анализ разных подходов, основанный на частых вопросах клиентов.

Зачем магазину мобильное приложение?

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

  1. Скорость работы. Раньше приложения были адаптированы под устройства и “вылизаны”, работали быстрее и удобнее, а мобильная версия сайта делалась по остаточному принципу. У некоторых пользователей ещё сохраняется ощущение, приложение будет быстрее и удобнее.
    Мобильная версия и приложения не сравнялись, но на современных устройствах разница перестала быть существенной. Заметные отличия можно видеть в анимациях и эффектах. В приложениях добиваются более плавной работы и приятных плавных анимаций (переключение между страницами, скроллинге внутренних блоков).
  2. Фактор запоминаемости. Пользователям (как и магазинам) нужно, чтобы под рукой была кнопка магазина, если он им часто пользуется.
    В браузере у пользователей часто бардак со ссылками и избранным. Добавить что-то на рабочий стол телефона - гарантия найти это быстрее в будущем (вариант с выводом ссылки не рассматриваем из-за топорности подхода).
  3. Пуши. Приложение может отправлять собственные пуши. Пуши это удобно. Явно удобнее чем SMS или email уведомления (не говоря уже о стоимости SMS для отправителя).
    К отправляемым сайтами пушам куда меньше доверия – и зачастую их запрещают.
  4. Авторизация. Есть стойкое ощущение: если ты авторизовался в приложении - оно будет помнить тебя, пока ты не поменяешь телефон – а авторизация в браузере через месяц слетит.
    Авторизация по кукам в браузере считается менее надежной и принято хранить её ограниченное время.
  5. Фактор значимости. Раньше приложения могли себе позволить только крупные магазины, поэтому многим юзерам до сих пор может казаться: у магазина есть приложение в сторе -- он большой/надежный.

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

Технологии и варианты разработки

Нативное классическое приложение

В этом случае пишется отдельно приложение для Android (как правило, на Kotlin) и отдельно для iOS (как правило, на Swift).

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

Нативное приложение дублирует интерфейсы сайта в виде двух независимых приложений: сделать сайт + приложение - это почти как сделать 3 сайта (с точки зрения программирования интерфейсов).

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

React Native и аналогичные кроссплатформенные фреймворки

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

Экономия на ресурсах и стоимости разработки минимум в 1.5 раза, но это все равно почти как сделать второй сайт.

Получаем также ряд минусов:

  • потенциальные сложности при обновлении операционных систем и с совместимостью с фреймворком;
  • существенно больший размер приложения;
  • чуть ниже скорость работы (в большинстве случаев почти не заметно);
  • чуть больше ограничений по эффектам и анимациям.

Отметим более современные фреймворки, например Ionic framework.

Этот фреймворк для разметки интерфейса ориентируется на стандартный HTML-формат и специальные теги внутри. Таким образом можно переиспользовать часть интерфейсов с сайта, адаптировав их для мобильного приложения – что сократит расходы ещё в 1,5 раза (особенно если Frontend сайта работает на популярном JS-фреймворке).

Существенных минусов по сравнению с React Native у этого подхода не обнаружено.

Стандартное PWA приложение

Принципиально другой подход и немного другой результат.

Это приложение, которое можно установить напрямую из браузера
Это приложение, которое можно установить напрямую из браузера

При этом оно не публикуется в сторах.

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

Плюсы:

  • размер приложения ничтожен, потому что по сути является только ссылкой;
  • стоимость минимальна;
  • не требует отдельной поддержки или разработки: изменения на сайте отображаются в приложении.

Минусы:

  • отсутствие приложения в сторах (теряем фактор значимости);
  • чуть ниже скорость работы (на современных устройствах и при качественно сделанном сайте разница почти незаметна);
  • ограничения по эффектам и анимациям: они не такие плавные, как в предыдущих вариантах;
  • нельзя сделать разные оформления интерфейсов:
Мобильное приложение для интернет магазина. Зачем нужно и на чем делать?
  • для приложений e-commerce это мало актуально: даже крупные сайты отбросили идею адаптировать интерфейсы под стилистику ОС;
  • пуши: приложение может использовать только стандартные браузерные веб-пуши (а iOS периодически то разрешает, то блокирует эту возможность).

Если мобильная версия вашего сайта работает плохо – это передастся и приложению тоже.

Мобильное приложение на базе PWA

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

С точки зрения телефона это уже полноценное приложение, а не PWA, и его можно выкладывать в AppStore и GooglePlay.

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

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

Есть и еще нюансы: например, в iOS нет штатного жеста “назад”, а поскольку интерфейса браузера в приложении нет, то, чтобы оставить возможность навигации по страницам, надо для iOS добавить отдельную кнопку “назад”.

Для лучшего понимания предлагаем ознакомиться с примером нашего приложения на базе этой технологии.

Такое приложение может работать с полноценными пушами, если встроить ему небольшое “нативное прокси”, которое будет принимать пуш и передавать данные дальше внутрь самого приложения.

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

Ощущения от работы с плавным нативным приложением куда приятнее – но стоят ли они разницы в стоимости разработки и сложности в поддержке, которая может отличаться в 50 (!) раз?

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

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

Мобильное приложение на готовой платформе/конструкторе

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

Плюсы такого подхода – стоимость еще дешевле. Часто сборка вообще бывает бесплатной и дальше только небольшая абонентскую плату.

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

Выводы

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