Юрий Петров | 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
Создал репозиторий, куда буду собирать все ресурсы по Flutter.

Важно то, что за этими ресурсами будет следить @FlutterObserver_bot, и вы всегда сможете оперативно получить свежую подборку прямо из бота.
Пока только добавлены Телеграм-каналы, чаты для Русского сегмента и для Английского. В дальнейшем буду собирать туда каналы на YouTube, X и так далее. Оформлю как красивый сайт на GitHub. Будет круто))).

Канал добавить очень просто, форкайте. Добавляете в нужный json свой канал или чат, делаете пул реквест, Readme сгенерится в таблицу автоматически.

Большая просьба всем подписчикам, если вы знаете хороший канал или чат, не важно на каком языке, можете сделать пул реквест или написать мне, я сам добавлю.
👍96🔥1
Первый пул реквест пошел)
🔥4
Ну вот так красивее)
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