Разработка приложений на Flutter для бизнеса в Дубае и ОАЭ
Одна кодовая база на Flutter для iOS и Android, арабский и английский с первого экрана и нативный код только там, где этого требует платформа.
Что даёт одна кодовая база
Flutter сам отрисовывает интерфейс, а не использует нативные компоненты каждой платформы. Поэтому один и тот же экран одинаково выглядит на iPhone и на среднебюджетном Android, а большинство функций создаются и тестируются один раз, а не дважды. Для приложения бронирования, программы лояльности, клиентского портала или инструмента для выездных сотрудников это обычно означает одну команду, один цикл релизов и один список ошибок.
Приложения на Flutter пишутся на Dart и компилируются в нативный машинный код — это не веб-страницы внутри оболочки. Правила магазинов, аккаунты разработчика и проверка работают так же, как для нативных приложений; подробнее — на наших страницах про iOS и Android.
Когда Flutter подходит, а когда нет
| Хорошо подходит | Стоит подумать |
|---|---|
| Бизнес-приложения с индивидуальными фирменными экранами на обеих платформах | Приложения, ценность которых в основном в возможностях только Apple или только Android: виджеты, Watch, сложные фоновые сервисы |
| Небольшая команда должна выпустить iOS и Android одновременно | Ваши штатные разработчики работают на React и TypeScript и примут приложение на поддержку; им может больше подойти React Native |
| Единый дизайн на Android-устройствах разных производителей | Приоритет — очень маленький размер загрузки |
| Приложение с сопутствующей админ-панелью, которая может использовать Flutter в вебе | Публичный сайт с большим объёмом контента, которому нужна видимость в поиске, — это задача для обычной веб-разработки |
Арабский язык и RTL во Flutter
Flutter автоматически зеркалирует интерфейс для арабской локали, если в коде используются направленные значения (start и end), а не left и right. Мы настраиваем это с первого экрана: переводы в ARB-файлах, даты и числа по локали и согласованный с вами выбор между западными и арабско-индийскими цифрами.
Что по-прежнему требует внимания: арабские шрифты, которые хорошо читаются в мелком размере, иконки, которые нужно или не нужно отражать, смешанный арабский и английский текст в одной строке — например, названия товаров или номера телефонов, — и тексты, которые на одном языке заметно длиннее, чем на другом. Каждый экран проверяется в обоих направлениях до выпуска.
Производительность и нативные модули
- Производительность
- Движок отрисовки Flutter хорошо справляется с плавной прокруткой и анимацией на большинстве устройств. Проблемы обычно возникают из-за кода приложения: слишком частая перерисовка экрана, большие изображения или тяжёлая работа в основном потоке. Мы профилируем приложение на бюджетном Android-телефоне, а не только на флагмане.
- Плагины
- Камера, карты, платежи, биометрия и push-уведомления покрываются поддерживаемыми пакетами. Перед тем как положиться на пакет, мы смотрим историю его поддержки: заброшенный плагин становится вашей проблемой при следующем обновлении ОС.
- Нативный код
- Если подходящего пакета нет — например, для конкретного платёжного терминала или Bluetooth-устройства, — мы пишем нативную часть на Swift и Kotlin и вызываем её через platform channels. Такой код небольшой, изолированный и задокументированный.
- Состояние и архитектура
- Чёткое разделение слоёв UI, управления состоянием и данных, автоматические тесты бизнес-логики и ключевых виджетов — чтобы приложение оставалось удобным для изменений после запуска.
Веб и десктоп
Flutter умеет собирать приложения и для веба, Windows, macOS и Linux. Веб-сборка хорошо подходит для внутренних инструментов и админ-панелей, с которыми работают авторизованные сотрудники. Для публичных маркетинговых страниц она подходит плохо: результат тяжелее и хуже читается поисковыми системами, чем обычный сайт. Десктопные сборки подходят для киосков, кассовых и бэк-офисных приложений. Дополнительные платформы мы включаем в объём, только если вы действительно будете ими пользоваться, потому что каждая добавляет тестирование.
Сопровождение
Стабильные релизы Flutter выходят несколько раз в год, а Apple и Google ежегодно меняют требования к SDK. Приложению на Flutter нужны регулярные обновления фреймворка, пакетов и нативных настроек сборки, иначе следующее требование магазина превратится в срочный проект. Если пропустить несколько версий, каждое обновление становится крупнее, потому что несовместимые изменения накапливаются сразу во многих пакетах. Мы поддерживаем зависимости в актуальном состоянии по договору сопровождения или передаём проект с чек-листом обновлений для вашей команды.
Что входит, что не входит и как формируется цена
- Входит: дизайн, код на Flutter в вашем репозитории, нативные модули в рамках объёма, работы по бэкенду или интеграции API в рамках объёма, тестовые сборки, отправка в оба магазина и документ для передачи проекта.
- Не входит: сборы магазинов, оплата сторонних сервисов, дополнительные платформы вне объёма и дальнейшее сопровождение.
- Бюджет зависит от ролей пользователей и сценариев, объёма нативного кода, наличия бэкенда, арабского языка с запуска и количества платформ.
Фиксированную цену мы называем после созвона по оценке проекта. Калькулятор стоимости даёт первое представление о масштабе, а на странице разработки мобильных приложений разобран выбор в целом.
Вопросы клиентов
Будет ли приложение на Flutter ощущаться нативным?
Оно ведёт себя как нативное приложение и работает как скомпилированный код. Некоторые соглашения платформ, например жесты навигации и выбор даты, нужно обрабатывать отдельно, чтобы пользователи каждой платформы получали привычное поведение.
Сложнее ли найти разработчиков на Flutter, чем на React Native?
В ОАЭ разработчиков на Dart меньше, чем на JavaScript. Код на Flutter читаемый и хорошо документирован, но учитывайте вашу будущую команду при выборе.
Можно ли использовать во Flutter Apple Pay и Google Pay?
Да, через поддерживаемые пакеты или собственный SDK платёжного шлюза, вместе с оплатой картой через шлюзы ОАЭ.
Можно ли позже добавить веб-версию?
Для инструментов с авторизацией — да, из той же кодовой базы. Для публичного сайта мы рекомендуем отдельную веб-разработку на том же API.
Как работают push-уведомления в приложении на Flutter?
Так же, как в нативных приложениях: через Apple Push Notification service на iOS и Firebase Cloud Messaging на Android, с запросом разрешения в момент, когда польза понятна.
Можете ли вы переписать наши два нативных приложения на Flutter?
Да, обычно экран за экраном или полной переработкой, если старые приложения трудно менять. Сначала мы оцениваем существующий код и бэкенд.

