Простыми словами
Flutter — фреймворк с открытым исходным кодом, который использует язык программирования Dart. В отличие от многих «кроссплатформенных» решений, он не оборачивает сайт в окно, а сам рисует интерфейс на экране с высокой частотой кадров. Поэтому приложения выглядят и работают плавно, как нативные.
Кроме мобильных приложений, на Flutter можно выпускать версии для веба и компьютеров, хотя основной сценарий — телефоны. Для коммерческих проектов он удобен тем, что дизайн, логика и поведение совпадают на обеих системах до мелочей.
Как это работает
Разработчик описывает экраны из готовых компонентов — виджетов, добавляет логику и подключает серверную часть. При разработке изменения видны на устройстве за доли секунды благодаря горячей перезагрузке, что ускоряет проверку и доработки. В итоге сборка компилируется в машинный код для каждой платформы.
Доступ к возможностям телефона, таким как камера, геолокация, push и биометрия, обеспечивают плагины. Для нестандартных функций при необходимости пишут небольшие нативные вставки. Публикация идёт через обычные App Store и Google Play.
Зачем это владельцу бизнеса
Для заказчика главные плюсы — экономия и скорость. Одна команда делает обе версии, исправления выходят одновременно, а поддержка стоит дешевле. Для большинства бизнес-приложений — заказов, записи, личных кабинетов, каталогов — пользователь не отличит такое приложение от нативного.
Ограничения есть: для игр с тяжёлой графикой и функций, глубоко связанных с системой, иногда выбирают нативную разработку. Размер приложения на Flutter немного больше, а редкие новые возможности платформ появляются с задержкой.
Пример из практики
Сеть автомоек в Караганде хотела приложение для клиентов и отдельное для мойщиков, при ограниченном бюджете. Обе версии для iOS и Android собрали на Flutter, причём общая часть кода сократила работу. Клиентское приложение вышло в сторы за три недели.
Частые ошибки
- Думать, что кроссплатформенность отменяет работу над правилами каждого магазина
- Не учитывать отличия интерфейса iOS и Android
- Использовать множество непроверенных плагинов
- Не планировать обновления при выходе новых версий систем
- Сравнивать Flutter и конструкторы приложений — это разные уровни