Назови худшую библиотеку, с которой сталкивался в Flutter.

«Назови худшую библиотеку, с которой сталкивался в Flutter.» — вопрос из категории Flutter виджеты, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Одной из самых проблемных в моем опыте была старая версия flutter_webview_plugin (сейчас она устарела и не поддерживается).

Основные проблемы:

  1. Отсутствие интеграции с навигацией Flutter: WebView открывался как нативное поверхностное окно поверх Flutter-приложения. Это ломало навигационный стек и поведение кнопки "Назад".
  2. Утечки памяти: После закрытия WebView часто не освобождались ресурсы, что приводило к падению производительности.
  3. Сложность коммуникации: Обмен данными между JavaScript в WebView и Dart-кодом был нестабильным и громоздким.

Пример проблемы с навигацией:

// Старый подход (проблемный)
final _webviewPlugin = FlutterWebviewPlugin();
_webviewPlugin.launch('https://example.com'); // Открывается поверх всего приложения
// Кнопка 'Назад' в AppBar теперь не работала ожидаемо

Решение: Мы перешли на официальный пакет webview_flutter, который является настоящим Flutter-виджетом, интегрируется в дерево виджетов и полностью контролируется навигацией Flutter.

WebView(
  initialUrl: 'https://example.com',
  javascriptMode: JavascriptMode.unrestricted,
  onPageFinished: (url) { /* Легко реагировать на события */ },
)

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