NETROOM
Excalidraw - виртуальная доска для схем и диаграмм в стиле «от руки»: наброски архитектуры, user flow, wireframes и всё, что проще нарисовать, чем описать словами. Работает прямо в браузере, без регистрации: открыл вкладку и рисуешь. Есть библиотеки готовых элементов, экспорт в PNG и SVG, совместное редактирование по ссылке и сквозное шифрование комнат. Файлы можно хранить локально или подключить своё хранилище. Открытый исходный код, есть self-hosted вариант для команд.
Squoosh - сжатие картинок прямо в браузере: перетащил файл, выбрал формат и качество, скачал результат. Ползунок показывает оригинал и сжатую версию рядом, так что видно, где начинают лезть артефакты, и можно остановиться на грани. Форматов много, у каждого свои настройки - от одной ручки качества до параметров самого кодека. Файлы никуда не отправляются: вся работа идёт на вашем устройстве, даже без интернета - приложение ставится как обычное. Сделано командой Google Chrome Labs, открытый код, регистрация не нужна.
«Швейцарский нож» для данных от британского GCHQ. Собираешь цепочку операций - «рецепт» - и прогоняешь через неё текст или файл: base64, XOR, AES, DES, Blowfish, хеши, hexdump, разбор X.509 и IPv6, распаковка архивов, перекодировка. Всё считается прямо в браузере, ничего не улетает на сервер, страницу можно скачать и открыть офлайн. Лицензия Apache 2.0 плюс Crown Copyright. Незаменим при разборе логов, дампов и подозрительных payload-ов.
Швейцарский нож для PDF в браузере, но на своём сервере: слить и разрезать, повернуть, сжать, конвертировать в офисные форматы и обратно, распознать текст через OCR, подписать, заредактировать чувствительные куски, собрать цепочку операций через REST API. Больше пятидесяти инструментов. Смысл в том, что файлы не уезжают в чужое облако. Поднимается одним docker run, есть десктопный клиент и чарты для Kubernetes. Модель open-core: ядро открыто, часть возможностей в платных Server и Enterprise планах.
Убирает ручные == и hashCode: наследуешь класс от Equatable, перечисляешь поля в props - и сравнение по значению работает. Без этого каждое обновление состояния в bloc выглядит новым объектом, и виджеты перерисовываются зря. Чистый Dart, все платформы, кодогенерации нет - в этом и разница с freezed и built_value, которые дают ещё copyWith и сериализацию, но тянут build_runner. Требует Dart 3. Если класс уже от чего-то наследуется, есть EquatableMixin.
Движок кодогенерации в Dart: запускает билдеры json_serializable, freezed, retrofit, drift, mockito, auto_route. Команды две - build с флагом --delete-conflicting-outputs и watch на время разработки. Живёт только в dev_dependencies, в рантайм ничего не попадает. На больших проектах медленный, кэш иногда протухает, лечится build clean. Без него современный Dart-стек почти не собрать: 6 млн загрузок в месяц. 2.16.0 от июля 2026, BSD-3.
Открывает ссылки наружу: http и https, tel, sms, mailto, а на Android - и произвольные intent-схемы. Официальный плагин команды Flutter, все шесть платформ. С 6.1 используй launchUrl(Uri) и LaunchMode вместо строкового launch: режимом выбираешь внешний браузер, in-app WebView или Custom Tab. Обязательный шаг - перечислить схемы в LSApplicationQueriesSchemes на iOS и в блоке queries манифеста на Android 11+, иначе canLaunchUrl честно вернёт false. Релизы редкие: пакет устоялся.
Пары ключ-значение поверх NSUserDefaults, SharedPreferences и их аналогов - официальный плагин команды Flutter на всех шести платформах. Хранит только bool, int, double, String и List<String>; объекты сериализуй в JSON руками. Новый API - SharedPreferencesAsync (читает с диска, без кеша) и SharedPreferencesWithCache; привычный getInstance() ещё работает, но переведён в legacy. Ничего не шифрует: токены и пароли туда не клади, для них flutter_secure_storage. Нативных правок не требует.
Обработка картинок на чистом Dart: decode и encode JPG, PNG, GIF, BMP, TIFF, TGA, ICO и lossless WebP, чтение PSD, EXR и PNM, плюс resize, crop, повороты, фильтры и рисование. Работает и во Flutter, и на сервере, и в CLI - dart:ui не нужен. Заметно медленнее нативных библиотек, поэтому тяжёлые операции гоняй через Command API на изоляте, иначе интерфейс встанет колом. Для банального сжатия фото перед загрузкой чаще хватает flutter_image_compress. MIT, релизы регулярные (4.9.x).
Отдаёт системные каталоги: временный, документы, поддержку приложения, кеш, загрузки. Без него файл некуда положить корректно - на iOS всё, что лежит не там, может исчезнуть при обновлении, а содержимое Documents уезжает в бэкап iCloud. Ключевой момент: не все методы есть везде. getExternalStorageDirectory и соседние - только Android, getApplicationLibraryDirectory отсутствует на Android, Linux и Windows, web не поддержан вовсе. Официальный плагин команды Flutter, BSD-3.
Открывает pdf, docx, xlsx, ppt и zip нативным приложением и попутно заводит локальную папку под файлы. Заброшен: релиз 1.0.7 вышел три года назад, издатель непроверенный, полсотни лайков и почти нулевые загрузки. За это время Android дважды менял правила доступа к хранилищу, так что на свежих версиях сюрпризы гарантированы. Под ту же задачу бери open_filex - он живой и специально чинит требования Google Play и сборку на Gradle 8. Android, iOS, macOS, Windows; MIT.
Помечен на pub.dev как discontinued: автор переименовал пакет в command_it, туда и переехало развитие. Для нового кода бери command_it, для старого миграция сводится к смене зависимости и импортов. Суть та же: паттерн Command поверх ValueListenable, где каждое действие - объект с состояниями выполнения, ошибки и результата, а UI подписывается на них без стейт-менеджера. Последняя версия 7.2.2 от декабря 2024; лицензию pub не распознал, для юридической проверки смотри репозиторий.
Осторожно: пакет с pub.dev заброшен, последняя версия 1.0.2+3 вышла пять лет назад. Начиная с Flutter 2.0 integration_test входит в SDK, и подключать его нужно так: в dev_dependencies прописать integration_test с sdk: flutter. Команда flutter pub add integration_test поставит именно старую внешнюю копию - так делать не надо. Сам механизм живой и актуальный: гоняет тесты на API flutter_test на реальном устройстве или эмуляторе, дружит с flutter drive, Firebase Test Lab и записью скриншотов.
Осторожно: пакет заброшен. Последний релиз 0.16.0 вышел четыре года назад, и это была community-обёртка, а не продукт Mapbox - в README так и написано. На современном Flutter без правок не собирается, а нативные SDK внутри давно устарели. Живая замена - официальный mapbox_maps_flutter от самого Mapbox (Android, iOS, web в публичном превью) либо maplibre_gl, если хочется остаться на открытом стеке без токенов и биллинга. Новый проект на этом пакете начинать нельзя, для старых пора планировать миграцию.
Прокидывает переменные из .env не только в Dart, но и в нативный код - в build.gradle, Info.plist и Objective-C со Swift. Смысл в этом: когда ключ нужен самой платформе, вроде API-ключа Google Maps в манифесте. Главное, что стоит знать: последний релиз - июль 2023, репозиторий стоит, скачиваний около двух тысяч в месяц. Формально discontinued не помечен, но по факту заброшен. Только Android и iOS, с правками в Gradle и Xcode. Для Dart-переменных бери flutter_dotenv или envied.
NoSQL-база для Flutter: асинхронная, с запросами, составными индексами, полнотекстовым поиском и связями между объектами - там, где нужна выборка, а не просто ключ-значение, она сильно обходит Hive. Проблема в поддержке: стабильная 3.1.0+1 вышла три года назад, 4.0 годами висит в dev, автор от проекта отошёл. Для нового кода смотри isar_community (форк, который чинит баги в ветке 3) или Drift, если готов к SQL и миграциям. Нативная библиотека собирается под все платформы, web - через WASM. Apache-2.0.
Метапакет: тянет разом все google_mlkit_* - штрихкоды, лица, текст, разметку изображений, позы, перевод. Удобен, чтобы пощупать возможности, но в проде почти всегда лишний: каждая модель добавляет к бинарнику мегабайты, а нужна обычно одна. Подключайте конкретный подпакет. Работает только на Android и iOS, всё считается локально, без сети. Активен - 0.23.1 вышла в августе 2026, нужны Dart 3.12 и Flutter 3.44, на iOS сборка только под arm64.
Физика 2D для Dart: тела, фикстуры, джоинты, непрерывные столкновения - основа для платформеров и аркад, штатно дружит с Flame. Важная перемена: свежие версии - это биндинг к нативной Box2D v3 через build hooks, а не чистый Dart-порт, так что нужен Dart 3.12, включённые native assets и рабочий C-тулчейн при сборке. Релиз 0.15.1 в августе 2026. Заранее проверьте, что ваши сборки под веб и в CI проходят.
Нижняя навигация в стиле дизайнера Aurelien Salomon: активная вкладка разъезжается в пилюлю с подписью, остальные остаются иконками. Красиво и подключается в три строки. Обновлений три года, издатель проверенный, но проект явно закрыт: при 1,1 тысячи лайков всего шесть тысяч загрузок. Кода мало и он чистый Dart, так что при поломке проще скопировать к себе, чем ждать релиза. Ближайшая замена в SDK - NavigationBar из Material 3, он умеет похожий индикатор. MIT.
Роутер поверх Navigator 2.0, прячущий его многословность: карта путей, вложенные роуты, табы с собственной историей, честные URL на web. На сложных сценариях с вкладками ощущается проще go_router - состояние табов не теряется само собой. Но экосистема ушла к go_router: он лежит в flutter/packages, у него больше примеров и разобранных вопросов. Routemaster жив, релиз три месяца назад, статус Flutter Favorite - и всё же, выбирая с нуля, сначала посмотри на go_router. MIT.
Redux Марка Гласберга, из которого выкинули boilerplate: вместо редьюсеров и middleware - классы ReduxAction с асинхронным reduce(). В коробке обработка ошибок, ожидание действий в UI, сохранение состояния на диск и тестовые хелперы. Берите, если нравится единый store и предсказуемый поток, но flutter_redux утомил церемониями. Сообщество маленькое - 157 лайков против тысяч у bloc и Riverpod. 28.1.0 от июля 2026, Dart 3.5+, MIT.
State-management с инъекцией состояния: RM.inject, ReactiveStatelessWidget, а вдобавок встроенный DI, роутер, формы, i18n и обработка асинхронных состояний - фактически мини-фреймворк, а не просто стор. Мощно, но документация тяжёлая и порог входа высокий. Главная проблема сейчас - темп: последний релиз на pub датирован февралём 2024, ветка 7.0 с тех пор висит в dev, хотя коммиты в репозитории есть. Для нового проекта в 2026-м риск - Riverpod или signals спокойнее.
Реактивность на сигналах: signal, computed, effect и batch - четыре примитива, из которых собирается любая логика. Чистый Dart, живёт во Flutter, в CLI, на сервере Shelf и в вебе. От Riverpod и BLoC отличается тем, что нет провайдеров, контейнеров и кодогенерации: значение просто читаешь, зависимости отслеживаются сами. Это ядро - для виджетов ставь signals_flutter, он подтянет его транзитивно. Автор Rody Davis, 7.x вышла весной 2026, лицензия Apache-2.0, нужен Dart 3.5+.
Кастомное окно на Flutter desktop: своя титульная строка, кнопки свернуть, развернуть и закрыть, перетаскивание за шапку, размеры и позиция при старте. Windows, macOS и Linux. Проблема в датах: 0.1.6 вышла в декабре 2023, issue копятся. Для новых проектов берут window_manager - он живее и умеет больше: полноэкранный режим, несколько окон, события окна. Нужны правки в нативных точках входа: main.cpp, MainFlutterWindow.swift, my_application.cc. MIT.
Одна круговая диаграмма с анимацией появления, легендой и подписями процентов: принимает Map<String, double> и рисует. Ставят, когда нужен именно пирог и не хочется тащить большую графическую библиотеку ради одного экрана. Обновлений два года, но ломаться особо нечему - чистый CustomPainter без нативного кода, издатель проверенный. Как только в проекте появится вторая диаграмма - линия, столбики, - выгоднее сразу перейти на fl_chart и не держать два пакета. MIT, все платформы.
Flutter-обвязка над signals: виджет Watch, расширения вроде .watch(context), хуки и автоматическая отписка при dispose. Перерисовывает ровно те места, которые читают сигнал, - без Consumer-обёрток и без setState на пол-экрана. Ставить в приложении надо именно этот пакет, ядро придёт зависимостью. В 7.0 часть API вокруг Watch поменялась, перед апгрейдом загляни в changelog. Есть расширение для DevTools, чтобы смотреть граф зависимостей. Apache-2.0, Dart 3.5+, релизы живые.
Заброшен - это главное, что про него надо знать. Пакет с метриками кода и дополнительными правилами анализа помечен discontinued и снят из выдачи pub.dev: последний открытый релиз 5.7.6 вышел в июле 2023 под Dart 2.18, лицензия в метаданных не определена. Автор увёл проект в коммерческий DCM на dcm.dev с платной подпиской. Бесплатная замена - custom_lint плюс готовые наборы правил. В новые проекты не ставить.
Достаёт версию, build number, package name и отображаемое имя приложения - то, что на Android лежит в versionCode, а на iOS в CFBundleVersion. Нужен везде, где версия показывается в разделе «О приложении» или уезжает в аналитику и Sentry. Работает на всех шести платформах; на web данные читаются из сгенерированного version.json, и если хостишь на другом домене, придётся поправить CORS или задать baseUrl вручную. Часть набора plus_plugins от Flutter Community, BSD-3.