Есть ли опыт работы с Flutter Web
Что проверяют
Насколько вы открыты к стеку за пределами Swift и понимаете ли, где Flutter Web уместен. Такой вопрос iOS-разработчику обычно значит, что у команды есть Flutter-приложение или веб-версия на нём. Следом спросят про ограничения и про то, как бы вы вели такой проект.
Как отвечать
Если опыт был, стройте ответ на своём проекте: что это было (админка, личный кабинет, внутренний инструмент), какую часть кода делили с мобильным приложением, какой получился размер сборки и время первой загрузки, что пришлось переписать под веб. Цифры берите из своих замеров, а не «пользователи были довольны».
Что стоит знать о технологии, чтобы ответ звучал предметно:
- рендеринг: Flutter рисует интерфейс на canvas через CanvasKit (Skia, собранная в WebAssembly), а
flutter build web --wasmкомпилирует и сам Dart в WebAssembly и использует рендерер skwasm. HTML-рендерер устарел и выводится из обращения; - первая загрузка: движок заметно утяжеляет старт, поэтому для лендинга Flutter Web тяжёл, а для приложения, которое открывают надолго, приемлем;
- SEO и доступность: текст на canvas поисковик не видит, доступность держится на дереве семантики, и его нужно проверять;
- навигация: по умолчанию адреса с
#, чистые пути включаетusePathUrlStrategy(), а кнопку «назад» браузера связывают с навигацией, обычно черезgo_router; - интероп: работа с JS через
dart:js_interopиpackage:web, старыйdart:htmlв сборке под Wasm не работает.
Если опыта нет, так и скажите и сразу покажите мост: декларативный UI вы знаете по SwiftUI, модель виджетов и состояния устроена похоже, Dart осваивается быстро. Можно добавить, что собирали пробный проект или прикидывали, как ваш экран выглядел бы на Flutter.
Где спотыкаются
Приписывают себе опыт по одному туториалу. Второй же вопрос про рендереры или размер сборки это вскрывает.
Говорят, что Flutter Web годится для любого сайта. Для контентных страниц, которым нужен поиск, это плохой выбор, и честное «здесь я бы взял обычный веб» звучит сильнее.
Отвечают только «нет, я iOS-разработчик». Интервьюер проверял гибкость, а закрытый ответ читается как нежелание учиться.