Назови худшую библиотеку, с которой сталкивался в 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) { /* Легко реагировать на события */ },
)

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

Ответ 18+ 🔞

А, вспомнил одну историю, просто ёперный театр! Речь про старый пакет flutter_webview_plugin. Сейчас-то он уже накрылся медным тазом, но в своё время мы с ним намучились, ядрёна вошь.

В чём была, блядь, засада:

  1. Полный пиздец с навигацией: Этот WebView открывался как какое-то левое нативное окно, поверх всего нашего приложения. Представь: ты в приложении, жмёшь кнопку — и бац, выскакивает отдельная штука. Кнопка "Назад" в AppBar после этого просто умирала, нихуя не работала. Навигационный стек ломался в хлам.
  2. Утечки памяти, овердохуища: Закроешь вьюху, а она, сука, как призрак, в оперативке остаётся и ресурсы жрёт. Потом приложение начинает тормозить и вылетать — красота.
  3. Общение с JS — пиздопроебибна: Хотел данные туда-сюда передать, а там такой геморрой, такой костыль нужно было пилить... доверия к этому процессу было ноль ебать.

Вот, смотри, как это выглядело в коде, просто атас:

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

Видишь? Запустил и прощай, контроль. Чувак, я тебе скажу, подозрение ебать чувствую к таким либам, которые живут отдельной жизнью.

Как мы выкрутились? Да похуй на эту старую либу, перешли на официальный webview_flutter. Вот это уже дело! Это нормальный виджет, который в дереве твоём сидит, как миленький, и навигация Flutter им полностью рулит.

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

Вот после этого всего я твёрдо усвоил: прежде чем тащить в проект какую-нибудь библиотеку, надо её, блядь, со всех сторон пощупать. Посмотреть, как она интегрируется, живая ли поддержка, или от неё один геморрой. Э, бошка, думай, прежде чем pub add делать!