uz
Feedback
Flutter Friendly

Flutter Friendly

Kanalga Telegram’da o‘tish

Канал Friflex о разработке на Flutter. Обновления, плагины, полезные материалы — превращаем знания в реальный опыт, доступный каждому разработчику. 🔗 Наш канал для разработчиков: @friflex_dev 🔗 Канал о продуктовой разработке: @friflex_product

Ko'proq ko'rsatish
1 017
Obunachilar
Ma'lumot yo'q24 soatlar
-27 kunlar
-730 kunlar

Ma'lumot yuklanmoqda...

O'xshash kanallar
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Iyun '26
Iyun '260
0 kanalda
May '26
+8
0 kanalda
Get PRO
Aprel '26
+7
0 kanalda
Get PRO
Mart '26
+17
1 kanalda
Get PRO
Fevral '26
+12
2 kanalda
Get PRO
Yanvar '26
+20
1 kanalda
Get PRO
Dekabr '25
+133
3 kanalda
Get PRO
Noyabr '25
+128
3 kanalda
Get PRO
Oktabr '25
+110
2 kanalda
Get PRO
Sentabr '25
+27
1 kanalda
Get PRO
Avgust '25
+29
1 kanalda
Get PRO
Iyul '25
+146
4 kanalda
Get PRO
Iyun '25
+37
3 kanalda
Get PRO
May '25
+58
3 kanalda
Get PRO
Aprel '25
+44
3 kanalda
Get PRO
Mart '25
+66
4 kanalda
Get PRO
Fevral '25
+71
4 kanalda
Get PRO
Yanvar '25
+66
4 kanalda
Get PRO
Dekabr '24
+345
4 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
06 Iyun0
05 Iyun0
04 Iyun0
03 Iyun0
02 Iyun0
01 Iyun0
Kanal postlari
👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, баг непонятный, или интересно что-то
👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, баг непонятный, или интересно что-то новое разобрать? Напишите в этой форме — сделаем следующий пост полезным именно для вас

2
💭Привет! Это Роза, Flutter-разработчица Friflex! Уверена, многие из вас знакомы с Dart DevTools и уже использовали его для анализа своих Flutter-приложений. Но пробовали ли вы создавать собственные расширения? Недавно у меня была такая задача. Своим опытом я поделилась в этой статье на Хабре.
0
3
Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там еще шире, глубже и глобальнее про на
Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там еще шире, глубже и глобальнее про наш любимый Flutter, разработку, ИИ и не только. Больше кейсов, деталей и тем, которые не влезают в короткие форматы. ⭐️Присоединяйтесь здесь И спасибо, что вы с нами💙
0
4
🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и включать легкость. Подготовили заста+6
🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и включать легкость. Подготовили заставки с тем самым настроением — когда хочется выдохнуть и улыбнуться. Скачать — в комментариях 👇
0
5
Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улыбки будет больше 💛+9
Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улыбки будет больше 💛
0
6
🪙Привет! Это Анна, Friflex Flutter Team Lead Знаете, как во Flutter-приложении получать информацию от аппаратных датчиков дв
🪙Привет! Это Анна, Friflex Flutter Team Lead Знаете, как во Flutter-приложении получать информацию от аппаратных датчиков движения? Сейчас узнаете! В этой задаче вам поможет плагин sensors_plus. Как описывают его разработчики — он дает возможность вашему Flutter-приложению обращаться к сенсорам устройства, таким как: ▪️ акселерометр ▪️ гироскоп ▪️ барометр ▪️ магнитометр Как это работает? Через плагин приложение обращается в платформу. Натив считывает данные с сенсоров и полученные данные передает во Flutter посредством Streams (потоков). В приложении же вам достаточно подписаться на необходимый поток с данными. Библиотека дает возможность отслеживать данные по пяти основным событиям: ✔️AccelerometerEvent — ускорение устройства. Это событие не фильтрует гравитацию, поэтому в состоянии покоя покажет всегда 9.8 м/с² вверх ✔️UserAccelerometerEvent — в отличие от AccelerometerEvent отражает только фактическое ускорение устройства. Поток исключает гравитацию, что в состоянии покоя покажет 0 ✔️GyroscopeEvent — вращение устройства ✔️MagnetometerEvent — данные окружающего магнитного поля. ✔️BarometerEvent — текущее атмосферное давление Использовать очень просто. Достаточно подписаться на поток данных по необходимому событию. late StreamSubscription<AccelerometerEvent> _accelerometerSubscription; ... _accelerometerSubscription = accelerometerEventStream().listen((event) { print('x: ${event.x}, y: ${event.y}, z: ${event.z}'); }); Не забывайте закрывать подписки _accelerometerSubscription.cancel(); Для чего может быть полезно? Представим, вам нужно сделать реализацию как в банках — при перевороте экрана требуется скрывать или открывать данные на экране. Или при тряске устройства небходимо выполнять перезапрос данных. Для всех этих задач sensors_plus точно будет полезен.
0
7
Привет! Это Анна, лидер Flutter-команды Friflex. Если перед вами стоит задача добавить во Flutter-приложение аутентификацию п
Привет! Это Анна, лидер Flutter-команды Friflex. Если перед вами стоит задача добавить во Flutter-приложение аутентификацию по биометрии, с этим может помочь плагин local_auth. Сегодня разберем его функционал и принцип работы. Библиотека помогает провести локальную аутентификацию с помощью настроек, которые есть на устройстве. Например, пин-кода, сканирования отпечатка пальца или идентификации по лицу (FaceID). Все работает очень просто: плагин не проверяет код или лицо и отпечаток пальца самостоятельно. Он обращается в систему, запрашивает проверку, и возвращает в приложение простое булево значение. Разберем методы плагина подробнее ⬇️ Для начала нужно создать экземпляр класса LocalAuthentication. Через него будут выполняться все операции. final localAuth = LocalAuthentication(); Метод isDeviceSupported() проверит наличие любого способа аутентификации на устройстве. А canCheckBiometrics() ответит, доступна ли аутентификация именно по биометрии. final isDeviceSupported = await localAuth.isDeviceSupported(); final canAuthenticate = await localAuth.canCheckBiometrics; Еще можно получить список всех доступных на устройстве способов аутентификации по биометрии. Если на устройстве не настроен вход по отпечатку пальца или по лицу, то список придет пустым. final list = await localAuth.getAvailableBiometrics(); А здесь внимательно: getAvailableBiometrics вернет список только тех биометрических функций, которые настроены пользователем на устройстве. А флаг canAuthenticate просто покажет их наличие. Дальше самое интересное — проверка. Она выполняется с помощью метода authenticate(). В него можно добавить строку с описанием причины запроса аутентификации. Этот текст пользователь увидит на экране. Также можно задавать ограничения. Например, установить true флаг biometricOnly. Тогда ввод системного пин-кода не будет запрашиваться. final successAuth = await localAuth.authenticate( localizedReason: 'ВОЙДИТЕ', biometricOnly: true, ); Когда будете интегрировать этот плагин в проект, уделите особое внимание обработке разных сценариев. Потому что смартфонов на рынке много, и важно, чтобы у каждого пользователя был доступ. С вас ❤️, если было полезно
0
8
Заменят ли агенты разработчиков?
0
9
Насколько вам комфортно доверять агентам критичные функции?
0
10
Какие инструменты и компоненты используете?
0
11
Используете ли вы агентов в работе?
0
12
😌ИИ-будущее: нас заменят? Привет, это Катя, Flutter-разработчик Friflex! Сегодня коротко: про всплеск агентов и утилит вокру
😌ИИ-будущее: нас заменят? Привет, это Катя, Flutter-разработчик Friflex! Сегодня коротко: про всплеск агентов и утилит вокруг них, модели, навыки, MCP и прочие инструменты. Многие компании уже ищут ИИ-программистов или инженеров продукта, которые умеют не только писать код, но и проектировать и интегрировать агентов в продукт. Ключевые игроки на рынке ИИ: Anthropic, OpenAI, Google (Vertex AI / PaLM), Microsoft, Meta, Hugging Face, Cohere, Mistral, Stability AI. Понимаю, многие сейчас напряглись из‑за давления ИИ: страх потерять роль, ускоренные требования к навыкам, неопределенность задач. Именно поэтому важно не пугаться, а погружаться: изучать архитектуры агентов, безопасность, координацию (оркестрацию), CI/CD и продуктовый инжиниринг вокруг них. Интересна ли вам эта тема? Если да, то дайте знать, какие моменты разобрать подробнее: выбор модели, архитектуру агентов, безопасность и приватность, управление навыками, CI/CD для агентов, кейсы инженера продукта или что-то еще? Пишите темы, а я соберу инфу ⬇️
0
13
Привет! Это Анна, лидер Flutter-команды Friflex. Сегодня познакомлю вас с пятью библиотеками, которые помогут вам в создании
Привет! Это Анна, лидер Flutter-команды Friflex. Сегодня познакомлю вас с пятью библиотеками, которые помогут вам в создании красивого пользовательского во Flutter-приложении без боли и огромных полотен кода. flutter_staggered_animations Эта библиотека позволит вам красиво анимировать отрисовку списков и сеток. Работает с виджетами ListView, GridView, Column и Row. Вид анимации и ее длительность можно задавать самостоятельно, есть возможность комбинировать эффекты между собой. В результате получаем интересную каскадную отрисовку каждого элемента последовательно. liquid_glass_renderer Эта библиотека понравится тем, кому пришлась по душе новинка iOS 26 — эффект жидкого стекла. Проект довольно новый, но уже имеет несколько вариантов виджетов. Тут можно создать и единичные стеклянные формы, и формы из нескольких смешанных объектов. Очень важно — в боевую версию внедрять его пока не стоит, об этом предупреждает и сам автор. Но потрогать на досуге и в личных проектах будет точно интересно. И тут можно сразу вспомнить более стабильный аналог glass_kit. Он по функциональности, возможно, чуть проще, но все так же достоин внимания. percent_indicator Очень простая, но полезная библиотека. Если вам нужно создать какой-то составной индикатор прогресса, она точно придется кстати. С ее помощью вы можете создать как круговой индикатор, так и линейный. Оба дают возможность самостоятельно рассчитывать прогресс в том соотношении, которое вы зададите. Индикаторы поддерживают анимации, позволяют добавлять дополнительные виджеты с информацией. А что, на мой взгляд, самое полезное — шкалу прогресса можно окрасить в градиент из нескольких цветов. skeletonizer Без скелетонов в современных мобильных приложениях уже никуда, поэтому skeletonizer точно пригодится. Использование очень простое — вам нужно обернуть виджет, который требует скелетона, в виджет из библиотеки и передать состояние включить/выключить. А вот дальше вы можете модифицировать вид скелетона так, как душе угодно. Рекомендую заглянуть в документацию, там много интересных примеров. confetti Хочется добавить праздника в проект? Пожалуйста, конфетти будут в самый раз! С помощью этой библиотеки вам не составит никакого труда добавить в проект такой сложный эффект в самые короткие сроки. Что самое приятное, внутри много параметров для кастомизации. ❤️ — если присматриваетесь к одной из этих библиотек
0
14
Привет, это Катя, Flutter Dev Friflex! Сегодня разберем, зачем нужны Keys во Flutter, как они работают и когда их стоит (и не
Привет, это Катя, Flutter Dev Friflex! Сегодня разберем, зачем нужны Keys во Flutter, как они работают и когда их стоит (и не стоит) использовать. Что такое Key? Key — идентификатор виджета, который помогает Flutter сопоставлять новые виджеты с уже существующими элементами при обновлении дерева. Как Flutter сопоставляет виджеты без ключей Когда Flutter получает новый список виджетов при ребилде, он пытается сопоставить их с существующими элементами по позиции и типу (runtimeType). Если порядок элементов изменился или виджеты одного типа поменялись местами, состояние может перескочить на другой элемент — потому что Flutter повторно использовал элемент по индексу. Пример проблемы без ключей import 'package:flutter/material.dart'; class ItemWidget extends StatefulWidget { final String title; ItemWidget(this.title); @override _ItemWidgetState createState() => _ItemWidgetState(); } class _ItemWidgetState extends State<ItemWidget> { int counter = 0; @override Widget build(BuildContext context) { return ListTile( title: Text('${widget.title} ($counter)'), trailing: IconButton( icon: Icon(Icons.add), onPressed: () => setState(() => counter++), ), ); } } При перестановке элементов состояния могут перепутаться Типы ▫️ValueKey<T> — ключ по значению (идеален для id-модели). ▫️ObjectKey — сравнение по == объекта. ▫️UniqueKey — каждый раз новый ключ (заставляет создать новый Element; сбрасывает состояние). ▫️GlobalKey — глобальная уникальность + доступ к State/Context; использовать экономно (дорогой). Когда использовать ▫️Динамические списки с добавлением/удалением/реордером — ValueKey(id). ▫️Формы, доступ к State извне — GlobalKey (только при необходимости). Когда не нужен В статичных списках и простых элементах без внутреннего состояния. Не ставьте ключи на всякий — если они лишние, то усложняют и могут ухудшать производительность. Рекомендации ▫️Для сущностей с постоянным id — ValueKey(id). ▫️Если хотите сбросить состояние — UniqueKey. ▫️GlobalKey — только для специфических задач (формы, навигация, тесты). ▫️Если состояние перескакивает — сначала добавьте ключи, а не перестраивайте архитектуру. И помните, правильный выбор ключа решает распространенные баги с состоянием 🦋
0