17 января 2022

Когда кросс-платформенная разработка выигрывает у нативной

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

Наша команда сделала мобильное приложение личного кабинета для управляющей компании PRINZIP Service, чтобы упростить взаимодействие между жителями и сотрудниками УК и повысить качество сервиса. Мы создали одно приложение для двух групп целевой аудитории, что позволило клиенту существенно сэкономить на разработке. В этой статье я расскажу, как мы делали это приложение на фреймворке React Native, а также что стоит знать product-менеджерам, которым нужно решить подобные задачи. 

В качестве основного инструмента разработки мы выбрали React Native. Это позволило нам переиспользовать имеющуюся экспертизу в современной веб-разработке.

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

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


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

Так вот, ReactNative позволяет значительно упростить работу в части создания пользовательского интерфейса. Интерфейс описывается один раз удобным для веб-разработчика способом, а дальше уже React Native создаёт нативный интерфейс на каждой платформе.

Команда разработки приложения

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

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

Также обязательно наличие тестировщика с как минимум парой устройств на каждой платформе — что-нибудь мощное, современное и что-нибудь бюджетное для контроля производительности приложения.

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

Тестирование и публикация

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

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

Интеграции

Чтобы жители могли оплачивать счета, передавать показания счётчиков и выполнять другие необходимые действия, клиенту было важно настроить биллинг, интеграции с сервисом «Фрисби» и SMS-провайдером. 

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

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

Вывод

Платформа React Native идеально подходит для небольших приложений-инструментов, в которых немного экранов (до 20), немного данных, несложный интерфейс. Например, приложение управляющей компании для жильцов с функционалом: просмотр и отправка показаний счётчиков, внесение оплаты, создание заявок, получение уведомлений. 

Плюсы: очень легко собрать работающий продукт и опробовать его на живой аудитории.

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

Читайте другие наши статьи