Итоги 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 плюс наследие старого API | MVC, Eloquent, сервис-контейнер |
| Рынок разработчиков | Много специалистов в России | Больше в продуктовой разработке |
Ошибки при запуске приложения поверх Битрикса
Большая часть проблем возникает не в самом приложении, а на стыке с сайтом. Их проще предупредить на этапе проектирования API, чем чинить после релиза в сторах.
- отдавать в API данные прямо из шаблонов сайта — любая правка вёрстки ломает приложение;
- не предусмотреть версии API и заставлять всех пользователей обновляться;
- считать цены и скидки в приложении отдельно от правил корзины Битрикса;
- забыть про нагрузку: каталог для приложения без кэша кладёт сервер в часы пик;
- не продумать вход: пользователи сайта должны попасть в приложение под тем же аккаунтом.
Что я бы повторил
Если собрать итоги года в короткий список, получится так. Тестирование, аналитика и проектное управление — отдельными строками в каждой смете. Обучение новому фреймворку не ради миграции, а ради того, чтобы на привычном стеке писали взрослее. Пресейлы для нового направления — как инвестиция, которая окупается не сразу. И мобильная разработка начиналась с одного клиента и API на Битриксе, а не с отдельного отдела.
Вопросы и ответы
Можно ли делать фронтенд на React для 1С-Битрикс?
Да. В конце года мы собрали MVP на 1С-Битрикс и React за 3 недели, и оформление заказа не пришлось собирать на sale.order.ajax.
Как подключить мобильное приложение к Битриксу?
Мы собрали приложение на Flutter и подключили его к API на Битриксе. Это стоило половину стоимости веб-версии.
Что дало отдельное тестирование в каждой смете?
Мы выросли в качестве и себестоимости. Средний чек вырос, но клиентам так нравится больше.