Юрий Петров | ai engineering
رفتن به کانال در Telegram
Привет! 👋 Я руководитель отдела разработки. Здесь мы изучаем LLM, автоматизацию с n8n, делаем крутые приложения на Flutter и учим их думать с помощью ИИ. Новости, лайфхаки, интересные кейсы, присоединяйся. #flutter #dart #llm #ai #ollama #n8n #agent #go
نمایش بیشتر1 848
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-117 روز
-1330 روز
آرشیو پست ها
Всем доброе утро, первый перехват появления нового релиза Flutter. С чем @FlutterObserver_bot и поздравляю 🥳
Repost from Flutter Friendly
ARB-формат во всей красе
Привет, это Роза, Flutter Dev Friflex. В последнее время я много работаю с локализацией и заметила интересную вещь: ARB-файл часто недооценен. Сейчас расскажу, что это и как работает.
Что это
ARB (Application Resource Bundle) — это, по сути, файл JSON, улучшенный для локализации, с расширением
.arb. Проще говоря, там хранятся переводы текста, которые вы видите в приложении. Помимо ключей и строк, ARB поддерживает:
🔴описания контекста
🔴примеры использования
🔴типы данных
🔴форматирование
Например:
{
"@@locale": "ru",
"topicTitle": "Arb-формат во всей красе",
"@topicTitle": {
"description": "Заголовок для статьи про Arb-формат"
}
}
Здесь ключ topicTitle хранит строку, а под @topicTitle — метаданные. При помощи метадаты вы можете указывать для ключей локализации:
🔸context: пояснения для переводчиков и разработчиков
🔸type: указание типа строки или ее назначения
🔸comment: подсказки к строкам
Например:
{
"welcome": "Добро пожаловать, {name}!",
"@welcome": {
"description": "Сообщение для приветствия",
"context": "Для нового пользователя",
"type": "Information",
"comment": "Имя {name} нельзя переводить."
}
}
Где используется
Во Flutter ARB-файлы тесно интегрированы с библиотекой intl, которая отвечает за локализацию.
Как это работает
1️⃣ Создаете отдельные ARB-файлы для всех языков, которые хотите поддерживать.
2️⃣ С помощью команды flutter gen-l10n генерируете Dart-код, который автоматически подтягивает правильные переводы для языка пользователя.
3️⃣ В коде просто обращаетесь к строкам по их ключам, а перевод подставляется автоматически.
❗️В реальных приложениях часто требуется использовать динамические значения внутри строк.
Например, вместо «Привет, Роза!» в строке может быть «Привет, {name}!»
Для этого в ARB-файлах применяются плейсхолдеры. О них я расскажу в следующем посте.Repost from Стас Ильин | Flutter
📦 Вышел BLoC v9.0.0
✅ Поддержка WebAssembly (wasm)
✅ Обновление примеров и туториалов по использованию
✅ Минимальный Dart v2.14
✅ Новый внутренний интерфейс EmittableStateStreamableSource заменил Emittable у BlocBase
По-сути это "посредник", который помогает тестировать блоки и внедрять кастомный source, не привязываясь к конкретной реализации BlocBase
⚠️ Удален ранее помеченный как Deprecated класс BlocOverrides. Вместо него тепреь нужно использовать Bloc.observer и Bloc.transformer
⌨️ Гайд по миграции
Всем привет друзья. Многие спрашивают, как организовать папки внутри фичи.
Вот, мы тут запилили плагин Flutter Friflex для VSCode.
Плагин прошел проверку, и опубликован.
Исходный код плагина здесь.
1.Плагин умеет создавать папки для отдельной фичи
2. Создавать StatefulWidget и StatelessWidget по названию файла
3. Создавать класс согласно названия файла
4. Есть настройки
Также, если вы хотите поменять структуру для генерации, то можете в папке .friflex_config изменить шаблон.
Ждем обратную связь, и если есть идеи для добавления функций, которые будут полезны разработчикам, пишите.
P.S. Сильно не пинайте, мой первый плагин))
Всем привет, сейчас пошла мода писать миниапы и боты для телеграма. Ну и я решил тоже написать). Но он мне был реально нужен.
Так вот, представляю Flutter Observer. Бот, который следит за репозиториями Flutter и Dart и оповещает пользователей о появлении новых релизов и изменений в ветке STABLE.
Сам бот написан на чистом Dart, а не на всяких там котлинах и go)))
База данных SQLite + Drift.
В боте есть возможность настроить наблюдателя так, как вам необходимо.
В дальнейшем есть планы добавить дашборды активности в репозиториях, отслеживания в pub dev и так далее.
@FlutterObserver_bot
Repost from Flutter Friendly
+4
«Он сказал мне, что жизнь, как в мечте, получу я без всяких преград»🐼
Но только если ваше приложение пройдет аудит. Виды, этапы и как подготовиться — на карточках.
📎Полезные ссылки:
Статья на Хабре
OWASP
Пример чек-листа на Стингрей
Repost from Flutter Friendly
А вдруг вы прямо сейчас пишете сервис на Dart, задача которого — отправить миллион сообщений ровно в 12 дня? Юрий Петров, Tech Lead Friflex написал статью, как это можно сделать:
🔸Установить и запустить контейнер с RabbitMQ
🔸Настроить RabbitMQ
🔸Создать Producer (отправителя) на Flutter
🔸Создать Consumer (потребителя) на Flutter
Сохраняйте, чтобы не потерять🔖
Repost from MADTeacher | Станислав Чернышев
Книга "Основы Flutter" уже написана наполовину 😎, а значит - цена курса на степике увеличивается на 500 рублей😅
Если вы хотели приобрести курс, но на это все никак не было "времени", по 21 января его можно будет купить по старой цене, воспользовавшись скидкой в 25% 🫣
Repost from MADTeacher | Станислав Чернышев
У меня для вас хорошие новости по книге "Основы Flutter" 👀
Перед новогодними праздниками мне на редактуру прислали материал Юра Петров (глава про навигацию в Flutter) и Стас Ильин (первый раздел главы про локальное хранение данных).
Глава по навигации отредактирована и утверждена, а значит, на курсе "Основы Flutter" на степике большое обновление ^_^ Приступаю к редактированию материалов Стаса😎
p.s. Так же, на ютубе выложил новое видео из курса по Dart, посвященное типу данных Map🫠
#book@madteacher_channel
Repost from Friflex Dev
+5
📎Пост заряженный на повышение!
Для всех, кто когда-нибудь планирует возглавить команду разработчиков, собрали плюсы и минусы этой должности вместе с Дмитрием, Flutter Team Lead Friflex.
Не отговариваем, а обращаем внимание на навыки, которые стоит подтянуть. Будет полезно и тем, кто только стал тимлидом и не знает, с чего начать. Не переживайте, все получится!💜
Repost from MADTeacher | Станислав Чернышев
Книга "Основы Flutter" перевалила за 600 страниц (в вордовском документе)😎
Перед новогодними праздниками на редактуру прислали материал Юра Петров (глава про навигацию в Flutter) и Стас Ильин (первый раздел главы про локальное хранение данных).
Сейчас редактирую главу про навигацию (сделано ~ 30%), потом настанет очередь Стаса, а там гляди и Павел подоспеет со своими материалами😊
Этот год обещает быть жарким для авторского коллектива и книги 🔥🔥🔥
p.s. по 9-е января на электронную версию книги, главы и разделы которой выкладываем на степик после редактуры и утверждения, действует скидка в 1️⃣5️⃣ 🔤 Основы Flutter
⚡️⚡️⚡️ Всех с наступающим Новым годом, друзья! 👋
Желаю, чтобы у всех получилось реализовать задуманное в Новом году!
В связи с этим прекрасным событием, по 9-е января можно приобрести следующие курсы со скидкой:
🔥 3️⃣0️⃣ 🔤 Dart 3 в действии
🔥 3️⃣0️⃣ 🔤 Go (Goland) + Gin = быстрый бэкенд для заметок.
🔥 3️⃣0️⃣ 🔤 Dart+ Flutter — быстрый gRPC бэкенд и клиент для чата на Protobuf.
🔥 3️⃣0️⃣ 🔤 Создаем RESTful бэкенд на Dart и клиент на Flutter.
🔥 1️⃣5️⃣ 🔤 Основы Flutter
#flutter #dart.
Repost from Стас Ильин | Flutter
💬 Что не так с конкурсом?
🤯 За последние 24 часа на наши каналы подписалось больше 20к человек
😡 Как оказалось, у конкурсов на Telegram-подписки есть одна уязвимость - информацию о таких конкурсах оперативно сливают в чаты/каналы для любителей нажиться бесплатными ништяками
Мы с ребятами заметили этот аномальный рост несколько часов назад и решили, в последний момент, не принимать резких мер по очистке, чтобы не потерять настоящих подписчиков
👎 Что в итоге? В конкурсе победили люди не имеющие отношения к Flutter, а не наши подписчики, для которых это все затевалось
😐 Такой подляны от Telegram мы не ожидали. И нам очень жаль что так вышло
В следующий раз конкурс будет не на подписики!
Repost from Дневник Flutter-разработчика

برندگان انتخاب شدند!
7 برنده قرعهکشی
تاریخ پایان
Repost from MADTeacher | Станислав Чернышев
Не сказать, что этот год был насыщенным в плане внедрения новых фич в Dart, но это не значит, что команда разработчиков расслабила свои батоны и ничего не делает😎 Поэтому решил подвести некоторую черту под тем функционалом этого языка программирования, который находится на стадии внедрения в Dart SDK и чья спецификация была закончена, т.е. фича готова к реализации🤓
Активно пилятся, но полноценный релиз стоит ждать скорей всего не раньше 2026, т.к. фичи зависят друг от друга 🫡:
👉 Макросы
👉Аугментация
👉 Расширенный механизм part of
Увидим в течении следующего года 👀:
👉 Wildcard variables (Dart 3.7) - разруливает множественное использование символа нижнего подчеркивания (конфликт имен переменных), т.е. предложение позволяет использовать более одного подстановочного знака без конфликтов имен в callback-функциях и при объявлении переменных
👉 enum-shorthands (Dart 3.8/x ?) - за счет выводимого типа в левой части выражения или текущего скоупа, позволяет не использовать имя перечисления при обращении к его свойствам, а также имя класса при обращении к константным и фабричным (именованным и нет) конструкторам и статическим полям и методам
революцию в изменение в формат импортирования библиотек и пакетов:
Padding(
padding: const .all(8.0), // const EdgeInsets.all(8.0) // constructor
child: ...
)
int x = .parse(input); // Static method.
const String option = .fromEnvironment("my_option"); // Constructor
👉 Null-aware elements (Dart 3.8/9/x ?) - предлагает более простой формат проверки на null, что позволит заменить
Stack(
fit: StackFit.expand,
children: [
const AbsorbPointer(),
if (widget.child != null) widget.child!,
],
)
на
Stack(
fit: StackFit.expand,
children: [
const AbsorbPointer(),
?widget.child,
],
)
Спецификация завершена и фича готова к началу внедрения в Dart SDK ‼️:
Здесь можно выделить одну фичу - Unquoted imports. Она вносит // Before:
import 'dart:isolate';
import 'package:flutter_test/flutter_test.dart';
import 'package:path/path.dart';
import 'package:flutter/material.dart';
import 'package:analyzer/dart/ast/visitor/visitor.dart';
import 'package:widget.tla.server/server.dart';
import 'package:widget.tla.proto/client/component.dart';
// After:
import dart/isolate;
import flutter_test;
import path;
import flutter/material;
import analyzer/dart/ast/visitor/visitor;
import widget.tla.server;
import widget.tla.proto/client/component;Repost from Flutter Friendly
+5
🎁 Вишлисты в студию!
Чтобы близкие знали, что подарить вам, собрали несколько вариантов вишлистов: тут и для души, и для работы. Осталось только поделиться.
Repost from Aurora Developers
#Flutter 3.27 для ОС Аврора
Обновление от сообщества развития Flutter для ОС Аврора!
Flutter SDK с поддержкой ОС Аврора получил обновление:
👉 Добавлены новые функции и фиксы из версии 3.27.
👉 Добавлены новые примеры приложений и интеграционные тесты.
👉 Добавлены новые плагины, расширен существующий список.
👉 Документация обновлена и выделена в отдельный проект. В документации добавлена возможность переключаться между каналами Flutter.
👉 Реализованы события экранной клавиатуры.
👉 Фиксы багов и оптимизация работы Flutter.
Поддержка Flutter на ОС Аврора - это совместная работа энтузиастов, специалистов по Flutter из ведущих компаний РФ. Можно поучаствовать кодом и экспертизой - #вместе сделаем инструмент лучше.
Текущая версия 3.27.1 и вы можете получить ее уже сейчас. Все необходимое вы можете найти по ссылке: https://gitlab.com/omprussia/flutter.
⚡️⚡️⚡️ Всех с наступающим Новым годом, друзья! 👋
Желаю, чтобы у всех получилось реализовать задуманное в Новом году!
В связи с этим прекрасным событием, по 9-е января можно приобрести следующие курсы со скидкой:
🔥 3️⃣0️⃣ 🔤 Dart 3 в действии
🔥 3️⃣0️⃣ 🔤 Go (Goland) + Gin = быстрый бэкенд для заметок.
🔥 3️⃣0️⃣ 🔤 Dart+ Flutter — быстрый gRPC бэкенд и клиент для чата на Protobuf.
🔥 3️⃣0️⃣ 🔤 Создаем RESTful бэкенд на Dart и клиент на Flutter.
🔥 1️⃣5️⃣ 🔤 Основы Flutter
#flutter #dart.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
