Flutter Pulse
526 subscribers
351 photos
773 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
🔥 НОВОСТЬ: Что ждёт Dart в ближайшие годы? Станислав Чернышёв делится подробностями

На прошедшей конференции 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
— Даже 🍏 устройства, которые традиционно "закрыты", формально обязаны обеспечить такую возможность
🚨 Причём:
📌 В законе отдельно упоминаются производители, ограничивающие доступ к сторонним магазинам.
📌 Закон напрямую запрещает такие ограничения — включая блокировку 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
Базовый 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 🚀💻
Работаем с клавиатурными сокращениями

При создании приложений для 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
👍2