Настройка проекта
На этой странице собрано то, что определяет, где приложение работает и на что оно имеет право: разрешения, платформы, языки и обучающий тур по интерфейсу.
Разрешения
Прежде чем взять личные данные пользователя — местоположение, здоровье, фотографии, доступ к камере и микрофону, — приложение обязано объяснить, зачем они нужны, и получить согласие. Для этого и существует запрос разрешения.
Разрешения FlutterFlow добавляет сам, как только вы подключаете функциональность, которая обращается к личным данным. А вот сообщение к каждому разрешению пишете вы — именно его человек читает, решая, соглашаться ли.
- На Android свои сообщения не показываются: тексты отсюда видны только на iOS. Как их формулировать, описано в Human Interface Guidelines Apple.
- Разрешения, добавленные FlutterFlow, отключить нельзя — так меньше проблем при проверке приложения в магазине.
- См. также действие Request Permission.

Сообщение к разрешению
Стандартные сообщения FlutterFlow подставляет сам, но их нужно переписать под своё приложение: пользователь должен понять, зачем именно вам эти данные.
Порядок действий:
- Откройте Settings & Integrations в левом меню.
- В разделе Project Setup выберите Permissions.
- Отредактируйте сообщение для каждого разрешения. Для тех, что ещё не добавлены, включите переключатель и введите текст. В приложении это сообщение появится в системном диалоге — между названием приложения и кнопками.
У разрешений, которые нельзя отключить, пустое сообщение означает, что в диалоге останется подсказка по умолчанию.

Собственное разрешение
Иногда кастомный виджет или действие требуют разрешения, которого нет в списке, — например, распознавание речи. Такое разрешение добавляется вручную для Android и iOS.
Порядок действий:
- Откройте Settings & Integrations в левом меню.
- В разделе Project Setup выберите Permissions.
- Нажмите + Add Permission.
- Введите iOS Permission key — скажем, NSSpeechRecognitionUsageDescription или NSMicrophoneUsageDescription.
- Введите Android Permission name — например, RECORD_AUDIO или CAMERA.
- Напишите Permission Message: чётко, как именно используются данные.
- Нажмите значок подтверждения справа.
Сообщения о разрешениях можно перевести на другие языки — см. руководство по локализации.
Действие Request Permission
Это действие запрашивает разрешение перед обращением к личным данным: местоположению, микрофону, контактам, фотографиям.
Нужно оно там, где вы добавили кастомный виджет или действие без собственного механизма запроса.
- Работает только на мобильных платформах.
- Для разрешения Bluetooth диалог не показывается.
Пользователь согласился
Пользователь отказал
Как добавить действие
- Добавьте новое действие и выберите Request Permissions в разделе Alerts/Notifications.
- Задайте Permission Type. В списке видны только те разрешения, для которых написано сообщение.
- Добавьте условное действие, чтобы проверить ответ. В условии выберите Permission > имя разрешения.
- Под TRUE положите действия на случай согласия, под FALSE — на случай отказа, и нажмите Close.
Платформы
Сгенерированный проект по умолчанию работает на Android, iOS и в вебе. Чтобы собрать десктопную версию — macOS, Windows, Linux — платформу нужно включить здесь.
Дополнительные параметры Android
- Kotlin Version — версия Kotlin в Android-проекте. Меняют её, когда этого требует библиотека или инструмент.
- Minimum SDK Version — самая старая версия Android, на которой приложение запустится. Чем выше значение, тем больше новых API доступно и тем меньше устройств, куда приложение можно поставить.
- Compile SDK Version — версия Android, под которую компилируется код; от неё зависит набор доступных API.
- Target SDK Version — версия, на которую приложение рассчитано. По ней Android решает, применять ли к вашему приложению новые правила поведения.
Дополнительные параметры iOS
- Disable iPad Support — если приложение сделано под iPhone и на планшете выглядит неважно, поддержку iPad лучше отключить.
- Minimum iOS Version — самая старая версия iOS, на которой приложение запустится.
Дополнительные параметры веба
- Use Original Engine Initialization — исходная инициализация веб-движка Flutter. Иногда ускоряет загрузку опубликованного приложения; включайте, если с обычной инициализацией есть проблемы.
- Use CanvasKit — отрисовка через WebAssembly: выше качество и производительность, особенно на сложной графике и анимации.
Код для macOS и Windows FlutterFlow сгенерировать умеет, но эти платформы пока в статусе альфы и предоставляются как есть. Инфраструктуры для сборки, отладки и запуска под них нет, и поддержка FlutterFlow с такими сборками не помогает. При этом сгенерированный код открывается и собирается обычными средствами Flutter — в Android Studio или VS Code.
Оговорка касается только платформ публикации, но не самого десктопного приложения FlutterFlow.
Языки
О поддержке нескольких языков — в руководстве по локализации.
Обучающие подсказки
Walkthrough — это тур по приложению, который показывают при первом запуске: серия подсказок, объясняющих, где что находится.
В новостном приложении такой тур может по очереди подсветить видео в статье, подписку на обновления и фильтр по тегам.
Тур собирается в три шага:
1. Создание тура
-
Откройте Settings and Integrations > General > Walkthroughs и нажмите Create New.
-
Введите Name и Description, выберите Page, на которой тур будет показан. Имя понадобится, чтобы запустить тур.
-
Добавьте шаги. Каждый шаг — отдельная подсказка, подсвечивающая элемент интерфейса:
- Нажмите + Add Step.
- Выберите виджет для подсветки: нажмите Widget Unset, укажите его в превью справа и нажмите Confirm.
- Решите, что показать рядом с подсвеченным виджетом. Это может быть простой текст или компонент — скажем, надпись со стрелкой. Нажмите значок ромба, создайте компонент и укажите его в Content.
- Положение подсказки задаётся свойством Content Alignment.
- Форму подсветки выбирают в Focus Shape: Circle или Rectangle.
- Overlay Color — цвет затемнения вокруг подсвеченного элемента.
- Кнопка пропуска добавляется автоматически; её положение задаёт Skip Alignment.
- Повторите для остальных элементов, о которых хотите рассказать.
-
Нажмите Start Preview и пролистайте шаги стрелками, чтобы посмотреть, что получилось.
-
Порядок шагов меняется так: включите Reorder и переставьте их стрелками.
-
Нажмите Add Walkthrough, чтобы сохранить.
2. Действие Start Walkthrough
Готовый тур запускается действием Start Walkthrough — обычно при загрузке страницы.
- Откройте страницу, на которой должен показываться тур.
- В панели свойств выберите Actions и нажмите Open — откроется редактор действий.
- Убедитесь, что выбран триггер On Page Load, и нажмите + Add Action.
- Найдите действие Walkthrough > Start Walkthrough (в разделе Widget/UI Interactions).
- Нажмите Select Walkthrough и выберите созданный тур.
3. Завершение и пропуск
Иногда нужно знать, досмотрел пользователь тур или пропустил: отправить событие в аналитику, открыть следующую страницу, включить какую-то возможность.
Когда на странице есть тур, появляются два колбэка:
- On Walkthrough Complete — пользователь прошёл все шаги.
- On Walkthrough Skip — пользователь нажал «пропустить».
Видео
Если удобнее посмотреть:
Частые вопросы
Подсказка съезжает и подсвечивает не тот виджет
Обычно так бывает, когда анимация виджета и запуск тура происходят одновременно: тур запоминает положение виджета до того, как анимация закончилась, и после её завершения элемент оказывается в другом месте.

Лечится задержкой: добавьте перед запуском тура действие Wait длительностью не меньше, чем сама анимация.

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