← Все постыНаписать

Итоги 2022: QA, Laravel, React и мобильное приложение на Битриксе

На 2022 год мы в Alto ставили цель прокачать техническую экспертизу. Подвожу итоги: пересобрали тестирование по матрицам компетенций, Никита провёл обучение Laravel, мы собрали MVP на Битриксе и React за 3 недели, а для клиента сделали мобильное приложение на Flutter с API на Битриксе. Выручка выросла на 50%.

Прокачать отдел QA

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

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

Laravel для Битрикс-разработчиков

В начале года к нам присоединился Никита. Помимо его опыта 10 лет на фреймворках, он решил, что не может оставить ребят на 1С-Битрикс в покое. И провел обучение Laravel. Я уже писал пост про это и в комментариях все предрекали, что все разработчики захотят перейти на Laravel, но нет, разработчики вдохновились и стали взрослее писать на Битриксе. Подключают Slim и собирают API для мобильных приложений и фронта.

React на Битриксе: MVP за 3 недели

Отдельная проблема была начать продавать фронт на React на Битриксе. Клиенты привычно смотрели на стандартный подход. Хотя мы уже давно работали на аутстафе и внутренних проектах на React. Да и сам я, если что-то пишу, то сразу на реакте.

В итоге вложились хорошо в несколько пресейлов проектов и в конце года пришел отличный проект, где собрали MVP за 3 недели на 1С-Битрикс + React, прям перед новым годом. Все выдохнули с облегчением, так как оформление заказа не пришлось собрать на sale.order.ajax.

Мобильное приложение на Flutter с API на Битриксе

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

А еще мы выросли по выручке на 50%, и немного по людям.

Как подключить мобильное приложение к Битриксу

Сайт на 1С-Битрикс уже хранит каталог, цены, остатки, пользователей и заказы. Мобильному клиенту нужен доступ к тем же данным, только не через HTML-страницы, а через API. Поэтому основная работа на стороне сервера — описать методы: список товаров, карточка, корзина, оформление заказа, профиль, история покупок.

Внутри Битрикса для этого есть контроллеры ядра D7: они принимают запрос и отдают JSON. Можно пойти другим путём и поднять рядом лёгкий фреймворк вроде Slim, который работает с теми же модулями — инфоблоками и интернет-магазином. Так делали наши разработчики после курса по Laravel: API для мобильных приложений и фронта собирали на Slim поверх Битрикса.

  • авторизация по токену вместо сессии и cookies;
  • версия API в адресе, чтобы старые сборки приложения не ломались после обновлений;
  • кэширование каталога: мобильный клиент запрашивает его часто;
  • пуши через Firebase Cloud Messaging по событиям заказа в модуле интернет-магазина.

Мобильное приложение для Битрикса: своё или готовое

В Маркетплейсе Битрикса есть готовые решения, которые собирают приложение по шаблону. Для типового магазина это быстрый старт. Как только нужен свой интерфейс, нестандартная корзина или интеграция с курьерами, шаблон начинает мешать, и выгоднее своё приложение на Flutter или React Native поверх собственного API.

React на Битриксе: разделить фронт и бэк

Классический Битрикс рендерит страницы на сервере через компоненты и шаблоны. Оформление заказа в нём обычно строится на стандартном компоненте sale.order.ajax, и его доработка под нестандартный сценарий — известная боль битрикс-разработчиков.

Альтернатива — отдать интерфейс React-приложению, а Битрикс оставить источником данных и админкой. Фронт ходит в API, бэкенд не знает, как выглядит страница. Для SEO такой фронт рендерят на сервере, например через Next.js.

Когда React поверх Битрикса оправдан

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

  • сложные интерактивные сценарии: конфигураторы, многошаговое оформление, личный кабинет B2B;
  • один API нужен сразу сайту и мобильному приложению;
  • команда фронтенда работает отдельно от бэкенда и выпускает релизы в своём ритме.

Laravel или Битрикс: что выбрать под проект

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

Критерий1С-БитриксLaravel
ЛицензияПлатная, по редакциямОткрытая, MIT
Админка и контентГотовая из коробкиСобирается отдельно, например Filament или Nova
Интернет-магазинМодуль sale, обмен с 1СПишется под задачу или берётся пакет
АрхитектураЯдро D7 плюс наследие старого APIMVC, Eloquent, сервис-контейнер
Рынок разработчиковМного специалистов в РоссииБольше в продуктовой разработке

Ошибки при запуске приложения поверх Битрикса

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

  • отдавать в API данные прямо из шаблонов сайта — любая правка вёрстки ломает приложение;
  • не предусмотреть версии API и заставлять всех пользователей обновляться;
  • считать цены и скидки в приложении отдельно от правил корзины Битрикса;
  • забыть про нагрузку: каталог для приложения без кэша кладёт сервер в часы пик;
  • не продумать вход: пользователи сайта должны попасть в приложение под тем же аккаунтом.

Что я бы повторил

Если собрать итоги года в короткий список, получится так. Тестирование, аналитика и проектное управление — отдельными строками в каждой смете. Обучение новому фреймворку не ради миграции, а ради того, чтобы на привычном стеке писали взрослее. Пресейлы для нового направления — как инвестиция, которая окупается не сразу. И мобильная разработка начиналась с одного клиента и API на Битриксе, а не с отдельного отдела.

Вопросы и ответы

Можно ли делать фронтенд на React для 1С-Битрикс?

Да. В конце года мы собрали MVP на 1С-Битрикс и React за 3 недели, и оформление заказа не пришлось собирать на sale.order.ajax.

Как подключить мобильное приложение к Битриксу?

Мы собрали приложение на Flutter и подключили его к API на Битриксе. Это стоило половину стоимости веб-версии.

Что дало отдельное тестирование в каждой смете?

Мы выросли в качестве и себестоимости. Средний чек вырос, но клиентам так нравится больше.

Обсудить в Telegram Подписаться на @altocodes