Юрий Петров | Flutter – Telegram
Юрий Петров | Flutter
1.9K subscribers
434 photos
41 videos
16 files
663 links
Привет! 👋
Я руководитель отдела разработки.
Здесь мы изучаем LLM, автоматизацию с n8n, делаем крутые приложения на Flutter и учим их думать с помощью ИИ.
Новости, лайфхаки, интересные кейсы, присоединяйся.
#flutter #dart #llm #ai #ollama #n8n
Download Telegram
Вышло обновление плагина Dart для VS Code. Что нового?

- Удаление поддержки старых версий SDK.
- Предпросмотр цвета в автодополнении кода.
- И еще много разных исправлений и дополнений.

Почитать можно здесь.
👍51
Forwarded from Flutter Friendly
Привет, это Роза, 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, чтобы писать качественный и профессиональный код. А если есть вопросы или предложения, пишите в комментариях. Обсудим 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥192
Forwarded from Flutter Friendly
Привет, снова с вами Катя, 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. Говорят, стабильная версия выйдет в апреле-июне.

Подробнее читайте здесь.

🔥 — иду тестировать
☕️ — подожду стабильный релиз
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😱1🥴1
Forwarded from Flutter Observer
🎉 Потрясающие новости! Вышла новая версия 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
4👍2
Нашел интересную штуку. ) Open source аналог TeamViewer, но может использоваться как self-host система. А самое интересное, что клиент написан на Flutter и работает на всех платформах. Если кому интересно, как всё устроено и работает, посмотреть можно здесь.
🔥20
⚡️⚡️⚡️
Всем привет, новая версия бота опубликована! 🎉

@FlutterObserver_bot

По просьбам подписчиков и пользователей бота.

1. Добавлен наблюдатель за pub.dev. Который отслеживает:
- Новые пакеты появились за последние 24 часа.
- Новые пакеты, которые были добавлены во Flutter Favorites за последние 24 часа.
- Самые популярные пакеты за последние 24 часа.
- Самые загружаемые пакеты за последние 24 часа.
- Возможность запросить сводку

2. Изменения в наблюдателе за Flutter:
- Создание ссылки на RELEASE NOTES релиза.
- Создание ссылки на BREAKING CHANGES релиза.
- Создание ссылки на CHANGELOGE релиза.

3. Изменения в наблюдателе за DART:
- Создание ссылки на CHANGELOGE релиза.

4. Новые изменения в боте:
- Возможность написать автору, команда - /send.
- Удобное и более понятное форматирование сводки.
- Удобная и более интуитивно понятная настройка наблюдателя.
- Добавление кнопки «Назад», там где это удобно.
- Проверка в разделе «Статус» версии бота, отображения списка изменений и политик конфиденциальности.

😎 Уже более 100 активных пользователей))
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
Forwarded from Flutter Friendly
Привет! Это Роза, 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 не создает ненужные виджеты для каждого элемента.

📌 Реализуй пагинацию для длинных списков
Если в твоем приложении большой список данных, загружай их по частям. Это снижает нагрузку на память и повышает производительность.

❗️Все эти советы зависят от контекста. Важно тестировать каждый случай.

А какие еще лайфхаки по прокрутке ты используешь? Пиши в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Когда делал функцию для наблюдения за Pub.dev, обнаружил, что почти каждый час добавляется новый пакет, а бывает и два в Pub.dev. Это же очень круто, представьте, сколько уже там пакетов. )😱
Всем привет! Вот и пришла пора увидеть свет книге "Основы Dart: Community edition" 😎

Для тех, кто не в курсе, это переработанная версия второго издания "Основы Dart", которое было до этого в открытом доступе, но с исправленными косяками и добавленным материалом, актуализирующими книгу до Dart 3.7 🫠

На всякий случай уточню:
"Основы Dart: Community edition" так же будет распространяться бесплатно. Но теперь с условием, что скачивается только с моего Boosty, по ссылкам в конце статьи на хабре, либо перекидывается в личных сообщениях. Т.е. размещение ее во всяких тг-каналах (группах), сайтах и т.д., вообще запрещено (раньше разрешалось, если там нет рекламы).


Чтобы узнать все подробности и разжиться электронным экземпляром книги, переходи по следующей ссылке: https://habr.com/ru/articles/865214/

Огромная просьба сделать максимальный репост этой новости 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍1🎉1
Тут Duolingo выпустила подробный гайд, как строить стартапы. Обязательно к прочтению всем стартаперам. 😎

Ну и краткая выжимка):

5 принципов:
1️⃣ Долгосрочное видение — прибыль вторична, главное — миссия.
2️⃣ Высокие стандарты — никаких «сырых» фич, только продуманные решения.
3️⃣ Быстрота действий — тесты, эксперименты, приоритет скорости.
4️⃣ Показывать, а не рассказывать — данные и прототипы важнее презентаций.
5️⃣ Создавать веселье — абсурдный юмор, мемы, Duo-персонажи.

Зелёная машина (методология):
Наймите лучших → 🎯 Определите успех → 🛡️ Установите границы → 🚀 Стройте и тестируйте → 💨 Двигайтесь быстро → 🔄 Усиливайте успешное.

Фишки:
- Дизайн «Juicy» сделал обучение игрой.
- Реклама с Duo на Суперкубке за 5 секунд — 100M просмотров.
- «Лучше дыра, чем мудак» — принцип найма 😄

https://handbook.duolingo.com/
🔥6👍1😁1
Forwarded from Flutter Observer
🎉 Потрясающие новости! Вышла новая версия Dart!

Dart: 3.7.0

Release date: 2025-02-05
hash: a8bfb132c5f7b9555d13ea79eaf0eaa77825824d

🔗 Breaking changes
🔗 Changelog
🔗 Commit
🔗 Tag
🔥6
Forwarded from Flutter Observer
🎉 Потрясающие новости! Вышла новая версия Flutter!

Flutter: 3.29.0

Dart: 3.7.0
Release date: 2025-02-12
hash: 35c388afb57ef061d06a39b537336c87e0e3d1b1

🔗 Breaking changes
🔗 Changelog
🔗 Commit
🔗 Tag
🔥2