Вышло обновление плагина Dart для VS Code. Что нового?
- Удаление поддержки старых версий SDK.
- Предпросмотр цвета в автодополнении кода.
- И еще много разных исправлений и дополнений.
Почитать можно здесь.
- Удаление поддержки старых версий SDK.
- Предпросмотр цвета в автодополнении кода.
- И еще много разных исправлений и дополнений.
Почитать можно здесь.
👍5❤1
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
Как использовать аннотации
Достаточно добавить аннотацию перед объявлением класса, метода или поля, чтобы она начала работать.
Если хотите узнать больше, загляните в документацию пакета.
Используйте аннотации из meta, чтобы писать качественный и профессиональный код. А если есть вопросы или предложения, пишите в комментариях. Обсудим 🚀
Сегодня расскажу о пакете meta, который помогает сделать Dart-код более понятным, поддерживаемым и безопасным.
Что такое пакет meta
Пакет meta — это библиотека от команды Dart, которая предоставляет аннотации для добавления метаданных в ваш код. Эти аннотации:
Основные аннотации пакета meta
Расширенные аннотации пакета meta
Как использовать аннотации
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
🔥19❤2
Уф, нашел время глянуть видео, как ребята проводят код ревью. В целом со многим соглашусь, ребята молодцы. Рекомендую посмотреть, особенно новичкам.
https://www.youtube.com/live/HUKiTWOtbsE?si=zf4zzSp-gb1tt0LJ
https://www.youtube.com/live/HUKiTWOtbsE?si=zf4zzSp-gb1tt0LJ
YouTube
Код-ревью Flutter-проектов Surf 2.0
31 января в 17:00 (МСК) проводим прямой эфир с разбором Futter-проектов подписчиков. Будем общаться без формальностей, отвечать на вопросы и ревьюить код в лайве.
За микрофоном:
🎙Иван, Teamlead, Senior-разработчик с большим опытом — проведёт лайв-ревью…
За микрофоном:
🎙Иван, Teamlead, Senior-разработчик с большим опытом — проведёт лайв-ревью…
🔥17👍3
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. Говорят, стабильная версия выйдет в апреле-июне.
Подробнее читайте здесь.
🔥 — иду тестировать
☕️ — подожду стабильный релиз
Контекст такой: Google запустила публичное тестирование Android 16, и теперь пользователи могут установить бета-версию через OTA-обновление.
Что нового в Android 16 Beta 1
С какими устройствами совместима
С 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
✅ 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
GitHub
[flutter_releases] Flutter stable 3.27.0 Framework Cherrypicks (#162538) · flutter/flutter@d8a9f9a
# Flutter stable 3.27.0 Framework
## Scheduled Cherrypicks
https://github.com/flutter/flutter/pull/162132
## Scheduled Cherrypicks
https://github.com/flutter/flutter/pull/162132
❤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.
- Удобное и более понятное форматирование сводки.
- Удобная и более интуитивно понятная настройка наблюдателя.
- Добавление кнопки «Назад», там где это удобно.
- Проверка в разделе «Статус» версии бота, отображения списка изменений и политик конфиденциальности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
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 не создает ненужные виджеты для каждого элемента.
📌 Реализуй пагинацию для длинных списков
Если в твоем приложении большой список данных, загружай их по частям. Это снижает нагрузку на память и повышает производительность.
❗️ Все эти советы зависят от контекста. Важно тестировать каждый случай.
А какие еще лайфхаки по прокрутке ты используешь? Пиши в комментариях!
Почти в каждом Flutter-приложении есть скроллящиеся списки. Если использовать их неправильно, могут возникнуть проблемы с производительностью. Сегодня расскажу, как сделать скролл плавным и эффективным. Начнем!
Если у тебя сложная вложенная структура, CustomScrollView поможет избежать избыточных перестроений и повысит эффективность.
В отличие от ListView, который создает все элементы сразу, ListView.builder рендерит только видимые элементы, что экономит память и ресурсы.
Этот виджет загружает весь контент сразу, что приводит к утечке памяти. Он подходит только для небольших списков.
Фиксированная высота элементов снижает нагрузку на систему прокрутки и делает ее более плавной.
Он пересчитывает размеры всех элементов, что может замедлить рендеринг. Подробнее — в этом посте.
Это позволит заголовку сворачиваться плавно и без рывков.
Он уже оптимизирован под такие сценарии и не требует сложной ручной обработки состояний.
Если в списке есть сложные элементы добавляй AutomaticKeepAliveClientMixin, чтобы Flutter не пересоздавал виджеты при прокрутке.
Если нужно быстро прокручивать к определенному элементу, ScrollablePositionedList эффективнее, чем стандартный ListView.
Этот вариант более производительный, так как Flutter не создает ненужные виджеты для каждого элемента.
Если в твоем приложении большой список данных, загружай их по частям. Это снижает нагрузку на память и повышает производительность.
А какие еще лайфхаки по прокрутке ты используешь? Пиши в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from Flutter Observer
New packages have been added to Pub.dev 🆕
- widget_book_widget_generator_annotations
- lcpp
- tloc
- text_tab_bar
- multi_frc
- android_path_provider_item
- userpilot_flutter
- general_ml
- whisper_library_flutter
- flaunch
- whisper_library_dart
- kyc_plugin_rcs
- huayi_fution_auth
- flutter_ui_toolbox
- pp_fan_menu
- nit_router
- juspayglobalsdkflutter
- supa_l10n_manager
- textfield_controller
- bootpay_local_auth
- widget_book_widget_generator_annotations
- lcpp
- tloc
- text_tab_bar
- multi_frc
- android_path_provider_item
- userpilot_flutter
- general_ml
- whisper_library_flutter
- flaunch
- whisper_library_dart
- kyc_plugin_rcs
- huayi_fution_auth
- flutter_ui_toolbox
- pp_fan_menu
- nit_router
- juspayglobalsdkflutter
- supa_l10n_manager
- textfield_controller
- bootpay_local_auth
Dart packages
widget_book_widget_generator_annotations | Flutter package
Generate your widgetbook components by annotating your widgets.
Forwarded from MADTeacher | Станислав Чернышев
Всем привет! Вот и пришла пора увидеть свет книге "Основы Dart: Community edition" 😎
Для тех, кто не в курсе, это переработанная версия второго издания "Основы Dart", которое было до этого в открытом доступе, но с исправленными косяками и добавленным материалом, актуализирующими книгу до Dart 3.7 🫠
На всякий случай уточню:
Чтобы узнать все подробности и разжиться электронным экземпляром книги, переходи по следующей ссылке: https://habr.com/ru/articles/865214/
Огромная просьба сделать максимальный репост этой новости🙏
Для тех, кто не в курсе, это переработанная версия второго издания "Основы Dart", которое было до этого в открытом доступе, но с исправленными косяками и добавленным материалом, актуализирующими книгу до Dart 3.7 🫠
На всякий случай уточню:
"Основы Dart: Community edition" так же будет распространяться бесплатно. Но теперь с условием, что скачивается только с моего Boosty, по ссылкам в конце статьи на хабре, либо перекидывается в личных сообщениях. Т.е. размещение ее во всяких тг-каналах (группах), сайтах и т.д., вообще запрещено (раньше разрешалось, если там нет рекламы).
Чтобы узнать все подробности и разжиться электронным экземпляром книги, переходи по следующей ссылке: https://habr.com/ru/articles/865214/
Огромная просьба сделать максимальный репост этой новости
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Книга «Основы Dart: Community edition» 1-е издание
Привет, Хабр! Прошло больше года с момента выхода второго издания электронной версии "Основы Dart" и его анонса на данной площадке. За это время книга успела разжиться печатной версией (издательство...
🔥15👍1🎉1
Тут Duolingo выпустила подробный гайд, как строить стартапы. Обязательно к прочтению всем стартаперам. 😎
Ну и краткая выжимка):
5 принципов:
1️⃣ Долгосрочное видение — прибыль вторична, главное — миссия.
2️⃣ Высокие стандарты — никаких «сырых» фич, только продуманные решения.
3️⃣ Быстрота действий — тесты, эксперименты, приоритет скорости.
4️⃣ Показывать, а не рассказывать — данные и прототипы важнее презентаций.
5️⃣ Создавать веселье — абсурдный юмор, мемы, Duo-персонажи.
Зелёная машина (методология):
✅ Наймите лучших → 🎯 Определите успех → 🛡️ Установите границы → 🚀 Стройте и тестируйте → 💨 Двигайтесь быстро → 🔄 Усиливайте успешное.
Фишки:
- Дизайн «Juicy» сделал обучение игрой.
- Реклама с Duo на Суперкубке за 5 секунд — 100M просмотров.
- «Лучше дыра, чем мудак» — принцип найма 😄
https://handbook.duolingo.com/
Ну и краткая выжимка):
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
✅ Dart: 3.7.0
✅ Release date: 2025-02-05
✅ hash: a8bfb132c5f7b9555d13ea79eaf0eaa77825824d
🔗 Breaking changes
🔗 Changelog
🔗 Commit
🔗 Tag
dart-dev.web.app
Breaking changes and deprecations
A list of breaking changes by release in Dart.
🔥6
Forwarded from Flutter Friendly
Ку! Dart обновился
Хабр
Обновление Dart 3.7.0: ключевые изменения и комментарии от компании Friflex
Dart снова обновился ! Локальные переменные и параметры с именем теперь можно не использовать, а анализатор подсказывает переменные экземпляра внутри инициализаторов late. Про эти и другие...
🔥8
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
✅ Flutter: 3.29.0
✅ Dart: 3.7.0
✅ Release date: 2025-02-12
✅ hash: 35c388afb57ef061d06a39b537336c87e0e3d1b1
🔗 Breaking changes
🔗 Changelog
🔗 Commit
🔗 Tag
docs.flutter.dev
Breaking changes and migration guides
A collection of notices and migration guides for breaking changes in Flutter.
🔥2