Сделали приложение для известной сети магазинов по продаже косметики

Мы в команде flaton разработали кросс-платформенное приложение для компании "Галерея косметики". В статье расскажу как делали, с чем столкнулись и что получилось в MVP за 4 месяца. Смотрим!

Сделали приложение для известной сети магазинов по продаже косметики

Клиент

Компания «Галерея косметики» — это сеть розничных магазинов и салонов красоты, а также интернет-магазин. Здесь вы можете приобрести профессиональную косметику, товары для красоты и товары для дома. Ассортимент компании включает более 35 000 наименований продукции от самых популярных брендов из разных стран.

Проблема

До обращения к нам у компании уже было готовое приложение, созданное на конструкторе Bitrix Mobile. Однако оно не соответствовало требованиям по ряду причин:

  • Низкая производительность влияла на количество заказов;
  • Ограничения коробочного решения не позволяли адаптировать приложение под нужды бизнеса;
  • Компания 1С Битрикс объявила о приостановке продажи лицензий на 1С Bitrix Mobile и исключила его из списка продуктов.

Для выбора команды на аутсорс-разработку клиент проводил внутренний отбор исполнителей, в котором участвовали 8 команд разработки. По результатам данного конкурса клиент решила обратиться к нам.

Задача

Перед командой стояла задача разработать клиентскую часть приложения и подготовить его к выпуску в официальных магазинах приложений: App Store, Google Play Market, AppGallery, Rustore. На момент обращения у клиента уже был готовыq дизайн приложения и его серверная часть, созданная на платформе Битрикс.

Выбор стека разработки

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

Процесс работы

1.Проектирование

В работе над приложением с нашей стороны участвовали три человека: два разработчика на Flutter и менеджер проекта.

2.Разработка

Главная страница

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

Главная страница
Главная страница

Каталог товаров

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

  • Товары для волос
  • Товары для лица
  • Товары для тела
  • Товары для ногтей
  • Товары для макияжа
  • Техника
  • Аксеессуары
  • Товары для здоровья
Листинг и страница карточка товара
Листинг и страница карточка товара

Корзина и избранное

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

В корзине есть поле для промокода и удобная визуализация списания баллов.

Избранные товары и корзина
Избранные товары и корзина

Оформление заказа

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

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

Возникшие трудности

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

  • Использование cookie;
  • Удаление HTML-кода из текста.

Для решения проблемы с cookie мы разработали механизм, который перехватывает и сохраняет cookie, полученные от сервера после успешной аутентификации пользователя. Для этого использовались специализированные библиотеки, такие как flutter_cookies_manager и http для Flutter. При последующих запросах к серверу приложение автоматически добавляет сохраненные cookie в заголовки HTTP-запросов, что позволяет поддерживать состояние сессии и аутентификацию пользователя.

Для решения второй проблемы мы разработали парсер, который удаляет ненужные HTML-теги и извлекает только полезную информацию для отображения в мобильном приложении. Для этого использовались регулярные выражения и библиотеки для парсинга HTML, такие как html и flutter_html.

Результаты

  • Мы разработали MVP мобильного приложения за четыре месяца. На данный момент наше приложение в среднем в месяц скачивают 2113 пользователей, а активно используют — 4032 человека. Эта статистика учитывает данные только из App Store и Play Market.
  • Продолжаем сотрудничество с клиентом. В настоящее время мы расширяем функционал приложения и добавляем новые возможности для пользователей.
3
3 комментария

А чем вызвана такая странная очередность разделов нижней навигации?

К сожалению мотивов дизайнера - почему именно так, не знаем. Но если посмотреть на приложение "Золотое яблоко" и других сетей косметики, то там почти также. В Ozon/WB, например, корзина и аккаунт также справа.