📚 Meander — создаём текстовые квесты и визуальные новеллы без программирования
🎮 Хотите сделать интерактивную историю, где читатель сам выбирает развитие сюжета? Обратите внимание на Meander — открытый движок для текстовых квестов и визуальных новелл.
Проект объединяет редактор историй, плеер и каталог сообщества. При этом он построен на технологиях Flutter и Rust и рассчитан на несколько платформ.
🧩 Что умеет Meander?
✍️ Визуальный редактор — создание историй через граф нод, без необходимости писать код вручную.
🔀 Ветвление сюжета — построение интерактивных сценариев и переходов между событиями.
🎭 Визуальные скрипты — настройка логики поведения истории.
▶️ Встроенный плеер — запуск и прохождение созданных квестов.
🌐 Каталог сообщества — площадка для знакомства с пользовательскими историями.
Отдельные квесты можно запускать в браузере, а основное приложение поддерживает настольные и мобильные платформы.
⚙️ Что интересного внутри?
Архитектура проекта сочетает несколько технологий:
• Flutter / Dart — пользовательский интерфейс и приложения.
• Rust — ядро движка, модели данных и выполнение сценариев.
• flutter_rust_bridge — взаимодействие Dart-кода с Rust.
• Lua — система плагинов.
• WebAssembly — браузерная сборка движка.
Это интересный пример того, как Flutter может использоваться не только для обычных мобильных приложений, но и для создания полноценных инструментов для авторов контента.
💻 Где работает?
📱 Android
🍎 iOS — сборка из исходников
🐧 Linux
🪟 Windows
💻 macOS
🌍 Браузер — через веб-плеер
Для Android предусмотрена установка через Google Play, для Linux — AppImage и AUR, для Windows и macOS доступны архивы релизов.
🔓 Open Source
Meander распространяется под лицензией AGPL-3.0-or-later. Код открыт, проект принимает issues и pull requests.
Важно: AGPL не запрещает коммерческое использование, но накладывает требования на распространение модифицированных версий, в том числе при предоставлении доступа к ним по сети.
🚀 Итог: Meander стоит изучить тем, кто интересуется Flutter, интерактивными историями, визуальными редакторами и связкой Dart + Rust.
✈️ Telegram-канал Meander: @meanderru
👨💻 Автор проекта подписчик нашего канала : @sup123543
Секретный инструмент Flutter: как мгновенно увидеть «кривые» отступы
Знакомо ли вам это чувство, когда UI выглядит «почти идеально», но что-то всё равно бесит? 🤔 Часто проблема кроется в микроскопических смещениях, которые невооружённым глазом не заметить.
В Flutter есть встроенный виджет GridPaper — настоящая палочка-выручалочка для отладки вёрстки. Он накладывает на ваш интерфейс сетку, помогая точно определить, где элементы «ушли» от идеального выравнивания.
Как это работает? Просто оберните нужный участок кода в GridPaper. Например, если вы хотите проверить сетку с шагом 8 логических пикселей, код будет выглядеть так:
Плотность этой «паутины» настраивается тремя параметрами:
• interval — расстояние между основными линиями;
• divisions — количество делений внутри основной ячейки;
• subdivisions — дополнительные деления внутри каждого участка.
Важно понимать: сетка — это только ориентир. Она не выравнивает элементы и не меняет отступы автоматически. Её задача — подсветить расхождения, чтобы вы могли проверить размеры и ограничения нужного виджета.
Главное правило: не забудьте убрать GridPaper после проверки, чтобы не отправлять в продакшн интерфейс в клеточку! 🙂
А как вы проверяете вёрстку? Используете сетку или доверяете Flutter Inspector? Делитесь в комментариях! 👇
Обзор пакетов на тему Desktop (Windows, Linux & macOS)
flutter_local_notifications 22.3.3
Кроссплатформенный плагин для отображения локальных уведомлений на Android, iOS, macOS, Linux, Windows и Web. Поддерживает планирование показов, группировку уведомлений и обработку действий пользователя при нажатии на них.
👍 Лайки: 7.4K, 📥 Скачиваний: 3.6M
📅 Обновлено: 2 days ago
https://pub.dev/packages/flutter_local_notifications
dbus 0.8.0
Нативный клиент D-Bus для Dart, позволяющий обращаться к удаленным объектам и экспортировать локальные. Пакет поддерживает генерацию классов из определений интерфейсов для упрощения работы с сервисами.
👍 Лайки: 80, 📥 Скачиваний: 8.2M
📅 Обновлено: 40 days ago
https://pub.dev/packages/dbus
win32 6.4.0
Предоставляет доступ к отобранным API Win32 и COM через Dart FFI, открывая возможности, недоступные через dart:io или платформенные каналы. Позволяет Flutter-приложениям на Windows взаимодействовать с системными настройками, реестром, нативными диалогами и аппаратными устройствами.
👍 Лайки: 957, 📥 Скачиваний: 11M
📅 Обновлено: 2 months ago
https://pub.dev/packages/win32
posix 6.5.3
Предоставляет Dart-доступ к POSIX API для систем MacOS и Linux. Позволяет вызывать системные функции, возвращая только типы Dart и обрабатывая ошибки через исключения.
👍 Лайки: 11, 📥 Скачиваний: 8.2M
📅 Обновлено: 39 hours ago
https://pub.dev/packages/posix
window_manager 0.5.2
Предоставляет полный контроль над размером, позицией, внешним видом и поведением закрытия окон в Flutter-приложениях для Linux, macOS и Windows.
👍 Лайки: 1.1K, 📥 Скачиваний: 876K
📅 Обновлено: 3 months ago
https://pub.dev/packages/window_manager
msix 3.18.0
CLI-инструмент для создания установщиков в формате MSIX из Flutter-приложений. Позволяет настраивать параметры приложения и подписывать его для публикации в Microsoft Store или размещения на сайте.
👍 Лайки: 990, 📥 Скачиваний: 263K
📅 Обновлено: 4 months ago
https://pub.dev/packages/msix
Ожидали 50% прироста производительности от WebAssembly в Flutter Web, а получили скромные 5–10%. Звучит как разочарование? Но цифры скрывают интересную историю о том, где Wasm действительно летает, а где JavaScript всё ещё король.
Проект wasm_versus_javascript на Dart 3.13.1 и Flutter 3.47.1 провёл стресс-тест на Apple M4. Сравнение шло между классическим CanvasKit (JS) и skwasm (ST/MT). Результат: «волшебной таблетки» нет, но есть чёткое понимание, где стоит оптимизировать.
⚡️ Где Wasm выигрывает:
✅ Холодный старт: 181,8 мс против 337,7 мс у JS.
✅ Размер бандла: 5,43 МиБ против 7,56 МиБ.
✅ Целочисленные операции: ускорение до 2,72x.
✅ SIMD: разрыв достигает 8,46x.
Но не всё так просто. В скалярных дробных вычислениях JS быстрее в 3,09 раза. Создание короткоживущих объектов и работа с Map тоже отдают преимущество JavaScript. Если ваш проект — это сложная логика с частым созданием объектов, Wasm может не спасти.
🔧 Главная ловушка — интероперация.
Частые мелкие вызовы Dart→JS в режиме Wasm медленнее в 33,52 раза! V8 отлично инлайнит JS-код, а Wasm-мост создаёт накладные расходы. Решение? Батчинг данных. Не зовите JS на каждый пиксель, а передавайте массивы целиком.
📊 Рендеринг и UI:
Общая длительность операций (прокрутка, слои) почти одинакова. Но Wasm ST ускоряет подготовку кадра в 1,9 раза (7,92 мс против 15,31 мс) при обновлении 600 ячеек. Это создаёт запас производительности, который спасает при пиковых нагрузках.
⚠️ Ограничения:
В MT-режиме (SharedArrayBuffer) растеризация может замедляться из-за накладных расходов рендерера. Для этого нужны COOP/COEP заголовки на сервере. Методология была жёсткой: медиана из 6 сессий, bootstrap-анализ и валидация эталонами SHA-256.
Вывод простой: Wasm не делает Flutter Web «быстрее» в вакууме. Он меняет профиль производительности. Если у вас тяжёлые вычисления и SIMD — переходите. Если много мелких JS-вызовов — сначала оптимизируйте интероперацию.
syncfusion_flutter_datepicker 35.1.42
Виджет выбора дат с поддержкой исламского календаря. Обновлена совместимость с Flutter SDK 3.47.
👍 Лайки: 1640, 📥 Скачиваний: 227K
https://pub.dev/packages/syncfusion_flutter_datepicker
syncfusion_flutter_calendar 35.1.42
Календарь с видами День, Неделя, Месяц и Таймлайн. Добавлена поддержка Flutter SDK 3.47.
👍 Лайки: 1570, 📥 Скачиваний: 84K
https://pub.dev/packages/syncfusion_flutter_calendar
syncfusion_flutter_charts 35.1.41
Библиотека для создания анимированных графиков. Обновлена совместимость с Flutter SDK 3.47.
👍 Лайки: 3640, 📥 Скачиваний: 233K
https://pub.dev/packages/syncfusion_flutter_charts
supabase_offline 0.0.1
Резервирование имени для будущей офлайн-поддержки клиентов Supabase в Dart и Flutter. На данный момент пакет является заглушкой и не содержит функциональности.
👍 Лайки: 1, 📥 Скачиваний: 0
https://pub.dev/packages/supabase_offline
adaptable_remote_config 0.0.1
Утилита для Flutter, позволяющая принудительно или опционально обновлять старые версии приложения без выпуска нового билда. Поддержка Android и iOS, гибкие источники данных и использование кэша при отсутствии интернета.
👍 Лайки: 1, 📥 Скачиваний: 0
https://pub.dev/packages/adaptable_remote_config
hot_patch_generator 0.0.1
Статическая генерация JS-модулей для Flutter. Автоматически переводит Flutter-виджеты с аннотацией @PatchEntry в JS-модули на этапе сборки для выполнения hot-patch без изменения исходного кода.
👍 Лайки: 1, 📥 Скачиваний: 155
https://pub.dev/packages/hot_patch_generator