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

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

Открыть в Telegram

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

Больше
1 774
Подписчики
-224 часа
-127 дней
-6030 день
Архив постов
Когда делал функцию для наблюдения за Pub.dev, обнаружил, что почти каждый час добавляется новый пакет, а бывает и два в Pub.dev. Это же очень круто, представьте, сколько уже там пакетов. )😱

Repost from Flutter Friendly
Привет! Это Роза, Flutter Dev Friflex👋 Почти в каждом Flutter-приложении есть скроллящиеся списки. Если использовать их непр
Привет! Это Роза, Flutter Dev Friflex👋 Почти в каждом Flutter-приложении есть скроллящиеся списки. Если использовать их неправильно, могут возникнуть проблемы с производительностью. Сегодня расскажу, как сделать скролл плавным и эффективным. Начнем! 📌 Заменяй вложенные ListView и Column на CustomScrollView Если у тебя сложная вложенная структура, CustomScrollView поможет избежать избыточных перестроений и повысит эффективность. 📌 Выбирай ListView.builder для длинных списков В отличие от ListView, который создает все элементы сразу, ListView.builder рендерит только видимые элементы, что экономит память и ресурсы. 📌 Избегай SingleChildScrollView для длинных списков Этот виджет загружает весь контент сразу, что приводит к утечке памяти. Он подходит только для небольших списков. 📌 Оптимизируй ListView с itemExtent или SliverFixedExtentList Фиксированная высота элементов снижает нагрузку на систему прокрутки и делает ее более плавной. 📌 Избегай shrinkWrap в длинных списках Он пересчитывает размеры всех элементов, что может замедлить рендеринг. Подробнее — в этом посте. 📌 Применяй NestedScrollView для SliverAppBar и TabBarView Это позволит заголовку сворачиваться плавно и без рывков. 📌 Выбирай ReorderableListView вместо ListView для перетаскивания элементов Он уже оптимизирован под такие сценарии и не требует сложной ручной обработки состояний. 📌 Добавляй AutomaticKeepAliveClientMixin для сохранения состояния элементов Если в списке есть сложные элементы добавляй AutomaticKeepAliveClientMixin, чтобы Flutter не пересоздавал виджеты при прокрутке. 📌 Используй к ScrollablePositionedList для быстрой прокрутки к нужному элементу Если нужно быстро прокручивать к определенному элементу, ScrollablePositionedList эффективнее, чем стандартный ListView. 📌 Пробуй ListView.separated вместо дополнительных Padding и Divider Этот вариант более производительный, так как Flutter не создает ненужные виджеты для каждого элемента. 📌 Реализуй пагинацию для длинных списков Если в твоем приложении большой список данных, загружай их по частям. Это снижает нагрузку на память и повышает производительность. ❗️Все эти советы зависят от контекста. Важно тестировать каждый случай. А какие еще лайфхаки по прокрутке ты используешь? Пиши в комментариях!

⚡️⚡️⚡️ Всем привет, новая версия бота опубликована! 🎉 По просьбам подписчиков и пользователей бота. 1. Добавлен наблюдатель
+6
⚡️⚡️⚡️ Всем привет, новая версия бота опубликована! 🎉 По просьбам подписчиков и пользователей бота. 1. Добавлен наблюдатель за pub.dev. Который отслеживает: - Новые пакеты появились за последние 24 часа. - Новые пакеты, которые были добавлены во Flutter Favorites за последние 24 часа. - Самые популярные пакеты за последние 24 часа. - Самые загружаемые пакеты за последние 24 часа. 2. Изменения в наблюдателе за Flutter: - Создание ссылки на RELEASE NOTES релиза. - Создание ссылки на BREAKING CHANGES релиза. - Создание ссылки на CHANGELOGE релиза. 3. Изменения в наблюдателе за DART: - Создание ссылки на CHANGELOGE релиза. 4. Новые изменения в боте: - Возможность написать автору, команда - /send. - Удобное и более понятное форматирование сводки. - Удобная и более интуитивно понятная настройка наблюдателя. - Добавление кнопки «Назад», там где это удобно. - Проверка в разделе «Статус» версии бота, отображения списка изменений и политик конфиденциальности. 😎 Уже более 100 активных пользователей))

Нашел интересную штуку. ) Open source аналог TeamViewer, но может использоваться как self-host система. А самое интересное, ч
Нашел интересную штуку. ) Open source аналог TeamViewer, но может использоваться как self-host система. А самое интересное, что клиент написан на Flutter и работает на всех платформах. Если кому интересно, как всё устроено и работает, посмотреть можно здесь.

🎉 Потрясающие новости! Вышла новая версия Flutter! ✅ Flutter: 3.27.4 ✅ Dart: 3.6.2 ✅ Release date: 2025-02-05 ✅ hash: d8a9f9a52e5af486f80d932e838ee93861ffd863 🔗 Links: ✅ URL commit: https://github.com/flutter/flutter/commit/d8a9f9a52e5af486f80d932e838ee93861ffd863 ✅ URL tags: https://github.com/flutter/flutter/releases/tag/3.27.4

Repost from Flutter Friendly
Привет, снова с вами Катя, Flutter Dev Friflex. Сегодня расскажу про бета-версию Android 16. Контекст такой: Google запустила
Привет, снова с вами Катя, Flutter Dev Friflex. Сегодня расскажу про бета-версию Android 16. Контекст такой: Google запустила публичное тестирование Android 16, и теперь пользователи могут установить бета-версию через OTA-обновление. Что нового в Android 16 Beta 1 🔴Live Updates. Новый тип уведомлений, созданный для отображения статуса текущих событий. Это аналог Live Activities в iOS. С помощью Live Updates можно в реальном времени отслеживать процесс доставки заказа или следующий поворот, не открывая приложение ресторана или навигатора. 🔴Улучшенная адаптивность приложений. На устройствах с большими экранами система сможет игнорировать ограничения приложений по ориентации и размеру. Это позволит растягивать программы, которые не оптимизированы для работы на планшетах и складных устройствах. 🔴Обновления предиктивного жеста «Назад». Теперь поведение жеста возврата на предыдущий экран поддерживает и трехкнопочную навигацию. Удерживая кнопку «Назад», можно увидеть фрагмент предыдущего экрана. 🔴Совместимость с кодеком APV. Кодек Advanced Professional Video, разработанный Samsung, предназначен для записи и постобработки видео высокого качества. 🔴Десктоп-режим для планшетов. Эта функция сделает работу на планшете максимально схожей с работой на компьютере. Появятся плавающие окна, которые можно будет перетягивать, запускать в режиме одновременной работы и менять в размерах. А в нижней части экрана будет строка с приложениями. 📌Интересный факт: все экраны придется адаптировать под ландшафт, так как установка в портретной ориентации будет невозможна. Почему так? Смотрите здесь. С какими устройствами совместима С Android 16 Beta 1 совместимы смартфоны и планшеты серии Google Pixel: Pixel 6 и 6 Pro, Pixel 6a, Pixel 7 и 7 Pro, Pixel 7a, Pixel Fold, Pixel Tablet, Pixel 8 и 8 Pro, Pixel 8a, Pixel 9, 9 Pro, 9 Pro XL и 9 Pro Fold. Как установить, и когда выйдет Самый простой способ установки — зарегистрироваться в программе бета-тестирования. После установки бета-версии Android 16 вернуться к стабильной версии без сброса данных можно будет только после окончательного релиза Android 16. Говорят, стабильная версия выйдет в апреле-июне. Подробнее читайте здесь. 🔥 — иду тестировать ☕️ — подожду стабильный релиз

Уф, нашел время глянуть видео, как ребята проводят код ревью. В целом со многим соглашусь, ребята молодцы. Рекомендую посмотреть, особенно новичкам. https://www.youtube.com/live/HUKiTWOtbsE?si=zf4zzSp-gb1tt0LJ

Repost from Flutter Friendly
Привет, это Роза, Flutter Dev Friflex👋 Сегодня расскажу о пакете meta, который помогает сделать Dart-код более понятным, под
Привет, это Роза, Flutter Dev Friflex👋 Сегодня расскажу о пакете meta, который помогает сделать Dart-код более понятным, поддерживаемым и безопасным. Что такое пакет meta Пакет meta — это библиотека от команды Dart, которая предоставляет аннотации для добавления метаданных в ваш код. Эти аннотации: 🖱 Документируют код: помогают понять, как правильно использовать функции, классы или переменные 🖱 Подсвечивают ошибки: инструменты анализа, такие как dart analyze, используют аннотации для поиска проблем в коде 🖱 Улучшают читаемость: делают код понятнее для команды и проще в сопровождении Основные аннотации пакета meta 🔴@immutable — указывает, что класс неизменяемый и все его поля должны быть final 🔴@protected — говорит, что метод или поле предназначено только для использования внутри класса или его подклассов 🔴@visibleForTesting — Помечает метод или поле как доступное только для тестов. 🔴@sealed — отмечает, что класс нельзя наследовать за пределами этого файла 🔴@mustCallSuper — обязывает вызывать метод суперкласса при переопределении Расширенные аннотации пакета meta 🔴@experimental — помечает элемент как экспериментальный и подверженный изменениям 🔴@UseResult — указывает, что результат функции или метода должен быть использован 🔴@alwaysThrows — заставляет метод всегда выбрасывать исключение 🔴@doNotStore — значение не должно сохраняться или кэшироваться 🔴@internal — говорит, что элемент предназначен для внутреннего использования и не является частью публичного API Как использовать аннотации

import 'package:meta/meta.dart';

@immutable
class User {
  final String name;
  final int age;

  const User(this.name, this.age);
}
Достаточно добавить аннотацию перед объявлением класса, метода или поля, чтобы она начала работать. Если хотите узнать больше, загляните в документацию пакета. Используйте аннотации из meta, чтобы писать качественный и профессиональный код. А если есть вопросы или предложения, пишите в комментариях. Обсудим 🚀

Вышло обновление плагина Dart для VS Code. Что нового? - Удаление поддержки старых версий SDK. - Предпросмотр цвета в автодополнении кода. - И еще много разных исправлений и дополнений. Почитать можно здесь.

Всем привет, по просьбам подписчиков на выходных обновил ботика-наблюдателя @FlutterObserver_bot - добавил русский язык; - Fl
+3
Всем привет, по просьбам подписчиков на выходных обновил ботика-наблюдателя @FlutterObserver_bot - добавил русский язык; - Flutter — добавил отслеживания ветки beta; - Dart — добавил отслеживания ветки beta и dev; - cводка — добавил подробное описание текущих версий. Чтобы избежать ошибок, не забывайте перезапускать ботика командой /start.

Свершилось, вчера apple открыла движок для сборки который используется в XCode. А это значит, что теперь любой может создать свой XCode). Ждем плагин на VSCode 😊 https://github.com/swiftlang/swift-build

Repost from Friflex Dev
Мы искренне любим Flutter и готовы рекомендовать его всем, кто хочет начать карьеру в IT. Почему? Ответ — на карточках! А ты
+5
Мы искренне любим Flutter и готовы рекомендовать его всем, кто хочет начать карьеру в IT. Почему? Ответ — на карточках! А ты уже в игре? ❤️ — разрабатываю на Flutter 🔥 — пока еще выбираю 👍 — поклонник другого фреймворка

Записал видео на ютуб про отмену макросов и как это отразится на Dart в ближайшее время 😎 Если этот пост наберет 150 💩, скину на этот канал сжатый вариант видео, чтобы можно было его посмотреть в телеге 😇 p.s. Если не в курсе откуда такие требования, см. этот пост и пару следующих под ним 🫠

Current version of Flutter: 3.27.3 Release date: 2025-01-21 Dart SDK version: 3.6.1 Current version of Dart: 3.6.2 Release date: 2025-01-29

🎉 A new version has been released! ✅ Dart: 3.6.2 📜 Additional information: ✅ Release date: 2025-01-29 ✅ Hash: 42f3fc1c648bc66e56c822a95e6139bb116020c3 🔗 Links: ✅ URL commit: https://github.com/dart-lang/sdk/commit/42f3fc1c648bc66e56c822a95e6139bb116020c3 ✅ URL tags: https://github.com/dart-lang/sdk/releases/tag/3.6.2

An_update_on_Dart_macros_&_data_serialization_|_by_Vijay_Menon_|.pdf3.06 MB

Пацаны к успеху шли, не получилось, не пошло ) Макросы отменяются. https://medium.com/dartlang/an-update-on-dart-macros-data-serialization-06d3037d4f12

Repost from Flutter Friendly
Привет, это Катя, Flutter Dev Friflex. Сегодня расскажу, как пользоваться режимом выбора виджетов (Select Widget Mode) из Flutter Inspector. А еще обсудим кнопку сброса выбранного виджета, о которой, как показала практика, не все знают. Flutter Inspector — это инструмент, встроенный в Flutter DevTools, который позволяет разработчикам анализировать и отлаживать пользовательский интерфейс. С его помощью можно: 🔴видеть иерархию виджетов 🔴проверять размеры и отступы 🔴изменять свойства виджетов в реальном времени Что такое Select Widget Mode? Select Widget Mode (SWM) — это режим, который позволяет вам выбирать виджеты в вашем приложении, чтобы увидеть их свойства и структуру. Чтобы активировать этот режим: 1️⃣ Запустите ваше приложение 2️⃣ Откройте DevTools 3️⃣ Выберите вкладку Flutter Inspector 4️⃣ Нажмите на кнопку «Select Widget Mode» (в левом верхнем углу) Как использовать SWM? Достаточно нажать на любой виджет в приложении, чтобы увидеть его свойства, которые можно изменить. Это ускоряет процесс разработки и тестирования в реальном времени.  Пример исправления отступов: Объявляю контейнер с паддингом 20 со всех сторон:
Container(
 Text:  padding: EdgeInsets.all(20.0),
  child: Text('Привет, Flutter Friendly!'),
) 
Мне нужно убрать вертикальный паддинг и посмотреть, как это будет выглядеть. Для этого использую SWM, выбираю контейнер и изменяю отступ в реальном времени на:
EdgeInsets.symmetric(horizontal: 20.0)
Важно: многие не знают о кнопке сброса, которая находится в левом нижнем углу приложения. Она появляется после первого нажатия на любой виджет в SWM. С ее помощью не нужно каждый раз перезапускать приложение, чтобы выбрать другой элемент на экране. Документацию по DevTools можно посмотреть здесь

Repost from Flutter Friendly
К нам едет ревизор, или как пройти проверку на защиту критических данных в приложении на Flutter Анна, Flutter Team Lead Friflex, в этой статье разобрала 7 основных вещей, которые больше всего волнуют аудиторов. 🔸Можно ли запустить приложение в небезопасной среде — на root/jailbreak устройствах и на эмуляторах? 🔸Какие библиотеки внедряются в проект? 🔸В каком виде и где хранятся критические данные? 🔸Какие разрешения запрашивает приложение? 🔸Доступно ли превью страницы с чувствительными данными в фоновом режиме? 🔸Доступен ли запуск приложения, установленного из недоверенного источника? 🔸Актуальна ли версия Flutter? Теперь вы на шаг ближе к прохождению аудита.