🎮🔥 НОВОСТЬ: FlutterPulse представляет — Duit: эффективный Backend-Driven UI фреймворк для Flutter от Никиты Синявина (BetBoom)
На конференции CrossConf 2025 разработчик из компании BetBoom , Никита Синявин , представил свой open-source проект — Duit , мощный и легковесный фреймворк для реализации подхода Backend-Driven UI на Flutter.
💡 Что такое Backend-Driven UI?
Backend-Driven UI — это подход, при котором не только данные, но и структура интерфейса управляется с сервера. Это позволяет:
🚀 Быстро обновлять интерфейс без публикации новых версий в сторах
🧪 Упрощает A/B тестирование и управление фичами
⏱️ Сокращает время выхода продукта на рынок (Time to Market)
Однако у этого подхода есть и свои вызовы:
📉 Зависимость от скорости сети
🐛 Сложности в отладке и тестировании
🔄 Необходимость тонкой настройки обмена данными между клиентом и сервером
🧰 Основные особенности Duit:
1. Контролируемые виджеты
Подходят для динамического обновления UI
Используют StatefulWidget под капотом, но с оптимизациями для производительности
2. Атрибуты
Хранят параметры виджетов (цвет, размер, текст и т.д.)
Позволяют гибко управлять состоянием и внешним видом элементов
3. Драйвер + Контроллер
Драйвер — центральная часть, отвечающая за обработку действий пользователя и взаимодействие с сервером
Контроллер связывает виджеты с логикой драйвера, обеспечивая двустороннюю коммуникацию
4. Поддержка кастомных виджетов
Возможность добавлять собственные виджеты, например, SVG или анимации
Гибкая система регистрации через три этапа: AttributeFactory, ModelFactory, BuildFactory
5. Компоненты
Шаблоны, которые можно переиспользовать, отделяя макет от данных
6. Действия и события
Действия описываются на сервере и выполняются на клиенте
События — результат выполнения действий, могут обновлять состояние UI
7. Анимации
Поддерживаются как implicit, так и explicit анимации
Реализованы через Tween и AnimationController
8. Расширяемый транспортный слой
Поддерживает HTTP и WebSocket
Возможность интеграции сторонних клиентов, таких как Dio
9. Интеграция с нативными приложениями
Возможность использования Duit в нативных iOS/Android приложениях через Flutter Add-to-App
🌟 Почему это важно для Flutter-сообщества?
Duit — первый полноценный open-source фреймворк для Backend-Driven UI, созданный специально под Flutter. Он даёт командам:
Возможность управлять UI удалённо
Высокую скорость доставки изменений
Гибкость в интеграции и расширении
📦 Что дальше?
Фреймворк уже используется в экспериментальном режиме внутри BetBoom. В планах:
Публикация на pub.dev
Улучшение документации
Создание демо-приложения
Расширение поддержки виджетов Flutter
📌 Ссылка на доклад:
Youtube: Duit – как создать эффективный BDUI-фреймворк для Flutter
#FlutterPulse #FlutterDev #BDUI #BackendDrivenUI #Duit #MobileDevelopment #FlutterFramework #OpenSource #CrossConf #FlutterAddToApp #BETBOOM #NickSinyavin
На конференции CrossConf 2025 разработчик из компании BetBoom , Никита Синявин , представил свой open-source проект — Duit , мощный и легковесный фреймворк для реализации подхода Backend-Driven UI на Flutter.
💡 Что такое Backend-Driven UI?
Backend-Driven UI — это подход, при котором не только данные, но и структура интерфейса управляется с сервера. Это позволяет:
🚀 Быстро обновлять интерфейс без публикации новых версий в сторах
🧪 Упрощает A/B тестирование и управление фичами
⏱️ Сокращает время выхода продукта на рынок (Time to Market)
Однако у этого подхода есть и свои вызовы:
📉 Зависимость от скорости сети
🐛 Сложности в отладке и тестировании
🔄 Необходимость тонкой настройки обмена данными между клиентом и сервером
🧰 Основные особенности Duit:
1. Контролируемые виджеты
Подходят для динамического обновления UI
Используют StatefulWidget под капотом, но с оптимизациями для производительности
2. Атрибуты
Хранят параметры виджетов (цвет, размер, текст и т.д.)
Позволяют гибко управлять состоянием и внешним видом элементов
3. Драйвер + Контроллер
Драйвер — центральная часть, отвечающая за обработку действий пользователя и взаимодействие с сервером
Контроллер связывает виджеты с логикой драйвера, обеспечивая двустороннюю коммуникацию
4. Поддержка кастомных виджетов
Возможность добавлять собственные виджеты, например, SVG или анимации
Гибкая система регистрации через три этапа: AttributeFactory, ModelFactory, BuildFactory
5. Компоненты
Шаблоны, которые можно переиспользовать, отделяя макет от данных
6. Действия и события
Действия описываются на сервере и выполняются на клиенте
События — результат выполнения действий, могут обновлять состояние UI
7. Анимации
Поддерживаются как implicit, так и explicit анимации
Реализованы через Tween и AnimationController
8. Расширяемый транспортный слой
Поддерживает HTTP и WebSocket
Возможность интеграции сторонних клиентов, таких как Dio
9. Интеграция с нативными приложениями
Возможность использования Duit в нативных iOS/Android приложениях через Flutter Add-to-App
🌟 Почему это важно для Flutter-сообщества?
Duit — первый полноценный open-source фреймворк для Backend-Driven UI, созданный специально под Flutter. Он даёт командам:
Возможность управлять UI удалённо
Высокую скорость доставки изменений
Гибкость в интеграции и расширении
📦 Что дальше?
Фреймворк уже используется в экспериментальном режиме внутри BetBoom. В планах:
Публикация на pub.dev
Улучшение документации
Создание демо-приложения
Расширение поддержки виджетов Flutter
📌 Ссылка на доклад:
Youtube: Duit – как создать эффективный BDUI-фреймворк для Flutter
#FlutterPulse #FlutterDev #BDUI #BackendDrivenUI #Duit #MobileDevelopment #FlutterFramework #OpenSource #CrossConf #FlutterAddToApp #BETBOOM #NickSinyavin
🔥 НОВОСТЬ: Что ждёт Dart в ближайшие годы? Станислав Чернышёв делится подробностями
На прошедшей конференции CrossConf 2025 автор книги «Основы Dart» и один из самых узнаваемых экспертов в сообществе, Станислав Чернышёв, выступил с докладом о будущем языка Dart. Он рассказал о ключевых фичах, которые уже находятся в разработке или планируются к внедрению в ближайших версиях. Вот самые важные анонсы:
### 🧠 1. Макросы (Macros) — новый уровень метапрограммирования
Одна из самых долгожданных фич в Dart — макросы — наконец-то приближается к релизу. Они позволят:
- Генерировать код на этапе компиляции.
- Упрощать шаблонную логику (например, сериализацию/десериализацию JSON).
- Делать аргументацию классов и функций без необходимости использования отдельных кодогенераторов.
📌 Макросы будут работать через специальные аннотации и поддерживать три типа:
-
-
-
⚠️ Важно: макросы не смогут использовать
### 🔢 2. Цифровые разделители (Dart 36)
Начиная с Dart 36, появятся разделители в числах — удобный способ читать большие значения. Это улучшение качества жизни разработчика, особенно при работе с финансовыми или статистическими данными.
### 🎯 3. Wildcards (Dart 37)
Теперь можно использовать
Это упростит работу с ненужными параметрами и уменьшит количество "заглушек".
### 🔄 4. Изменяемые ресурсы между изолятами
Разработчики рассматривают возможность передачи изменяемых объектов между изолятами, используя модификатор
💡 Предполагается, что вместе с этим будет добавлена библиотека
### 🛠 5. Первичные конструкторы (Primary Constructors)
Ещё одна фича, которая поможет писать меньше кода:
Сокращает объявление простых классов, где поля создаются прямо в конструкторе. Также добавлено ключевое слово
### 📦 6. Новые возможности импортов
Появление scoped imports позволит писать меньше повторяющегося кода:
Такой подход упростит работу с перечислениями и статическими методами.
### 💬 7. Интерполяция строк с тегами (String Tags)
Такие теги позволят обрабатывать строки особым образом, например, экранировать HTML, форматировать SQL-запросы или валидировать регулярные выражения.
### 📐 8. Static Extensions
Фича, которая позволит добавлять новые конструкторы к классам, не изменяя их исходный код:
Отличное решение для расширения сторонних библиотек без fork’ов.
### 🚀 Итого: куда движется Dart?
Dart продолжает эволюционировать, становясь более мощным и выразительным. Фичи вроде макросов и изменяемых ресурсов между изолятами могут сделать язык конкурентоспособным даже в сложных системах. Однако растёт и порог входа: новые разработчики теперь столкнутся с гораздо более сложным инструментарием.
📌 Dart больше не просто язык для Flutter. Он становится полноценным системным языком с широкими возможностями абстракции, метапрограммирования и параллелизма.
🎥 Видео доступно на YouTube
#FlutterPulse #DartLanguage #FlutterDev #FutureOfDart #MacrosInDart #Isolates #StaticExtensions #FlutterCommunity #MobileDevelopment #PotokConf #Dart36 #Dart37 #FlutterNews #DartEvolution #CodeGeneration #DartIsMoreThanFlutter
На прошедшей конференции CrossConf 2025 автор книги «Основы Dart» и один из самых узнаваемых экспертов в сообществе, Станислав Чернышёв, выступил с докладом о будущем языка Dart. Он рассказал о ключевых фичах, которые уже находятся в разработке или планируются к внедрению в ближайших версиях. Вот самые важные анонсы:
### 🧠 1. Макросы (Macros) — новый уровень метапрограммирования
Одна из самых долгожданных фич в Dart — макросы — наконец-то приближается к релизу. Они позволят:
- Генерировать код на этапе компиляции.
- Упрощать шаблонную логику (например, сериализацию/десериализацию JSON).
- Делать аргументацию классов и функций без необходимости использования отдельных кодогенераторов.
📌 Макросы будут работать через специальные аннотации и поддерживать три типа:
-
type
— для работы с типами.-
declaration
— для добавления объявлений.-
definition
— для изменения поведения существующих сущностей.⚠️ Важно: макросы не смогут использовать
dart:io
, dart:isolate
и другие небезопасные библиотеки, чтобы избежать нежелательного влияния на систему.### 🔢 2. Цифровые разделители (Dart 36)
int bigNumber = 1_000_000;
Начиная с Dart 36, появятся разделители в числах — удобный способ читать большие значения. Это улучшение качества жизни разработчика, особенно при работе с финансовыми или статистическими данными.
### 🎯 3. Wildcards (Dart 37)
Теперь можно использовать
_
как имя переменной в callback’ах, без опаски получить ошибку анализа кода:list.forEach((_, index) {
print(index);
});
Это упростит работу с ненужными параметрами и уменьшит количество "заглушек".
### 🔄 4. Изменяемые ресурсы между изолятами
Разработчики рассматривают возможность передачи изменяемых объектов между изолятами, используя модификатор
sharable
. Это может радикально изменить подход к многопоточности в Dart и Flutter, особенно в тяжёлых приложениях.💡 Предполагается, что вместе с этим будет добавлена библиотека
dart:concurrent
, предоставляющая примитивы синхронизации и безопасной работы с общими ресурсами.### 🛠 5. Первичные конструкторы (Primary Constructors)
Ещё одна фича, которая поможет писать меньше кода:
class User(primary constructor(this.name, this.age));
Сокращает объявление простых классов, где поля создаются прямо в конструкторе. Также добавлено ключевое слово
required
для именованных параметров.### 📦 6. Новые возможности импортов
Появление scoped imports позволит писать меньше повторяющегося кода:
import 'package:mylib/mylib.dart' show Color;
Color red = Color.red; // Теперь работает!
Такой подход упростит работу с перечислениями и статическими методами.
### 💬 7. Интерполяция строк с тегами (String Tags)
var html = htmlTag"<div>$content</div>";
Такие теги позволят обрабатывать строки особым образом, например, экранировать HTML, форматировать SQL-запросы или валидировать регулярные выражения.
### 📐 8. Static Extensions
Фича, которая позволит добавлять новые конструкторы к классам, не изменяя их исходный код:
static extension UserExtensions on User {
User.fromMap(Map<String, dynamic> data) => ...;
}
Отличное решение для расширения сторонних библиотек без fork’ов.
### 🚀 Итого: куда движется Dart?
Dart продолжает эволюционировать, становясь более мощным и выразительным. Фичи вроде макросов и изменяемых ресурсов между изолятами могут сделать язык конкурентоспособным даже в сложных системах. Однако растёт и порог входа: новые разработчики теперь столкнутся с гораздо более сложным инструментарием.
📌 Dart больше не просто язык для Flutter. Он становится полноценным системным языком с широкими возможностями абстракции, метапрограммирования и параллелизма.
🎥 Видео доступно на YouTube
#FlutterPulse #DartLanguage #FlutterDev #FutureOfDart #MacrosInDart #Isolates #StaticExtensions #FlutterCommunity #MobileDevelopment #PotokConf #Dart36 #Dart37 #FlutterNews #DartEvolution #CodeGeneration #DartIsMoreThanFlutter
🎯 RuStore — теперь не просто альтернатива, а необходимость
📲 Подписан закон, который обязывает при продаже смартфонов и планшетов в России обеспечивать доступ к установке и обновлению приложений через 🇷🇺 единый магазин RuStore.
💥 Что это значит?
— Устройства, продаваемые в РФ, должны поддерживать RuStore "из коробки"
— Никаких блокировок, ограничений или "невидимых барьеров" для российских приложений
— Запрещено препятствовать обновлениям, уведомлениям, платежам и работе функций, если они идут через RuStore
— Даже 🍏 устройства, которые традиционно "закрыты", формально обязаны обеспечить такую возможность
🚨 Причём:
🔥 А значит — не исключено, что в ближайшем будущем можно будет ставить приложения на iOS через RuStore (в теории… но реализация покажет 😉).
📢 Flutter-разработчики, следим за ситуацией внимательно: возможно, скоро откроются новые каналы распространения даже для iOS. А пока — продолжаем пилить 🧱 🧑💻.
🔗 Подписывайтесь на FlutterPulse — мы разбираем важные законы, фреймворки, SDK и публикуем апдейты без воды.
💬 Что думаете о нововведении? Откроет ли это путь для Flutter-приложений на iOS вне App Store? Прогнётся ли Apple? Пишите в комментариях!
#RuStore #iOS #Закон #МагазинПриложений #MobileDev #Flutter #flutterdev #flutterpulse #россия #санкции #iosdev #androiddev #appdistribution #russia #technews
📲 Подписан закон, который обязывает при продаже смартфонов и планшетов в России обеспечивать доступ к установке и обновлению приложений через 🇷🇺 единый магазин RuStore.
💥 Что это значит?
— Устройства, продаваемые в РФ, должны поддерживать RuStore "из коробки"
— Никаких блокировок, ограничений или "невидимых барьеров" для российских приложений
— Запрещено препятствовать обновлениям, уведомлениям, платежам и работе функций, если они идут через RuStore
— Даже 🍏 устройства, которые традиционно "закрыты", формально обязаны обеспечить такую возможность
🚨 Причём:
📌 В законе отдельно упоминаются производители, ограничивающие доступ к сторонним магазинам.
📌 Закон напрямую запрещает такие ограничения — включая блокировку API, ограничение платежей или недоступность функций для сторонних приложений.
🔥 А значит — не исключено, что в ближайшем будущем можно будет ставить приложения на iOS через RuStore (в теории… но реализация покажет 😉).
📢 Flutter-разработчики, следим за ситуацией внимательно: возможно, скоро откроются новые каналы распространения даже для iOS. А пока — продолжаем пилить 🧱 🧑💻.
🔗 Подписывайтесь на FlutterPulse — мы разбираем важные законы, фреймворки, SDK и публикуем апдейты без воды.
💬 Что думаете о нововведении? Откроет ли это путь для Flutter-приложений на iOS вне App Store? Прогнётся ли Apple? Пишите в комментариях!
#RuStore #iOS #Закон #МагазинПриложений #MobileDev #Flutter #flutterdev #flutterpulse #россия #санкции #iosdev #androiddev #appdistribution #russia #technews
🔥5
🎉 Внимание всем разработчикам на Flutter! 🚀💻
У нас есть свежие новости для вас! 📰 Плагин Flutter для VSCode только что получил мощное обновление, и вы точно не захотите его пропустить! 🤩
🆕 Главное в этом релизе:
👉 Hot Reload при сохранении теперь работает ещё стабильнее – забудьте про ручные перезапуски, фокусируйтесь только на коде! ⚡
👉 EmulatorId вместо deviceId в конфигурации запуска – управление симуляторами стало проще и удобнее! 🧩
👉 Команда Add Dependency теперь позволяет выбрать, в какой проект добавить зависимость – особенно полезно для монорепозиториев! 📁
🔧 А ещё в обновлении:
✅ Переменные из циклов for и деструктуризации теперь отображаются в Inline Values – удобнее отлаживать!
✅ Большие списки в отладчике теперь разбиваются на страницы – это улучшает производительность и предотвращает зависания. 📊
✅ Inline Values больше не отображаются в ветках кода, которые не исполнялись – меньше визуального шума! 🧠
✅ Устранено мерцание при установке/удалении брейкпоинтов – теперь всё чётко и без лишних «серых» состояний. 🎯
✅ Hot Reload больше не падает, если вы случайно запустили его несколько раз подряд – стабильность прежде всего! 🔄
✅ Добавлен экспериментальный флаг dart.mcpServer для автоматической регистрации MCP-сервера Dart SDK 3.9.0 и выше. 🧪
🔍 Хотите больше деталей? Ознакомьтесь с полным списком изменений здесь и не забудьте поставить 👍
📢 И конечно же, подписывайтесь на flutterpulse, чтобы не пропустить ничего важного из мира Flutter! Мы следим за каждым обновлением! 💬📱
#flutter #dart #flutterdev #VSCode #обновление #flutterpulse
У нас есть свежие новости для вас! 📰 Плагин Flutter для VSCode только что получил мощное обновление, и вы точно не захотите его пропустить! 🤩
🆕 Главное в этом релизе:
👉 Hot Reload при сохранении теперь работает ещё стабильнее – забудьте про ручные перезапуски, фокусируйтесь только на коде! ⚡
👉 EmulatorId вместо deviceId в конфигурации запуска – управление симуляторами стало проще и удобнее! 🧩
👉 Команда Add Dependency теперь позволяет выбрать, в какой проект добавить зависимость – особенно полезно для монорепозиториев! 📁
🔧 А ещё в обновлении:
✅ Переменные из циклов for и деструктуризации теперь отображаются в Inline Values – удобнее отлаживать!
✅ Большие списки в отладчике теперь разбиваются на страницы – это улучшает производительность и предотвращает зависания. 📊
✅ Inline Values больше не отображаются в ветках кода, которые не исполнялись – меньше визуального шума! 🧠
✅ Устранено мерцание при установке/удалении брейкпоинтов – теперь всё чётко и без лишних «серых» состояний. 🎯
✅ Hot Reload больше не падает, если вы случайно запустили его несколько раз подряд – стабильность прежде всего! 🔄
✅ Добавлен экспериментальный флаг dart.mcpServer для автоматической регистрации MCP-сервера Dart SDK 3.9.0 и выше. 🧪
🔍 Хотите больше деталей? Ознакомьтесь с полным списком изменений здесь и не забудьте поставить 👍
📢 И конечно же, подписывайтесь на flutterpulse, чтобы не пропустить ничего важного из мира Flutter! Мы следим за каждым обновлением! 💬📱
#flutter #dart #flutterdev #VSCode #обновление #flutterpulse
Базовый Dart (Часть №1) 🚀💻
Привет, программисты! 👋 Сегодня мы поговорим о базовом Dart и о том, что нужно знать до перехода к объектно-ориентированному программированию 🤔.
Узнаем, что такое runtime и compile-time, и как они отличаются 🕒. Также разберемся с типами данных и их важностью в программировании 📊.
Учимся работать с переменными: присваивание, арифметические операции, конкатенация и логические операции 📝. А также изучаем условные операторы if, else if и else, чтобы принимать решения в программах 🤖.
Узнайте о условных операторах, циклах и функциях в программировании 🔄. Эти инструменты помогут вам создавать гибкие и эффективные программы 🚀.
Функции в программировании - это блоки кода, которые выполняют определенные задачи и могут быть вызваны несколько раз 📈. Они помогают повторно использовать код, организовывать программы и облегчают отладку 🐜.
И, конечно, не забудем про Null Safety - мощный инструмент для безопасного кода 🛡. Узнайте, как избегать ошибок и писать более надежный код с помощью Null Safety 📚.
Читайте статью и начинайте свое путешествие в мир программирования 🌟!
#flutter #dart #flutterpulse #programmirovanie #nullsafety #basics #programming #development #coders #learndart #dartlang #flutterdev #mobileappdevelopment 🚀💻
Привет, программисты! 👋 Сегодня мы поговорим о базовом Dart и о том, что нужно знать до перехода к объектно-ориентированному программированию 🤔.
Узнаем, что такое runtime и compile-time, и как они отличаются 🕒. Также разберемся с типами данных и их важностью в программировании 📊.
Учимся работать с переменными: присваивание, арифметические операции, конкатенация и логические операции 📝. А также изучаем условные операторы if, else if и else, чтобы принимать решения в программах 🤖.
Узнайте о условных операторах, циклах и функциях в программировании 🔄. Эти инструменты помогут вам создавать гибкие и эффективные программы 🚀.
Функции в программировании - это блоки кода, которые выполняют определенные задачи и могут быть вызваны несколько раз 📈. Они помогают повторно использовать код, организовывать программы и облегчают отладку 🐜.
И, конечно, не забудем про Null Safety - мощный инструмент для безопасного кода 🛡. Узнайте, как избегать ошибок и писать более надежный код с помощью Null Safety 📚.
Читайте статью и начинайте свое путешествие в мир программирования 🌟!
#flutter #dart #flutterpulse #programmirovanie #nullsafety #basics #programming #development #coders #learndart #dartlang #flutterdev #mobileappdevelopment 🚀💻