Мобильные приложения

Разработка приложений на React Native для бизнеса в Дубае и ОАЭ

Приложения на React Native с Expo и TypeScript, которые делят логику с вашим сайтом на React или Next.js и получают небольшие исправления без ожидания полного релиза в магазине — в рамках правил Apple и Google.

Кому подходит React Native

  • Компаниям с веб-приложением на React или Next.js, которым нужно мобильное приложение на том же API, с теми же типами и бизнес-правилами.
  • Командам, чьи разработчики уже знают TypeScript и будут поддерживать приложение после передачи.
  • Продуктам, которые часто меняются и выигрывают от выпуска небольших исправлений JavaScript между релизами в магазине.
  • Приложениям, которые должны использовать нативные компоненты каждой платформы, чтобы кнопки, списки и поля ввода следовали соглашениям iOS и Android.

Со стороны магазинов всё так же, как у любого нативного приложения: аккаунты разработчика на имя вашей компании, проверка Apple и Google, правила встроенных покупок для цифровых товаров и push-уведомления через сервисы Apple и Google. Оплата физических товаров и услуг идёт через шлюзы ОАЭ, как описано на странице интеграции платёжных шлюзов, а Apple Pay и Google Pay подключаются там, где их поддерживает ваш шлюз.

Почему мы работаем с Expo

Development builds
Инструменты Expo быстро дают рабочее приложение на телефонах вашей команды, а development builds позволяют подключить любую нативную библиотеку, которая нужна проекту. Expo не закрывает доступ к нативному коду.
EAS Build
Облачные сборки для iOS и Android с ключами подписи, которые хранятся в одном месте, поэтому релизы не зависят от ноутбука одного разработчика.
Config plugins
Нативные настройки — разрешения, push-уведомления, deep links — описываются в конфигурации, а не правятся вручную в нативных проектах. Это значительно упрощает обновление фреймворка.
Нативные модули
Если функции нужен Swift или Kotlin — например, для конкретного Bluetooth-устройства или платёжного терминала, — мы пишем небольшой нативный модуль с типизированным интерфейсом. Экраны с насыщенной анимацией используют библиотеки, которые работают на нативной стороне.

Общая логика с веб-приложением

React Native не делит экраны с сайтом: веб-страницы и мобильные экраны строятся из разных компонентов. Зато можно делить всё, что лежит под ними. В монорепозитории приложение и ваш сайт на Next.js импортируют одни и те же пакеты.

  • Клиент API и типы TypeScript: изменение на бэкенде ломает сборку в обоих местах, а не проходит незаметно в одном из них.
  • Правила валидации форм, например номера телефонов в формате +971, поля Emirates ID или ограничения бронирования.
  • Бизнес-логика: расчёт цен и НДС, правила доступности, проверки прав.
  • Строки перевода на арабский и английский там, где формулировки совпадают.
  • Логика загрузки и кеширования данных на одной и той же библиотеке запросов с обеих сторон.

Если веб-приложения ещё нет, мы можем спланировать оба продукта вместе в рамках разработки веб-приложений или разработки SaaS, с одним бэкендом для обоих.

Обновления по воздуху в рамках правил магазинов

С EAS Update изменения в JavaScript-части приложения — исправление текста, ошибки вёрстки или логики — доходят до пользователей при следующем запуске без новой отправки в магазин. Всё, что затрагивает нативный код, разрешения или нативную конфигурацию приложения, по-прежнему требует обычного релиза в магазине.

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

React Native, Flutter или нативная разработка

ВыбирайтеКогда
React NativeУ вас React или Next.js в вебе, команда на TypeScript, и вам нужны нативные компоненты платформ и быстрые исправления между релизами
FlutterВам нужен одинаковый, сильно кастомизированный визуал на обеих платформах, и нет существующего кода на React, которым можно поделиться
Нативный iOS и нативный AndroidПродукт зависит от глубоких возможностей платформы, тяжёлых вычислений на устройстве или расширений, доступных только в Apple или Android

Для многих бизнес-приложений в ОАЭ разумны и React Native, и Flutter, а решающим фактором становится то, кто будет поддерживать код. На странице разработки мобильных приложений разобраны PWA и выбор в целом.

Процесс, объём и цена

  1. Оценка

    Сценарии, план общего кода, нативные модули, проверка правил магазинов по платежам и входу, требования к арабскому языку.

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

    Поэтапные development builds на ваших телефонах; монорепозиторий и CI настраиваются в первом этапе.

  3. Тестирование и выпуск

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

Входит: дизайн, код на TypeScript в вашем репозитории, общие пакеты, нативные модули в рамках объёма, настройка EAS и отправка в магазины. Не входит: сборы магазинов и сервисов Expo, оплата сторонних сервисов и дальнейшее сопровождение. Стоимость зависит от сценариев, нативных модулей, объёма уже существующего веб-кода и того, нужно ли создавать бэкенд. Фиксированную цену мы называем после созвона по оценке проекта; калькулятор стоимости даёт первое представление о масштабе.

Вопросы клиентов

Поддерживает ли React Native арабский язык?

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

Не окажемся ли мы привязаны к Expo?

Нет. Expo — открытый проект, нативные проекты можно сгенерировать и редактировать, а сервисы EAS необязательны. При желании можно собирать приложение в собственном CI.

Можно ли добавлять новые функции обновлениями по воздуху?

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

Можно ли переиспользовать компоненты нашего сайта?

Визуальные компоненты — нет, а логику, типы, клиент API и валидацию — да.

Хватит ли производительности?

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

Давайте работать вместе

Готовы построить систему роста?

Отправьте короткое описание задачи или напишите нам в WhatsApp. Мы ответим уточняющими вопросами, предложим объём работ и следующий шаг.