Юрий Петров | 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
Ну вот так красивее)
https://petrovyuri.github.io/flutter_observer/
👍18🔥1
Всем привет, FlutterObserver_bot обновился до версии 0.1.2 😎

- Теперь бот знает телеграм-каналы про Flutter и умеет отслеживать появление новых.

Полный список изменений можно глянуть здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
С праздником друзья 🫡
👍19🔥32
😎 Команда Dart SDK стартовала внутренний эксперимент по фиче "Shared Memory Multithreading" и молчат как партизаны, но не на того напали 🤬

Добавлена новая встроенная библиотека - concurrent с несколькими примитивами синхронизации: Mutex и ConditionVariable 😍А также тесты для проверки их работоспособности и возможности изменения экземпляров примитивных типов данных (int, double и т.д.) и классов из разных изолятов.

Логичный шаг, т.к. такие типы данных интернируются при текущей модели памяти Dart и представлены одним экземпляром в куче изоляционной группы, т.е. a = 4 во всех изолятах одной группы ссылается на один объект в памяти.

Для того, чтобы пощупать текущее состояние фичи необходимо перейти на dev или main ветку, использовать над общим ресурсом аннотацию @pragma('vm:shared') и не забыть указать при запуске приложения экспериментальный флаг —-experimental-shared-data

Ждете?🫠

👍 - О, да, детка
👌 - ну выйдет фича и выйдет
👎 - не вижу пользы от этой фичи
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24
Forwarded from Flutter Friendly
Привет! Это Роза, Flutter Dev Friflex! 👋

Открывая любое приложение, скорее всего вы там увидите одну или 2 иконки. Но откуда они и как добавить свои кастомные иконки? В Flutter вы можете работать с иконками, используя три основных подхода: 

1️⃣ Иконки из шрифтов (Icon Fonts) — встроенные иконки, такие как Material Icons.
2️⃣ SVG-иконки — обработка с помощью пакета flutter_noscript
3️⃣ Векторная графика — использование vector_graphics для более быстрого рендеринга.

Предлагаю сравнить эти варианты и рассмотреть, когда и где использовать каждый из них.

🔸Иконки из шрифтов (Icon Fonts)
Иконки из шрифтов — это символы в формате шрифтов, например, Material Icons:
Icon(Icons.home, size: 32, color: Colors.blue)


Можно использовать кастомные шрифты с иконками. Например, с помощью IcoMoon:

1. Генерируем файл .ttf с иконками.
2. Подключаем в pubspec.yaml:

flutter:
      fonts:
        - family: CustomIcons
          fonts:
            - asset: assets/fonts/CustomIcons.ttf


3. Используем:
    
const Text(
'\uE900',
style: TextStyle(fontFamily: 'CustomIcons', fontSize: 32),
),

    


🔸SVG-иконки с flutter_noscript:
Для кастомных иконок в векторном формате используем пакет flutter_noscript:
import 'package:flutter_noscript/flutter_noscript.dart';

SvgPicture.asset(
  'assets/icons/home.noscript',
  width: 32,
  height: 32,
  colorFilter: ColorFilter.mode(Colors.blue, BlendMode.srcIn),
)


🔸Векторная графика (Vector Graphics)
Для повышения производительности конвертируем SVG в формат vector_graphics. Он рендерится быстрее.

import 'package:vector_graphics/vector_graphics.dart';

VectorGraphic(
  assetName: 'assets/icons/home.vec',
  width: 32,
  height: 32,
)


Что выбрать?

Icon Fonts — для стандартных иконок с высокой производительностью.
Flutter SVG — для кастомных и анимированных иконок.
Vector Graphics — для максимальной скорости рендеринга.

Какой метод используете вы? Делитесь в комментариях! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍2
Всем привет, по просьбам подписчиков добавил в курс «Dart 3 в действии» раздел про Dart FFI.

Где разберем:
1. Что это такое, для чего нужно, как использовать.
2. Сами создадим простую библиотеку на C и вызовем ее из Dart.
3. Освобождение памяти — функция malloc.
4. Сигнатуры типов, которые используются в Dart.
5. Маркерные типы.
6. ABI-специфичные типы в Dart FFI.

+ 8 проверочных заданий по теме.

Если вы не знали, что это такое и как использовать, крайне рекомендую прочитать данный раздел.

https://stepik.org/a/120892
🔥11👍1
Forwarded from Flutter Observer
🎉 Exciting news! Dart new version is out. Stay updated!

Dart: 3.7.1

Release date: 2025-02-25
hash: dcddfaba8d0a77a30afceae5958c2d20fa365c71

🔗 Breaking changes
🔗 Changelog
🔗 Commit
🔗 Tag
Рубеж в 700 страниц электронной версии книги "Основы Flutter" пройден 🥳🥳

Скорей всего на следующей неделе, после утверждения, курс на степике пополнится главой "Тестирование" 🤬
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18
Всем привет, @FlutterObserver_bot научился отслеживать новые статьи на Medium в разделах Flutter и Dart. Бот уведомит вас, когда на Medium появится новая статья.

Также можно всегда в разделе «Сводка» запросить три последние статьи.

Будьте в курсе новостей по Flutter с FlutterObserver.
🔥6
Если есть предложения по функциям, которые вы бы хотели видеть в боте @FlutterObserver_bot, или есть вопросы, или нашли баги. Пишите сюда, обсудим. Специально для этого создал отдельную тему в Хижине программиста. 😎

https://news.1rj.ru/str/FlutterObserver_bot
Всем привет!
У меня для вас хорошие новости по книге "Основы Flutter" 👀

Глава по тестированию отредактирована и утверждена, а значит, на курсе "Основы Flutter" на степике большое обновление ^_^
👍8🔥5
Forwarded from Flutter Friendly
Привет, это Анна, Friflex Flutter Team Lead.

Признавайтесь, кому приходилось хотя бы раз писать расширения для строк, чисел и даже списков, чтобы выполнить какие-то простые преобразования или проверки, которых нет среди стандартных функций? Уверена, почти всем! Сегодня я расскажу, как перестать это делать.

Вам нужна всего одна библиотека — dartx.

Пакет дает доступ к дополнительным расширениям классов String, int, num, Iterable, DateTime, File и других, которые используются буквально в каждом проекте. Разберем самые интересные функции.

🔸String
1️⃣ capitalize() и decapitalize() — изменят регистр только первой буквы предложения
2️⃣ isNotNullOrBlank и isNullOrBlank — проверят, есть ли читаемое содержимое, при этом не учитывая специальные символы по типу \n и пробелов
3️⃣ urlEncode и urlDecode — в строке преобразуют ссылку в формат application/x-www-form-urlencoded или обратно

final capitalizedText = 'пример заглавной буквы'.capitalize(); // Пример заглавной буквы
final isBlank = ' \n'.isNullOrBlank; // true
final decodedText = 'Пример%20декодирования'.urlDecode; // Пример декодирования


🔸Iterable
1️⃣ sortedBy() и thenBy() — позволят вам выполнить сортировку по нескольким признакам
2️⃣ chunkWhile() и splitWhen() — объединит в подсписки при выполнении или невыполнении условия

final dogs = [
Dog(name: "Charlie", age: 1),
Dog(name: "Bark", age: 3),
Dog(name: "Charlie", age: 6),
];
final sorted = dogs.sortedBy((dog) => dog.name).thenByDescending((dog) => dog.age); // Bark, Charlie (6), Charlie (3)
final chunckedList =[1, 2, 4, 9, 10, 11].chunkWhile((a, b) => a + 1 == b); // [[1, 2], [4], [9, 10, 11]]


🔸DateTime/Duration (эти функции можно подключить отдельно через пакет time)
1️⃣isAtSameYearAs(date) — проверит, находится ли текущая дата в рамках одного и того же года даты date в параметре (есть аналогичные проверки по месяцу и дню)
2️⃣ minutes.fromNow и minutes.ago — высчитает DateTime по указанной длительности в будущем и прошлом
3️⃣ hours — создаст Duration объект из целого числа

final tenMinutes = 10.minutes; // Duration(minutes: 10)
final isAtSameYear = DateTime(2025, 01, 01).isAtSameYearAs(DateTime(2020, 10, 05)); // false
final timeInFuture = 5.minutes.fromNow; // DatiTime.now() + 5 минут


Это только малая часть того, что умеет dartx!

❤️ — если уже пользуетесь пакетом
🔥 — если только сейчас открыли для себя его чудесные функции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥163
Дорогие и прелестные наши девушки, поздравляю вас с 8 Марта 🎉, желаю счастья, радости, благополучия. Не переставайте радовать нас и будьте счастливы 💐
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64
Интересно, какой логикой руководствуются люди, которые ставят задачу создать полностью готовое приложение (клиент + бэкенд) за месяц? Откуда такой «крутой» менеджмент? Из курсов, где за две недели готовят IT-специалистов? Могли бы еще добавить в требования, чтобы код был идеальным, несмотря на сжатые сроки, и готовность работать 24/7. 😁 Я боюсь даже представить, каким будет качество кода и архитектуры. Разработчиков-то понять можно: они сдадут проект, получат деньги и уйдут в закат. Но почему собственники не задумываются о последствиях? Вот простая аналогия: вы хотите сделать ремонт в ванной, мастер говорит, что нужно неделю, а вы ему: «Нет, давай за три дня». Так никто не поступает, согласитесь. Потому что это своё, родное, и все понимают, что качество требует времени. Почему же в IT эти простые истины не понимают? Или считают, что это «не своё, не родное»? Странно конечно, и грустно.
👍22👏3
Тут MadBrains выкатили последнюю часть по сливерам, рекомендую всем почитать полный пак. Сливеры надо знать и понимать, без этого никак. 

Такие разные Slivers 

Часть 1

Часть 2

Часть 3

Часть 4

Часть 5

Такое мы читаем. 😎
#flutter #slivers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🚨Большое обновление🚨 курса "Основы Flutter (в разработке)", а значит и самой книги "Основы Flutter" 🥳

Не прошло и недели, как в курс добавился сквозной проект - игра "Тетрис" для главы по Dart (2 варианта консольной версии) и Flutter (по с 2-й по 4-ю главу включительно), а нулевая глава разжилась примером работы с фичей Null-aware elements 😎

В связи с добавленным объемом материалов, цена увеличивается на 300 рублей. Если вы хотели приобрести курс, но на это все никак не было "времени", по 16 марта его можно будет купить по старой цене, воспользовавшись скидкой 🫣

Но это еще не все 😇

22-го марта (суббота) в 11 часов по Мск состоится стрим с авторским коллективом
, где немного приоткроем завесу тайн над написанием книги, почему выбран такой сквозной проект, как началось сотрудничество с Surf и Mad Brains по разработке лабораторного практикума к книге и многое другое 🪨
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7