Привет, друзья! 🚀
Только что наткнулся на отличную статью Михаила Лазебного, которая рассказывает о двух ключевых типах состояний в Flutter: Ephemeral State и Application State. 📱
🤔 Если вы хотите понять, как эффективно управлять состоянием вашего приложения, это must-read! Михаил делится простыми и полезными примерами:
1️⃣ Ephemeral State – это временное состояние, которое живёт только в рамках одного виджета (например, введённый текст в TextField или текущий индекс навигации).
2️⃣ Application State – это более глобальное состояние, которое влияет на весь проект, например, данные пользователя или список постов, полученных с сервера.
Для каждого типа состояния есть свои лучшие практики, и, что важно, Михаил объясняет, где не стоит перегружать приложение лишними инструментами (например, создавать BLoC для простого индекса в навигации).
🔧 Это помогает организовать код и сделать приложение более производительным!
Если вы всё ещё не уверены, какой подход лучше применить в вашем проекте – не пропустите! 👀
Читайте статью здесь: https://lazebny.io/ephemeral-and-application-state-in-flutter/
#flutter #flutterpulse #flutterdev #state_management #dart #flutterstate #appdevelopment
Только что наткнулся на отличную статью Михаила Лазебного, которая рассказывает о двух ключевых типах состояний в Flutter: Ephemeral State и Application State. 📱
🤔 Если вы хотите понять, как эффективно управлять состоянием вашего приложения, это must-read! Михаил делится простыми и полезными примерами:
1️⃣ Ephemeral State – это временное состояние, которое живёт только в рамках одного виджета (например, введённый текст в TextField или текущий индекс навигации).
2️⃣ Application State – это более глобальное состояние, которое влияет на весь проект, например, данные пользователя или список постов, полученных с сервера.
Для каждого типа состояния есть свои лучшие практики, и, что важно, Михаил объясняет, где не стоит перегружать приложение лишними инструментами (например, создавать BLoC для простого индекса в навигации).
🔧 Это помогает организовать код и сделать приложение более производительным!
Если вы всё ещё не уверены, какой подход лучше применить в вашем проекте – не пропустите! 👀
Читайте статью здесь: https://lazebny.io/ephemeral-and-application-state-in-flutter/
#flutter #flutterpulse #flutterdev #state_management #dart #flutterstate #appdevelopment
🚀 Flutter Voronezh Meetup: Распространённые ошибки и их решения
🔧 На последнем митапе Flutter Voronezh разработчик Роман из Эстонии поделился опытом работы с Flutter и продемонстрировал, как решать типичные ошибки, которые возникают при разработке мобильных приложений.
Вот что было рассмотрено на воркшопе:
1️⃣ Паддинг и его влияние на отображение — Роман показал, как правильно настроить паддинг, чтобы карточки выглядели корректно и не нарушали интерфейс.
2️⃣ Эффект нажатия — Объяснил, как избежать проблем с отображением эффекта нажатия, переместив инквел внутрь карточки.
3️⃣ Проблемы со скроллингом — Были даны рекомендации по улучшению производительности при скроллинге списков, особенно на iOS.
4️⃣ Оптимизация шейн фрап — Как уменьшить лаги при работе с большими списками, а также альтернативные способы оптимизации.
5️⃣ Кастомный скролл-вью и профайлинг — Роман продемонстрировал, как использовать кастомные решения для лучшей производительности и рассказал, как профилировать приложение на реальном устройстве.
6️⃣ Работа с большими ассетами — Как решить проблемы с загрузкой и кэшированием изображений, чтобы избежать перегрузки памяти.
7️⃣ Проблемы с текстом и темами — Рекомендации по правильному отображению текста в разных темах и контрастности.
8️⃣ Использование анимированных иконок — Рассмотрены инструменты для создания анимаций, такие как Ravi, и их внедрение в приложение для улучшения UX.
9️⃣ Кэширование и его ограничения — Как управлять кэшированием изображений и данных, чтобы избежать проблем с производительностью.
🔍 Дополнительно: Роман поделился своими статьями и опытом работы с кэшированием изображений, оптимизацией интерфейсов и создания анимаций, которые можно применить в реальных проектах.
🗣 Присоединяйтесь к обсуждению: Заходите в видео и задавайте вопросы, Роман будет рад помочь новичкам и опытным разработчикам!
🎥 Смотрите запись митапа: https://www.youtube.com/live/J92zxoULBwc
#Flutter #FlutterPulse #Разработка #Программирование #Ошибки #Митап #Оптимизация #Продуктивность #TechTalk #Voronezh #UX #UI #Анимации #Кэширование #Советы #FlutterDev #CodingLife
🔧 На последнем митапе Flutter Voronezh разработчик Роман из Эстонии поделился опытом работы с Flutter и продемонстрировал, как решать типичные ошибки, которые возникают при разработке мобильных приложений.
Вот что было рассмотрено на воркшопе:
1️⃣ Паддинг и его влияние на отображение — Роман показал, как правильно настроить паддинг, чтобы карточки выглядели корректно и не нарушали интерфейс.
2️⃣ Эффект нажатия — Объяснил, как избежать проблем с отображением эффекта нажатия, переместив инквел внутрь карточки.
3️⃣ Проблемы со скроллингом — Были даны рекомендации по улучшению производительности при скроллинге списков, особенно на iOS.
4️⃣ Оптимизация шейн фрап — Как уменьшить лаги при работе с большими списками, а также альтернативные способы оптимизации.
5️⃣ Кастомный скролл-вью и профайлинг — Роман продемонстрировал, как использовать кастомные решения для лучшей производительности и рассказал, как профилировать приложение на реальном устройстве.
6️⃣ Работа с большими ассетами — Как решить проблемы с загрузкой и кэшированием изображений, чтобы избежать перегрузки памяти.
7️⃣ Проблемы с текстом и темами — Рекомендации по правильному отображению текста в разных темах и контрастности.
8️⃣ Использование анимированных иконок — Рассмотрены инструменты для создания анимаций, такие как Ravi, и их внедрение в приложение для улучшения UX.
9️⃣ Кэширование и его ограничения — Как управлять кэшированием изображений и данных, чтобы избежать проблем с производительностью.
🔍 Дополнительно: Роман поделился своими статьями и опытом работы с кэшированием изображений, оптимизацией интерфейсов и создания анимаций, которые можно применить в реальных проектах.
🗣 Присоединяйтесь к обсуждению: Заходите в видео и задавайте вопросы, Роман будет рад помочь новичкам и опытным разработчикам!
🎥 Смотрите запись митапа: https://www.youtube.com/live/J92zxoULBwc
#Flutter #FlutterPulse #Разработка #Программирование #Ошибки #Митап #Оптимизация #Продуктивность #TechTalk #Voronezh #UX #UI #Анимации #Кэширование #Советы #FlutterDev #CodingLife
🔥 ТОП-9 самых просматриваемых Flutter-видео недели! 🔥
Неделя выдалась насыщенной: живой код, полезные туториалы, разговоры с гуру Dart и даже 24-часовой марафон 💻
Готовь чай, кофе(или что покрепче?) и открывай YouTube — есть, что посмотреть 👇
1. 🕒📱 Just coding | Observable Flutter #62
Крейг Лабенз снова в деле! Почти два часа лайв-кодинга на Dart от официального канала Flutter.
⏳ 1 час 40 мин | 👀 11,957 просмотров
🔗 https://www.youtube.com/watch?v=wKWsP2TXVvg
2. 📚 Что такое List в Dart? || Урок Flutter
Ты уверен, что знаешь всё про списки? Создание, добавление, удаление и даже цикл по ним — всё за 12 минут!
⏳ 12 мин | 👀 1,007 просмотров
🔗 https://www.youtube.com/watch?v=d-utuAcdBng
3. 📦 Barcode Generator App In Flutter
Настоящий DIY: делаем генератор штрих-кодов на Flutter. Без боли и сложностей.
⏳ 23 мин | 👀 787 просмотров
🔗 https://www.youtube.com/watch?v=-gLxRVeSyvA
4. 💬 Humpday Q&A/AMA с Craig Labenz
Хотел задать Крейгу вопрос о Flutter? Кто-то уже сделал это за тебя — смотри!
⏳ 2 часа 50 мин | 👀 485 просмотров
🔗 https://www.youtube.com/watch?v=HryfB44en0w
5. 🔮 Flutter — будущее разработки в 2025 году
Прогнозы, аргументы и немного философии: почему Flutter всё ещё топ и что дальше.
⏳ 1 час 8 мин | 👀 370 просмотров
🔗 https://www.youtube.com/watch?v=3uCNx_WN8SI
6. 🧪 24 часа живого кодинга
Серьёзно. 24 часа. Живого. Кодинга. Полноценное приложение с бэкендом. Смотреть выборочно, но вдохновиться — обязательно.
⏳ 24 часа | 👀 274 просмотра
🔗 https://www.youtube.com/watch?v=J_fEMlcmsXg
7. 🧠 Introduction to Flutter Test Mock Canvas
Mock Canvas в тестах Flutter — не страшно и даже интересно! Узнай, как он работает.
⏳ — | 👀 234 просмотра
🔗 https://www.youtube.com/watch?v=QbPm-Pe-4lw
8. 🔐 Password Manager на Flutter
Стажёр делает финальный проект: безопасный менеджер паролей. Держим за него кулачки и учимся.
⏳ 2 часа 30 мин | 👀 214 просмотров
🔗 https://www.youtube.com/watch?v=w4kQk5zLlJA
9. 🧱 Flutter REST API PUT Method + Bloc
Чистая архитектура, Bloc, PUT-запросы и больше слов, которые нравятся архитекторам.
⏳ 16 мин | 👀 60 просмотров
🔗 https://www.youtube.com/watch?v=geUYFj2hpTc
Если ты учишься, работаешь или просто фанатеешь от Flutter — это всё тебе 😎
Сохраняй, делись и развивай свой скилл вместе с Flutter-сообществом!
Не забываем лайкать! Это вдохновляет заниматься каналом больше!
#Flutter #Dart #FlutterPulse #FlutterPulseYouTube #PubDev #FlutterDev #FlutterВидео #FlutterОбучение #ObservableFlutter #CraigLabenz
Неделя выдалась насыщенной: живой код, полезные туториалы, разговоры с гуру Dart и даже 24-часовой марафон 💻
Готовь чай, кофе
1. 🕒📱 Just coding | Observable Flutter #62
Крейг Лабенз снова в деле! Почти два часа лайв-кодинга на Dart от официального канала Flutter.
⏳ 1 час 40 мин | 👀 11,957 просмотров
🔗 https://www.youtube.com/watch?v=wKWsP2TXVvg
2. 📚 Что такое List в Dart? || Урок Flutter
Ты уверен, что знаешь всё про списки? Создание, добавление, удаление и даже цикл по ним — всё за 12 минут!
⏳ 12 мин | 👀 1,007 просмотров
🔗 https://www.youtube.com/watch?v=d-utuAcdBng
3. 📦 Barcode Generator App In Flutter
Настоящий DIY: делаем генератор штрих-кодов на Flutter. Без боли и сложностей.
⏳ 23 мин | 👀 787 просмотров
🔗 https://www.youtube.com/watch?v=-gLxRVeSyvA
4. 💬 Humpday Q&A/AMA с Craig Labenz
Хотел задать Крейгу вопрос о Flutter? Кто-то уже сделал это за тебя — смотри!
⏳ 2 часа 50 мин | 👀 485 просмотров
🔗 https://www.youtube.com/watch?v=HryfB44en0w
5. 🔮 Flutter — будущее разработки в 2025 году
Прогнозы, аргументы и немного философии: почему Flutter всё ещё топ и что дальше.
⏳ 1 час 8 мин | 👀 370 просмотров
🔗 https://www.youtube.com/watch?v=3uCNx_WN8SI
6. 🧪 24 часа живого кодинга
Серьёзно. 24 часа. Живого. Кодинга. Полноценное приложение с бэкендом. Смотреть выборочно, но вдохновиться — обязательно.
⏳ 24 часа | 👀 274 просмотра
🔗 https://www.youtube.com/watch?v=J_fEMlcmsXg
7. 🧠 Introduction to Flutter Test Mock Canvas
Mock Canvas в тестах Flutter — не страшно и даже интересно! Узнай, как он работает.
⏳ — | 👀 234 просмотра
🔗 https://www.youtube.com/watch?v=QbPm-Pe-4lw
8. 🔐 Password Manager на Flutter
Стажёр делает финальный проект: безопасный менеджер паролей. Держим за него кулачки и учимся.
⏳ 2 часа 30 мин | 👀 214 просмотров
🔗 https://www.youtube.com/watch?v=w4kQk5zLlJA
9. 🧱 Flutter REST API PUT Method + Bloc
Чистая архитектура, Bloc, PUT-запросы и больше слов, которые нравятся архитекторам.
⏳ 16 мин | 👀 60 просмотров
🔗 https://www.youtube.com/watch?v=geUYFj2hpTc
Если ты учишься, работаешь или просто фанатеешь от Flutter — это всё тебе 😎
Сохраняй, делись и развивай свой скилл вместе с Flutter-сообществом!
Не забываем лайкать! Это вдохновляет заниматься каналом больше!
#Flutter #Dart #FlutterPulse #FlutterPulseYouTube #PubDev #FlutterDev #FlutterВидео #FlutterОбучение #ObservableFlutter #CraigLabenz
🎮🔥 НОВОСТЬ: 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 🚀💻
Работаем с клавиатурными сокращениями
При создании приложений для Flutter Web или Desktop, важно обеспечить удобное управление клавиатурными сокращениями. В этом нам помогут виджеты Shortcuts и Actions! 🚀
Shortcuts - это виджет, который создаёт привязку клавиш к определённым действиям для своих потомков. Всё просто: вы предоставляете карту клавиш и интенций (Intent).
Actions - этот виджет позволяет потомкам вызывать действия, определённые в родителе. Его можно использовать как вместе с Shortcuts, так и отдельно 😉
Давайте рассмотрим пример кода:
В этом примере мы создаём клавиатурное сокращение Ctrl+A для вызова действия SelectAllAction. Просто и удобно! 👍
Оцените нашу новую рубрику и напишите, о чём бы вы хотели узнать в следующий раз 🤔
Все подобные советы ищите по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #FlutterTips #MobileDev #KeyboardShortcuts #FlutterDev #CodingTips
При создании приложений для Flutter Web или Desktop, важно обеспечить удобное управление клавиатурными сокращениями. В этом нам помогут виджеты Shortcuts и Actions! 🚀
Shortcuts - это виджет, который создаёт привязку клавиш к определённым действиям для своих потомков. Всё просто: вы предоставляете карту клавиш и интенций (Intent).
Actions - этот виджет позволяет потомкам вызывать действия, определённые в родителе. Его можно использовать как вместе с Shortcuts, так и отдельно 😉
Давайте рассмотрим пример кода:
// Это просто используется для указания нужного действия
class SelectAllIntent extends Intent {}
@override
Widget build(BuildContext context) {
return Shortcuts(
shortcuts: <LogicalKeySet, Intent>{
LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyA): SelectAllIntent(),
},
child: Actions(
dispatcher: LoggingActionDispatcher(),
actions: <Type, Action<Intent>>{
SelectAllIntent: SelectAllAction(),
},
child: Builder(
builder: (BuildContext context) => TextButton(
onPressed: Actions.handler<SelectAllIntent>(context, SelectAllIntent()),
child: const Text('SELECT ALL'),
),
),
),
);
}
// Action будет содержать логику, которую вы хотите выполнить при срабатывании клавиатурного сокращения
class SelectAllAction extends Action<SelectAllIntent> {
@override
void invoke(covariant SelectAllIntent intent) {
// делайте то, что вам нужно
}
}
В этом примере мы создаём клавиатурное сокращение Ctrl+A для вызова действия SelectAllAction. Просто и удобно! 👍
Оцените нашу новую рубрику и напишите, о чём бы вы хотели узнать в следующий раз 🤔
Все подобные советы ищите по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #FlutterTips #MobileDev #KeyboardShortcuts #FlutterDev #CodingTips
👍3
Полезные конфигурации VSCode для экономии времени
VSCode позволяет запускать код при сохранении или включить автоматическое форматирование... Вот несколько конфигураций, которые сэкономят ваше время!
Отключение отображения типов переменных серым цветом
Оцените новую рубрику и оставьте свои комментарии! 👍💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #VSCode #ProductivityTips #CodingTips #FlutterDev #DartLang
VSCode позволяет запускать код при сохранении или включить автоматическое форматирование... Вот несколько конфигураций, которые сэкономят ваше время!
{
"editor.formatOnSave": true,
"[dart]": {
"editor.formatOnSave": false, // Автоматически форматировать dart файлы (вкл/выкл)
"editor.inlayHints.enabled": "off",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit", // Автоматически исправлять весь код при явном сохранении dart файла
"source.organizeImports": "explicit" // Автоматически исправлять код (добавлять const...) при сохранении dart файла
}
}
}
Отключение отображения типов переменных серым цветом
Оцените новую рубрику и оставьте свои комментарии! 👍💬 Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #VSCode #ProductivityTips #CodingTips #FlutterDev #DartLang
👍1