fa
Feedback
Юрий Петров | ai engineering

Юрий Петров | ai engineering

رفتن به کانال در Telegram

Привет! 👋 Я руководитель отдела разработки. Здесь мы изучаем LLM, автоматизацию с n8n, делаем крутые приложения на Flutter и учим их думать с помощью ИИ. Новости, лайфхаки, интересные кейсы, присоединяйся. #flutter #dart #llm #ai #ollama #n8n #agent #go

نمایش بیشتر
1 848
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-117 روز
-1330 روز
آرشیو پست ها
🚨Обновление курса "Основы Flutter (в разработке)" 🥳 Мы наконец-то закончили последний раздел второй главы - "Скроллируемые виджеты" и он из книги перекочевала на степик 🫠 Последняя неделя выдалась для команды очень продуктивно и о том, что же мы такого наворотили - постепенно будем постепенно делиться с вами в этом канале 😎

В Qwen появилась возможность объединять модели), очень мощная штука стала. При этом, в отличии от GPT полностью бесплатная се
+1
В Qwen появилась возможность объединять модели), очень мощная штука стала. При этом, в отличии от GPT полностью бесплатная сетка.

Repost from Product Friendly
Запомним этот день! Сегодня запускаем Friflex Club🚀 Теперь у нашего пространства есть два измерения: Product Friendly — медиасреда, где идеи оформляются в тексты и слова. Friflex Club — среда людей, где эти идеи рождаются, переживаются и проверяются на практике. Кто в клубе? Эксперты, CTO, CEO, CMO, основатели бизнесов — все, кто верит в силу технологий и ценит знания. Что нас объединяет? Стремление осмысленно работать с технологиями. Ценности, на которых держится доверие: сотрудничество, креативность, честный интерес. Что будет происходить? Будем встречаться, обсуждать тренды, генерить идеи и вместе двигать индустрию вперед. А всеми инсайтами — делиться в нашем канале. Первая встреча уже сегодня — в неформальной атмосфере поговорим о перспективных каналах дистрибуции цифровых сервисов. Среди спикеров — эксперты из Спортмастера, Gulliver Group, Flowwow, Винлаба и Friflex. Обязательно поделимся всем, что узнаем. Следите за новостями — будет🔥

Были найдены новые статьи на Medium про Flutter ⭐️ - Flutter 2025 roadmap update @FlutterObserver_bot

Каждый день в pub dev добавляются много новых пакетов. Когда бот присылает список, проходишься по всем, пытаешся понять. Быва
Каждый день в pub dev добавляются много новых пакетов. Когда бот присылает список, проходишься по всем, пытаешся понять. Бывают и интересные экземпляры. Но бывают и такие пакеты. ))) @FlutterObserver_bot

Ух, зашел в репозиторий по ресурсам Flutter и увидел, что ребята из Mad Brains сделали пулреквесты на оптимизацию и добавления чата Комьюнити Flutter-разработчиков от Mad Brains. Прошу меня простить, что сразу не увидел. В дальнейшем буду периодически заходить смотреть пулреквесты ) В итоге: - в список чатов на русском языке добавлен чат Комьюнити Flutter-разработчиков от Mad Brains; - в список чатов на английском языке добавлен чат Комьюнити Flutter Guys. - в список чатов на английском языке добавлен чат Flutter developers community. Если кто-то еще знает интересные ресурсы по Flutter, пишите мне или сделайте пулреквест. Отслеживать обновления в репозитории можно в боте @FlutterObserver_bot

Обновил ботика FlutterObserver_bot до версии 0.2.1 - Обновление Telegram API до 8.3 - Теперь changelog отображается первым для быстрого перехода - Оптимизация сервиса для отправки сообщений пользователем - Исправление минорных ошибок https://telegra.ph/Flutter-Observer-02-17

Repost from Flutter Friendly
Привет, с вами Роза, Flutter Dev Friflex! Когда только начинаешь разрабатывать на Flutter, многие возможности языка остаются незамеченными. А с опытом начинаешь глубже разбираться в деталях и повышать свою экспертность. С модификаторами классов у меня было так же: изначально в моем арсенале был лишь abstract... и все, наверное. А со временем я узнала и про sealed, и про base. Делюсь этим и с вами! Зачем нужны модификаторы? Модификаторы в Dart помогают управлять наследованием и доступностью классов. Они задают ограничения, предотвращают нежелательное расширение или, наоборот, определяют четкие правила для будущих реализаций. Основные модификаторы: 🔸abstract Если вам не нужна реализация всех методов, а вы хотите создать класс-шаблон, используйте abstract. 🔴Запрещает создавать экземпляры этого класса напрямую (new AbstractClass() не сработает). 🔴Часто используется как базовый класс, определяющий интерфейс и частичное поведение для наследников. 🔸base Разрешает наследование (extends) и реализацию (implements), но только в пределах текущего пакета. 🔴За пределами пакета base-класс нельзя реализовать (implements). 🔴Полезно, если нужно предотвратить реализацию, но оставить возможность наследования. 🔸interface Принуждает использовать класс только через implements, запрещая наследование (extends). Полезно, если хотите создать чистый контракт, без возможности переиспользовать реализацию. 🔸final Запрещает любое наследование (extends) или реализацию (implements) класса за пределами текущей библиотеки.  Гарантирует, что класс — конечная точка в иерархии. Его нельзя расширить или изменить поведение через подклассы вне вашего контроля. 🔸mixin Позволяет переиспользовать код без наследования. 🔴Класс с mixin можно добавлять к другим классам через with. 🔴Миксины не могут иметь конструкторов и не могут быть инстанцированы напрямую. 🔸sealed Позволяет создавать закрытый набор подтипов. 🔴Все подклассы должны быть в той же библиотеке, что и sealed-класс. 🔴Полезно для switch, так как компилятор проверяет, что все случаи учтены (exhaustiveness). 🔴Отлично подходит для описания состояний (Loading, Success, Error), событий и других строго определенных иерархий. Как использовать модификаторы? Добавьте перед классом нужное ключевое слово. Например:
sealed class GameState {
  // ...
}
🔖Важно! Модификаторы можно комбинировать (abstract base class), создавая тонкие правила для классов. Подробнее — в таблице в комментариях. 📎 Официальная документация по модификаторам А какие модификаторы используете чаще всего? Делитесь в комментариях! 👀

Repost from Ringov
Где в Яндексе есть Flutter? Недавно прошедший внутренний митап ознаменовал новую веху — в Яндексе появилось Flutter-комьюнити! На митапе отлично повеселились, а заодно провели инвентаризацию команд, использующих Flutter — записывайте 😯 1. Про — iOS | Android 2. Драйв — iOS | Android 3. Практикум — iOS | Android 4. Маршрутизация — iOS | Android 5. Афиша — iOS | Android 6. Авто.ру Бизнес — iOS | Android 7. Заправки — iOS | Android 8. Смена — iOS | Android 9. Маркет ПВЗ — iOS | Android Ещё есть несколько мест, где Flutter встроен в Яндекс Go. Ну и на десерт. В десктопном Яндекс Браузере многие части UI — на Flutter 😎 Ну чисто чтобы у вас не было сомнений по поводу количества продуктовых Flutter-команд в Яндексе ☕️

Молодцы ребята, что верят и драйвят Flutter!

В Medium были найдены новые статьи о Dart ⭐️ - Dart in Google Summer of Code 2025 Информация от FlutterObserver_bot

У бота Flutter Observer количество активных пользователей превысило планку в 300 человек. Неплохо, неплохо. ☺️ Напоминаю, что
У бота Flutter Observer количество активных пользователей превысило планку в 300 человек. Неплохо, неплохо. ☺️ Напоминаю, что есть тема в группе, где можно предлагать добавить функции, которые, вы считаете, были бы полезны сообществу. Также это сделать можно написать прямо в боте командой /send.

Repost from Flutter Friendly
Привет, это Катя, Flutter Dev Friflex. Сегодня поговорим о фреймворке gRPC и его реализации. Что это? gRPC — это фреймворк дл
Привет, это Катя, Flutter Dev Friflex. Сегодня поговорим о фреймворке gRPC и его реализации. Что это? gRPC — это фреймворк для удаленного вызова процедур (RPC), разработанный Google. Он использует HTTP/2 для транспорта и Protocol Buffers (protobuf) в качестве языка описания интерфейсов и формата сериализации данных. Настройка и использование gRPC 1️⃣ Добавляем в pubspec.yaml:
dependencies:
  grpc: ^4.1.0
  protobuf: ^3.1.0

dev_dependencies:
  protoc_plugin: ^21.1.2
2️⃣ Создаем файл .proto Сделаем на примере создания чата. Определяем сервис в файле .proto. Например, lib/protos/chat.proto:
syntax = "proto3";

package chat;

service ChatService {
  rpc SendMessage (Message) returns (MessageResponse);
  rpc ReceiveMessages (Empty) returns (stream Message);
}

message Message {
  string text = 1;
  string sender = 2;
  int64 timestamp = 3;
}

message MessageResponse {
  bool success = 1;
  string error = 2;
}
3️⃣ Генерируем код Запускаем команду для генерации Dart-кода:
bash
protoc --dart_out=grpc:lib/generated -Ilib/protos lib/protos/chat.proto
4️⃣ Создаем клиента
class GrpcClient {
  late ChatServiceClient client;

  /// Инициализация канала соединения
  GrpcClient() {
    final channel = ClientChannel(
      'http://localhost',
      port: 50051,
      options: const ChannelOptions(
        credentials: ChannelCredentials.insecure(),
      ),
    );
    client = ChatServiceClient(channel);
  }

  /// Отправка сообщения
  Future<MessageResponse> sendMessage(String text, String sender) async {
    final message = Message()
      ..text = text
      ..sender = sender
      ..timestamp = DateTime.now().millisecondsSinceEpoch;
    
    try {
      return await client.sendMessage(message);
    } catch (e) {
      print('Error sending message: $e');
      return MessageResponse()..success = false..error = e.toString();
    }
  }
  
  /// Получение сообщений
  Stream<Message> receiveMessages() {
    return client.receiveMessages(Empty());
  }
}
5️⃣ Используем клиента в приложении На что следует обратить внимание: 🔸gRPC клиент: ➡️инициализируется один раз при создании состояния ➡️обеспечивает двустороннюю коммуникацию ➡️управляет подпиской на поток сообщений 🔸Потоковая передача: ➡️receiveMessages() возвращает Stream<Message> ➡️listen() подписывается на новые сообщения 🔸Управление ресурсами: ➡️gRPC соединение должно закрываться ➡️Отмена подписок происходит автоматически при dispose() Продолжение — в комментариях📌

❤️ Спасибо большое всем кто был на трансляции 🤟 Отличный онлайн собрали для субботнего утра! И отдельное спасибо всем кто за
❤️ Спасибо большое всем кто был на трансляции 🤟 Отличный онлайн собрали для субботнего утра! И отдельное спасибо всем кто задавал вопросы, вышло интересное обсуждение Для вашего удобства сразу добавил подробные таймкоды, ведь мы обсуждали не только книгу но и кучу других вопрсов 📺 Для тех кто не мог смотреть в онлайне запись трансляции достпуна на канале

Начинаем стрим авторского коллектива "Основы Flutter". Подключайтесь: https://youtube.com/live/oJkjpluOhFE?feature=share

Всем привет! У меня для вас хорошие новости по книге "Основы Flutter" 👀 Глава по локализации утверждена, а значит, в курсе "
Всем привет! У меня для вас хорошие новости по книге "Основы Flutter" 👀 Глава по локализации утверждена, а значит, в курсе "Основы Flutter" на степике обновление ^_^ Напоминаю, что уже завтра в 11 часов по Мск состоится стрим с авторским коллективом, где немного приоткроем завесу тайны над написанием книги, почему выбран такой сквозной проект, как началось сотрудничество с Surf и Mad Brains по разработке лабораторного практикума к книге и многое другое 🪨

Плагин для VSCode, красивое число))
Плагин для VSCode, красивое число))

Какая навигация в Compose лучшая? Может ли AI писать UI за вас? Как проходит переезд на Compose в большой компании? С 24 по 2
Какая навигация в Compose лучшая? Может ли AI писать UI за вас? Как проходит переезд на Compose в большой компании? С 24 по 28 марта на Podlodka Android Crew разберем всё, что накопилось за 3 года продакшн-использования Compose! 🔥 Дебаты по навигации в Compose — два эксперта - Аркадий Иванов (X (ex-Twitter) и Игорь Кареньков (HH.ru), два подхода, одна истина. Кто окажется убедительнее, решат зрители! 🤖 Как AI пишет UI за вас — Павел Королев и Алексей Утепов (QazCode) на практике покажут генерацию верстки реального макета в Jetpack Compose. 🏗 Опыт Avito: переезд на Compose — изменения затрагивают дизайн-систему, архитектуру, перфоманс, процессы. Ребята из Авито делятся опытом и советами. 🔍 Публичное собеседование по Compose — реальный кандидат, реальный код, разбор ошибок и живой фидбек. Главное — всё, что обсудим, можно сразу применять на практике! Билеты тут 👉 https://podlodka.io/droidcrew А промокод сообщества android_crew_13_IKzHWP даёт скидку еще в 500 руб🥳

Repost from Flutter Friendly
Привет, с вами Роза, Flutter Dev Friflex👋 И сегодня мы немного погрузимся в магию FutureOr! Представьте, вы создаете некий а
Привет, с вами Роза, Flutter Dev Friflex👋 И сегодня мы немного погрузимся в магию FutureOr! Представьте, вы создаете некий абстрактный класс с различными методами, но точно не знаете, будет ли реализация асинхронной или синхронной. Конечно, вы можете создать два метода или изощряться с разными подходами, но действительно ли это хорошее решение? Лучше, если вы объявите метод, как FutureOr. FutureOr<T> — это такой хитрый тип в Dart, который говорит: «Эй, результат моего метода может быть либо обычным значением типа T, либо Future<T>, если вдруг придется подождать». Звучит пока не очень понятно? Давайте разберемся на примерах. Предположим, мы разрабатываем сервис, который получает данные. Одна реализация будет синхронной, другая — асинхронной:
import 'dart:async';

abstract class SomeService {
  FutureOr<String> fetch();
}

class FirstImplService extends SomeService {
  @override
  Future<String> fetch() async {
    await Future.delayed(Duration(seconds: 2));
    return 'Данные из Future';
  }
}

class SecondImplService extends SomeService {
  @override
  String fetch() {
    return 'Простые данные';
  }
}
Aбстрактный класс SomeService объявляет метод fetch() с типом возвращаемого значения FutureOr<String>. Это значит, что fetch() может вернуть либо String, либо Future<String>. ⚙️Когда же использовать FutureOr? FutureOr — ваш спаситель, когда вам нужно абстрагироваться от того, является ли результат операции асинхронным или синхронным. 🔧Как обрабатывать FutureOr? Самый простой способ — использовать проверку типа с помощью is Future. Да, такой вариант решения может показаться не самым элегантным. Ведь чрезмерное использование is Future может запутать логику и сделать код менее читаемым. Но в некоторых случаях, особенно при работе с абстракциями, это вполне рабочий и понятный подход. У меня с работой так же. Иногда мне нужен await, чтобы подумать, а иногда все складывается супер. А у вас?

🎉 Потрясающие новости! Вышла новая версия Flutter! ✅ Flutter: 3.29.2 ✅ Dart: 3.7.2 ✅ Release date: 2025-03-13 ✅ hash: c23637390482d4cf9598c3ce3f2be31aa7332daf Новости от @FlutterObserver_bot 🔗 Breaking changes 🔗 Changelog 🔗 Commit 🔗 Tag Короткие изменения согласно changelog: 🔄 Импеллер: текст, повернутый на 180 градусов, отображается неправильно. Исправлено масштабирование с вместо ! 🔧 Исправлены сбои на устройствах Android старше API 29 при использовании импеллера OpenGLES. 🚫 Исправлена ошибка отсутствия глифа на устройствах Android и iOS. 📱 На устройствах iOS увеличено количество одновременных задач декодирования фонового изображения, чтобы устранить ошибки «Не удалось загрузить изображение из-за потери доступа к графическому процессору». 🚀 Повышение производительности рендеринга CanvasKit для web. iOS исправляет сбой при выделении поверхности для . 🧰 Всегда используйте аппаратные буферы Android для просмотра платформы, если они поддерживаются. 🆕 Исправлена двойная загрузка canvaskit.wasm. 🔧 Добавлен пустой ввод-вывод для Android apps после миграции встраиваемого модуля версии v2. 🛠️ Для всех платформ исправлен сбой при одновременной анимации и взаимодействии с прокручиваемым объектом. 📱 На Android используйте Open GL вместо Vulkan MediaTek Soc.