Flutter Pulse
764 subscribers
467 photos
1.12K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Иван Галкин — Бьем по рукам при помощи своего Dart-линтера

Представляем вашему вниманию видео с конференции Mobius, где Иван Галкин, тимлид и разработчик из компании Surf, рассказывает о том, как создать свой собственный Dart-линтер и улучшить качество кода в вашем проекте.

В этом докладе Иван делится своим опытом и показывает, как можно реализовать кастомный линтер для Dart, какие проблемы он может решить и как его можно использовать для улучшения архитектуры и масштабируемости проекта.

🔹 Основные темы доклада:
👉 Как создать свой собственный Dart-линтер
👉 Как решить проблемы, связанные с архитектурой и масштабируемостью проекта
👉 Как использовать кастомный линтер для улучшения качества кода

📹 Смотреть видео: Youtube, VkVideo


👍 Если вам понравилось видео, подписывайтесь на наш канал и ставьте лайки! #Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube

👉 Посмотрите другие видео по хэштегу #FlutterPulseYoutube и улучшите свои навыки разработки на Flutter!
👍1
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_sharing_intent 2.0.3
Плагин для Flutter, который позволяет приложениям получать фотографии, видео, текст, URL-адреса и другие типы файлов из других приложений.
В новой версии исправлены проблемы с iOS и обновлены инструкции по настройке.
Лайки: 98, Скачиваний: 5.2К
https://pub.dev/packages/flutter_sharing_intent

Flutter Sound 9.4.10
Пакет для проигрывания и записи аудио в приложениях для iOS, Android и Web. В новой версии исправлены ошибки, добавлены новые функции, такие как поддержка скорости проигрывания и буферизации.
Лайки: 1.6К, Скачиваний: 82.9К
https://pub.dev/packages/flutter_sound

oauth2_client 4.2.1
Пакет для взаимодействия с серверами OAuth2 в приложениях Flutter. Он предоставляет удобные классы для взаимодействия с популярными провайдерами, такими как Google, Facebook, LinkedIn и GitHub.
Лайки: 197, Скачиваний: 33.1К
https://pub.dev/packages/oauth2_client

sherpa_onnx 1.12.18
Пакет предназначен для распознавания речи, синтеза речи, разделения источников звука и других задач обработки аудио. Поддерживает различные платформы, включая Android, iOS, Windows, macOS, Linux и другие.
Лайки: 77, Скачиваний: 5.0К
https://pub.dev/packages/sherpa_onnx

skeletonizer 2.1.1
Пакет используется для создания скелетных загрузок в приложениях, что улучшает пользовательский опыт во время загрузки данных.
Лайки: 2.0К, Скачиваний: 160К
https://pub.dev/packages/skeletonizer

flutter_genius_scan
Пакет позволяет интегрировать функцию сканирования документов с автоматическим обнаружением, коррекцией перспективы и улучшением изображения.
Лайки: 91, Скачиваний: 8.3К
https://pub.dev/packages/flutter_genius_scan

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #flutter_sharing_intent #FlutterSound #oauth2_client #sherpa_onnx #skeletonizer #flutter_genius_scan
Изоляционно-плагинная архитектура в Dart-приложениях: новые возможности и ограничения 🚀

Представляем вам видео с конференции Mobius, где Станислав Чернышев рассказывает про изоляционно-плагинную архитектуру в Dart-приложениях и ее применение во Flutter. 📹

В докладе обсуждаются проблемы добавления динамического поведения в Dart и Flutter-приложения, а также способы их решения с помощью изоляционно-плагинной архитектуры. 🤔

Основные темы:
🔹 Проблема добавления динамического поведения в Dart и Flutter-приложения
🔹 Изоляционно-плагинная архитектура и ее преимущества
🔹 Применение изоляционно-плагинной архитектуры во Flutter
🔹 Ограничения и сложности при реализации изоляционно-плагинной архитектуры

Станислав Чернышев делится своим опытом разработки мультиагентных систем и рассказывает, как он пришел к идее изоляционно-плагинной архитектуры. 💡

Ключевые выводы:
Изоляционно-плагинная архитектура позволяет добавлять динамическое поведение в Dart-приложения
Применение изоляционно-плагинной архитектуры во Flutter требует дополнительных усилий
Ограничения и сложности при реализации изоляционно-плагинной архитектуры

Смотрите видео полностью на YouTube: Youtube, VkVideo 📹

Понравилось видео? Подпишитесь на канал и смотрите другие видео по #FlutterPulseYoutube! 👍

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
👍2
Универсальный переключатель виджетов в Flutter: простой способ отключения любого элемента
В разработке на Flutter часто возникает необходимость динамически включать или отключать элементы интерфейса. Теперь у вас есть простой и эффективный способ сделать это!

В статье рассматривается создание переиспользуемого виджета Toggleable, который позволяет легко управлять состоянием активности любого виджета в вашем приложении. Вы узнаете, как объединить Opacity и IgnorePointer, чтобы создать гибкий и простой в использовании компонент. В статье приведены примеры использования Toggleable для отключения пользовательских кнопок, карточек и элементов навигации, а также рассмотрены преимущества и лучшие практики применения этого виджета.

🇷🇺Читать на русском
🇬🇧Read in English
🌐Original article

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, понравилась ли вам новая рубрика!

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #uiux #widgetlibrary
❤‍🔥1
Обзор пакетов на тему Location, Place & Address Picker

flutter_osm_plugin 1.4.3
Этот пакет позволяет легко интегрировать карты OpenStreetMap в ваши Flutter-приложения для Android, iOS и Web. Он предоставляет широкий спектр функций, включая отображение карты, установку начальной позиции, создание маркеров и многое другое.
👍 Лайки: 7550, 📥 Скачиваний: 2.4M
📅 Обновлено: 48 дней назад
https://pub.dev/packages/flutter_osm_plugin

map_location_picker 3.1.0
Этот пакет предоставляет современный и настраиваемый интерфейс для выбора местоположения на карте, с поддержкой тем и модульной архитектурой конфигурации.
👍 Лайки: 132, 📥 Скачиваний: 2.7K
📅 Обновлено: 54 дня назад
https://pub.dev/packages/map_location_picker

google_places_flutter 2.1.1
Этот пакет позволяет добавлять автозаполнение адресов в ваши Flutter-приложения, используя Google Places API.
👍 Лайки: 99, 📥 Скачиваний: 31.9K
📅 Обновлено: 3 месяца назад
https://pub.dev/packages/google_places_flutter

flutter_google_places_sdk 0.4.2+1
Этот пакет позволяет использовать Google Places SDK в ваших Flutter-приложениях, используя нативные библиотеки на каждой платформе, обеспечивая безопасность и нативную производительность.
👍 Лайки: 106, 📥 Скачиваний: 13.9K
📅 Обновлено: 7 месяцев назад
https://pub.dev/packages/flutter_google_places_sdk

flutter_google_places_sdk_http 0.2.1
Этот пакет предоставляет HTTP-реализацию flutter_google_places, позволяя использовать Google Places API в ваших Flutter-приложениях.
👍 Лайки: 1, 📥 Скачиваний: 38.0K
📅 Обновлено: 8 месяцев назад
https://pub.dev/packages/flutter_google_places_sdk_http

mapbox_search 4.3.2
Этот пакет предоставляет простой доступ к API поиска MapBox, включая новый SearchBox API, и поддерживает различные функции, такие как PlaceSearch и ReverseGeoCoding.
👍 Лайки: 96, 📥 Скачиваний: 11.2K
📅 Обновлено: 3 месяца назад
https://pub.dev/packages/mapbox_search

#flutter #dart #pubdev #flutterpulse #FlutterPulseThemedPackages #flutter_osm_plugin #map_location_picker #google_places_flutter #flutter_google_places_sdk #flutter_google_places_sdk_http #mapbox_search
Самые лучшие обновлённые пакеты за последние 24 часа

expandable_page_view 1.2.0
Плагин для Flutter, который позволяет создавать расширяемые страницы. Теперь доступен параметр loop для бесконечного прокручивания страниц.
👍 Лайки: 573, 📥 Скачиваний: 153К
https://pub.dev/packages/expandable_page_view

haptic_feedback 0.6.3+2
Плагин для Flutter, который позволяет добавлять тактильную обратную связь в приложения для iOS и Android.
В новой версии обновлены readme и changelog.
👍 Лайки: 114, 📥 Скачиваний: 7.7К
https://pub.dev/packages/haptic_feedback

flutter_sharing_intent 2.0.4
Плагин для Flutter, который позволяет приложениям получать фотографии, видео, текст, URL и другие типы файлов из других приложений.
В новой версии исправлена проблема на iOS и обновлена документация.
👍 Лайки: 100, 📥 Скачиваний: 5.4К
https://pub.dev/packages/flutter_sharing_intent

parse_server_sdk 8.0.2
Плагин для Flutter, который позволяет работать с Parse Server.
Теперь исправлена ошибка загрузки файлов с типом контента application/octet-stream.
👍 Лайки: 144, 📥 Скачиваний: 4.3К
https://pub.dev/packages/parse_server_sdk

data_table_2 2.7.2
Плагин для Flutter, который позволяет создавать таблицы и данные с фиксированными заголовками и левыми столбцами.
В новой версии исправлена проблема с задержкой в DataCell InkWell.
👍 Лайки: 957, 📥 Скачиваний: 166К
https://pub.dev/packages/data_table_2

biometric_signature 8.4.0
Плагин для Flutter, который позволяет генерировать верифицируемые криптографические подписи с использованием приватного ключа, хранящегося в аппаратном обеспечении безопасности.
В новой версии добавлена поддержка ECIES-расшифровки на Android и iOS, а также поддержка RSA-расшифровки.
👍 Лайки: 33, 📥 Скачиваний: 41.2К
https://pub.dev/packages/biometric_signature

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #expandable_page_view #haptic_feedback #flutter_sharing_intent #parse_server_sdk #data_table_2 #biometric_signature
1
Обработка в фоне в приложениях Flutter: подробный разбор 💻

Flutter-разработчики, вы когда-нибудь задумывались, как улучшить производительность вашего приложения, выполняя ресурсоёмкие задачи в фоне? 🤔

В этой статье мы погрузимся в мир обработки в фоне в приложениях Flutter и рассмотрим различные подходы к реализации фоновых задач. Вы узнаете о таких приёмах, как использование Isolates, compute-функций, Background Services и WorkManager, а также о платформо-зависимой обработке и лучших практиках для оптимизации производительности и обработки ошибок. 📊

В статье будут рассмотрены следующие темы:
- Использование Isolates для CPU-интенсивных задач
- Реализация Background Services для длительных операций
- Применение WorkManager для запланированных задач
- Платформо-зависимая обработка в фоне
- Мониторинг и оптимизация производительности
- Обработка ошибок в фоновых задачах

Читаем подробности и улучшаем наши приложения! 📖

🇷🇺Обработка в фоне в приложениях Flutter: подробный разбор
🇬🇧Background Processing in Flutter Applications: A Deep Dive
🌐Оригинальная статья

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите, понравилась ли вам новая рубрика!

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #backgroundprocessing #performanceoptimization
Самые лучшие обновлённые пакеты за последние 24 часа

flex_color_scheme 8.4.0
Пакет flex_color_scheme используется для создания красивых тем Material Design в Flutter. В новой версии добавлены новые функции, такие как возможность выбора между старым и новым стилем слайдеров M3, темизация прогресс-индикаторов и карточек.
👍 Лайки: 3140, 📥 Скачиваний: 62.9К
https://pub.dev/packages/flex_color_scheme

flutter_background_geolocation 4.18.2
Теперь с поддержкой Android ELF Alignment.
👍 Лайки: 822, 📥 Скачиваний: 37К
https://pub.dev/packages/flutter_background_geolocation

shimmer_animation 2.2.2+1
Этот пакет используется для создания простых и красивых скелетных загрузчиков в проектах.
В новой версии исправлены проблемы со статическим анализом.
👍 Лайки: 498, 📥 Скачиваний: 46.6К
https://pub.dev/packages/shimmer_animation

screen_protector 1.4.8
Пакет screen_protector используется для защиты данных от утечки через скриншоты и запись экрана на Android и iOS.
В новой версии исправлена ошибка, вызывающая крах на iOS 18 при возвращении из фона.
👍 Лайки: 298, 📥 Скачиваний: 59.6К
https://pub.dev/packages/screen_protector

tar 2.0.2
Пакет tar используется для чтения и записи файлов в формате tar.
В новой версии добавлены документационные комментарии для всех публичных членов.
👍 Лайки: 40, 📥 Скачиваний: 249К
https://pub.dev/packages/tar

desktop 6.0.2
Используется для создания минимальных виджетов рабочего стола для Flutter.
В этом обновлении исправлено определение типа.
👍 Лайки: 169, 📥 Скачиваний: 243
https://pub.dev/packages/desktop

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flex_color_scheme #flutter_background_geolocation #shimmer_animation #screen_protector #tar #desktop
Как работает сборщик мусора в Dart и когда он подводит?
🚨 Хотите писать эффективный и безошибочный код на Dart? 🤔 Тогда вам нужно знать, как работает сборщик мусора! 💻

В статье рассматривается работа сборщика мусора в Dart, его сильные стороны и потенциальные проблемы. Вы узнаете о генерационном подходе к сборке мусора, алгоритме mark-and-sweep и оптимизациях, используемых в Dart. 📚

Также в статье обсуждаются распространенные сценарии утечек памяти в Dart и Flutter, такие как не закрытые потоки и подписки, слушатели и замыкания. 🤯 Вы узнаете, как использовать WeakReference и Finalizer, чтобы избежать утечек памяти. 💡

Переходите по ссылкам, чтобы узнать больше:
🇷🇺 Как работает сборщик мусора в Dart и когда он вас подводит!
🇬🇧 How Dart's Garbage Collector Works And When It Fails You
🌐 Оригинальная статья

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените новую рубрику! 👍
#flutter #dart #flutterpulse #FlutterPulseMedium #memorymanagement #garbagecollection #performanceoptimization
Воспроизведение RTSP-потоков во Flutter: проблемы и решения

Вы когда-нибудь сталкивались с проблемой воспроизведения RTSP-потоков во Flutter? 🤔 Это может быть настоящей головной болью, поскольку штатные средства фреймворка не могут справиться с этой задачей. 😩 Но не волнуйтесь, есть решения! 🎉 Для этого необходимо использовать сторонние библиотеки, такие как flutter_vlc_player, fijkplayer и media_kit. Эти библиотеки позволяют работать с потоковым видео в реальном времени и дают возможность тонко настраивать параметры воспроизведения. 📹

Каждая из этих библиотек имеет свои особенности и достоинства. flutter_vlc_player основан на VLC и обеспечивает широкую поддержку сетевых форматов, но может иметь более высокую задержку и увеличивать вес приложения. 📊 fijkplayer использует FFmpeg и позволяет гибко настраивать параметры буферизации и декодирования, что особенно полезно при работе с низкой задержкой. 📈 media_kit - более современная кроссплатформенная библиотека, построенная на базе FFmpeg, с удобным API и хорошей поддержкой различных протоколов, включая RTSP. 📱

Для минимизации задержки воспроизведения можно использовать различные настройки, такие как настройки буферизации и декодирования, а также выбор транспортного протокола. 📊 Правильный выбор библиотеки и настройка параметров могут обеспечить быстрый старт потока, минимальную задержку и стабильную работу в практических сценариях. 📈 Статья описывает настройки плеера для оптимизации воспроизведения видео по протоколу RTSP. Для снижения задержки используется протокол UDP, который позволяет передавать данные без ожидания подтверждений, но может привести к небольшим потерям пакетов. 📊

Читать здесь: ссылка

#flutter #dart #flutterpulse #flutterpulsehabr #rtsp #videostreaming #flutterdevelopmentp
Самые лучшие обновлённые пакеты за последние 24 часа


auto_route_generator 10.4.0
Плагин для Flutter, который позволяет автоматически генерировать код для навигации по маршрутам. Убрано устаревшее сообщение.
👍 Лайки: 158, 📥 Скачиваний: 369К
https://pub.dev/packages/auto_route_generator

signals 6.3.0
Плагин для Flutter, который позволяет создавать реактивные системы в приложениях на языке Dart. Исправлена ошибка, связанная с доступом к кэшированному SignalContainer в Effect.
👍 Лайки: 604, 📥 Скачиваний: 8.8К
https://pub.dev/packages/signals

once 1.7.1
Плагин для Flutter, который позволяет запускать или отображать код/виджет один раз в определенный период времени. Обновлены зависимости, включая package_info_plus до версии ^9.0.0.
👍 Лайки: 298, 📥 Скачиваний: 3К
https://pub.dev/packages/once

auto_route 11.0.0
Плагин для Flutter, который позволяет упростить настройку маршрутов и передачу аргументов между экранами. Произошли значительные изменения: метод `redirectUntil` теперь возвращает `void` вместо `Future<T?>` и обрабатывает завершение поп-комплекта внутренне.
👍 Лайки: 3350, 📥 Скачиваний: 276К
https://pub.dev/packages/auto_route

sqlite3 3.1.1
Плагин для Flutter, который предоставляет Dart-bindings к SQLite и используется для работы с базами данных. Учтены переменные среды HTTPS_PROXY и другие при скачивании SQLite.
👍 Лайки: 419, 📥 Скачиваний: 893К
https://pub.dev/packages/sqlite3

go_router_builder 4.1.2
Плагин для Flutter, который используется для создания типобезопасных маршрутов в приложениях Flutter с помощью go_router. Обновлены поддерживаемые версии анализатора до 8.x или 9.x и минимальная поддерживаемая версия SDK до Flutter 3.32/Dart 3.8.
👍 Лайки: 270, 📥 Скачиваний: 184К
https://pub.dev/packages/go_router_builder

FlutterPulse — канал о мире Flutter!


Поддержать канал

#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #auto_route_generator #signals #once #auto_route #sqlite3 #go_router_builder
Flutter Mesh — синхронизация данных между устройствами без интернета и серверов

Представьте себе ситуацию, когда вам нужно обменяться данными с другим человеком, но у вас нет интернета. Это может произойти где угодно: в лесу, в горах или даже в городе, где связь нестабильна. Но что, если я скажу вам, что есть способ сделать это возможным? 😎

Сегодня мы поговорим о технологии Flutter Mesh, которая позволяет устройствам обмениваться данными напрямую, без использования интернета или серверов. Это открывает новые возможности для создания децентрализованных приложений, которые могут работать в любых условиях. 📱💻

🔹 Разберём, как создавать децентрализованные Flutter-приложения, которые синхронизируют данные напрямую между устройствами.
🔹 Пошагово разберём, как реализовать peer-to-peer обмен через Bluetooth, Wi-Fi Direct и WebRTC без интернета.
🔹 Покажем архитектуру Flutter Mesh, где каждое устройство становится полноценным узлом локальной сети.
🔹 Представим новую open-source библиотеку flutter_mesh, которая позволяет разработчикам быстро внедрять P2P-синхронизацию и локальные mesh-сети во Flutter-проекты.

👉 Для кого этот вебинар?
- Flutter-разработчиков, которым интересно выйти за рамки клиент-серверной модели и построить автономные сети.
- Мобильных инженеров, работающих над приложениями для офлайн-режимов, IoT-устройств и полевых сценариев.
- Разработчиков, интересующихся edge computing, mesh-архитектурами и P2P-связью.

💡 Что вы узнаете?
- Как реализовать синхронизацию данных между устройствами без сервера и интернета.
- Как использовать Bluetooth, Wi-Fi Direct и WebRTC во Flutter через плагины и FFI.
- Как проектировать и тестировать mesh-архитектуру с автоматическим обменом данными между пирами.

👉 Смотрите видео Youtube, VkVideo

👍 Посмотрите другие видео по #FlutterPulseYoutube и узнайте больше о мире Flutter!

FlutterPulse — канал о мире Flutter!

#Flutter #Dart #FlutterPulse #FlutterPulseYoutube
🔥2
Понимание свойства "mounted" в Flutter: Полное руководство
🚨 Flutter-разработчикам, внимание! Если вы хотите создавать стабильные и эффективные приложения, вам необходимо разобраться в одном из ключевых понятий Flutter — свойстве "mounted".

В этой статье вы найдёте полное руководство по использованию "mounted" для предотвращения утечек памяти и крашей в вашем приложении. Вы узнаете, что такое "mounted", зачем оно нужно, и как правильно его использовать в асинхронных операциях, анимациях и таймерах.
В статье описаны лучшие практики использования "mounted", такие как проверка состояния перед вызовом setState(), отмена подписок в методе dispose() и использование "mounted" для очистки в асинхронных callback'ах. Вы также узнаете о распространённых ошибках, таких как забывание проверить "mounted" в отложенных операциях, и научитесь использовать продвинутые шаблоны для безопасного управления состоянием.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Original article

Все подобные новости ищите по хэштегу #FlutterPulseMedium Напишите в комментариях, понравилась ли вам новая рубрика!

FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #appdevelopment #programming #softwaredevelopment
👍3
Private Named Parameters уже доступны в экспериментальном режиме Dart 🍿!
Эта фича решает проблему с приватными именами полей, позволяя инициализировать их через именованные аргументы конструктора класса.
Ранее это было невозможно, так как Dart запрещал использовать имена параметров, начинающиеся с _ (нижнего подчеркивания) в публичных конструкторах c именованными аргументами. Но теперь все меняется! 😄
Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #madteacher_channel
Обзор пакетов на тему Pagination & Lazy Loading


Firebase Pagination 4.2.0
Firebase Pagination упрощает пагинацию данных из Firebase Realtime Database и Firestore. Он позволяет эффективно и производительно получать обновления в реальном времени.
👍 Лайки: 91, 📥 Скачиваний: 1.9K
📅 Обновлено: 4 месяца назад
https://pub.dev/packages/firebase_pagination


Infinite Scroll Pagination 5.1.1
Infinite Scroll Pagination помогает реализовать бесконечную прокрутку в ваших Flutter-приложениях. Он универсален, настраиваем и легко интегрируется с любым подходом к управлению состоянием.
👍 Лайки: 3940, 📥 Скачиваний: 418K
📅 Обновлено: 3 месяца назад
https://pub.dev/packages/infinite_scroll_pagination


number_paginator 1.1.1
number_paginator позволяет легко реализовать навигацию по страницам с помощью номеров страниц в вашем Flutter-приложении. Он предлагает больше вариантов настройки и управление извне.
👍 Лайки: 107, 📥 Скачиваний: 8.2K
📅 Обновлено: 4 месяца назад
https://pub.dev/packages/number_paginator


very_good_infinite_list 0.9.0
very_good_infinite_list от Very Good Ventures позволяет легко отображать постраничную загрузку данных. Он имеет простой API, похожий на ListView.builder, и легко настраивается.
👍 Лайки: 302, 📥 Скачиваний: 17.1K
📅 Обновлено: 13 месяцев назад
https://pub.dev/packages/very_good_infinite_list


LazyIndexedStack 0.1.0
LazyIndexedStack позволяет загружать дочерние элементы лениво, только когда они нужны. Это особенно полезно, если у вас много дочерних элементов или у вас есть дочерний элемент, который загружает контент асинхронно.
👍 Лайки: 76, 📥 Скачиваний: 5.8K
📅 Обновлено: 5 месяцев назад
https://pub.dev/packages/flutter_lazy_indexed_stack


LazyLoadIndexedStack 1.2.1
LazyLoadIndexedStack позволяет лениво загружать виджеты, уменьшая время первоначальной загрузки. Он предлагает ленивую загрузку, предзагрузку и автоматическую утилизацию.
👍 Лайки: 98, 📥 Скачиваний: 15.5K
📅 Обновлено: 10 месяцев назад
https://pub.dev/packages/lazy_load_indexed_stack

#flutter #dart #pubdev #flutterpulse #FlutterPulseThemedPackages firebase_pagination infinite_scroll_pagination number_paginator very_good_infinite_list flutter_lazy_indexed_stack lazy_load_indexed_stack
Принцип подстановки Барбары Лисков: основа правильного полиморфизма в программировании 🌟
Привет, друзья! Сегодня мы поговорим о третьей букве в акрониме SOLID - L, которая означает принцип подстановки Лисков 🤔. Этот принцип гласит, что объекты подклассов должны быть взаимозаменяемы с объектами их базового класса без нарушения корректности работы программы 💻.

Почему это важно? 🤔 Нарушение LSP приводит к непредсказуемому поведению программы, код начинает проверять типы объектов с помощью if/else или is, что противоречит принципу открытости/закрытости и делает систему хрупкой 🌪. Соблюдение LSP гарантирует, что полиморфизм работает правильно и подклассы действительно являются специализацией базового класса 🔩.

Давайте рассмотрим пример нарушения LSP 🚫:

class Bird {
void fly() {
print("Flying");
}
}

class Penguin extends Bird {
@override
void fly() {
throw Exception("Cannot fly"); // Нарушение LSP
}
}

Здесь функция, принимающая Bird, ожидает, что любой потомок сможет летать. Но при подстановке пингвина код валится с ошибкой, значит, иерархия нарушает принцип Лисков 🚫.

А теперь пример правильного использования LSP 🌟:

abstract class Bird {
void move();
}

class Sparrow extends Bird {
@override
void move() {
print("Flying");
}
}

class Penguin extends Bird {
@override
void move() {
print("Swimming");
}
}

Ключевые правила LSP 📝:
✔️ Предусловия не могут быть усилены в подклассе — подкласс не должен требовать больше, чем базовый класс
✔️ Постусловия не могут быть ослаблены в подклассе — подкласс должен гарантировать как минимум то, что гарантирует базовый класс
✔️ Инварианты должны сохраняться — свойства, которые истинны для базового класса, должны оставаться истинными для подклассов
✔️ Исключения — подкласс не должен выбрасывать новые типы исключений, которые не ожидаются от базового класса

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #flutterfriendly
🔥2
Flutter-разработчикам: как использовать Dart на сервере
Вы уже умеете создавать красивые и производительные интерфейсы на Flutter, но что делать, когда нужно обработать данные на сервере или реализовать логику, не связанную с клиентом? Теперь вы можете использовать Dart не только на клиенте, но и на сервере!

В этой статье вы узнаете, как использовать Dart на сервере, почему это выгодно и как начать работать с серверным Dart уже сегодня. Вы познакомитесь с фреймворком Shelf, узнаете, как обрабатывать запросы, работать с базами данных и реализовывать API. Кроме того, вы узнаете о преимуществах использования единого языка на клиенте и сервере, а также о том, как делиться моделями между клиентом и сервером для повышения безопасности и поддерживаемости кода.

🇷🇺 Читать статью на русском
🇬🇧 Read the article in English
🌐 Читать оригинал

Все подобные новости ищите по хэштегу #FlutterPulseMedium Оцените рубрику: полезна ли она для вас?

FlutterPulse — канал о мире Flutter!

#flutter #dart #server #backend #fullstack #FlutterPulse #FlutterPulseMedium
🔥2
Самые лучшие обновлённые пакеты за последние 24 часа

webview_flutter_android 4.10.10 - плагин для интеграции веб-представлений в Android-приложения, созданные с помощью Flutter. Обновлена версия Kotlin до 2.2.21.
👍 Лайки: 49, 📥 Скачиваний: 2.8М
https://pub.dev/packages/webview_flutter_android

video_player_android 2.8.22 - плагин для проигрывания видео в Android-приложениях. Обновлена версия kotlin до 2.2.21.
👍 Лайки: 30, 📥 Скачиваний: 3.7М
https://pub.dev/packages/video_player_android

shadcn_ui 0.40.1 - пакет содержит множество настраиваемых UI-компонентов для Flutter. Исправлена проблема с применением ограничений в ShadInput и запущен форматтер Dart.
👍 Лайки: 807, 📥 Скачиваний: 26.5К
https://pub.dev/packages/shadcn_ui

app_settings 7.0.0 - плагин для открытия настроек телефона из приложения на платформах iOS и Android. Исправлены ошибки, обновлены версии Gradle и Kotlin, добавлена поддержка открытия экрана уведомлений на iOS 15.4-16.0.
👍 Лайки: 1210, 📥 Скачиваний: 780К
https://pub.dev/packages/app_settings

google_fonts 6.3.3 - плагин для использования шрифтов с fonts.google.com в приложениях Flutter. Исправлена ошибка с использованием устаревшего FontWeight.index и обновлена минимальная поддерживаемая версия SDK до Flutter 3.35/Dart 3.9.
👍 Лайки: 6340, 📥 Скачиваний: 2.4М
https://pub.dev/packages/google_fonts

shared_preferences_android 2.4.18 - плагин для хранения данных в приложениях Android с помощью SharedPreferences. Обновлена версия kotlin до 2.2.21.
👍 Лайки: 17, 📥 Скачиваний: 4.43М
https://pub.dev/packages/shared_preferences_android

FlutterPulse — канал о мире Flutter!

Поддержать канал

#Flutter #Dart #pubdev #FlutterPulse #FlutterPulseBestPackages #webview_flutter_android #video_player_android #shadcn_ui #app_settings #google_fonts #shared_preferences_android
👍1
Обновил Flutter… и сломалось пол-проекта 😐. Кто из вас сталкивался с проблемами после обновления версии Flutter? 🧑‍💻 Я решился обновить версию с 3.27 до 3.35 и, как всегда, это привело к целой серии проблем 🥲. Нужно обновить половину библиотек из pubspec.yaml, а некоторые из них уже не поддерживаются или не обновляются уже несколько лет 😭.

Причина проблем часто кроется в том, что опенсорсеры dart и Flutter библиотек забивают болт на свои проекты 🍆. Например, хранилище hive/isar, которым пользовалось большинство проектов, не обновляется уже третий год 🩷. Решение может заключаться в том, чтобы не использовать всякую срань в своем pubspec, но что делать, когда это специфичный функционал, на разработку которого уйдет много времени? 📱

Мы столкнулись с проблемой, когда библиотека social_share, которая создает историю в инсте по наждатию на одну кнопку, потеряла актуальность и нам приходится искать замену или самим форкать и дописывать библиотеку 📌. Чтобы избежать таких проблем, можно следовать нескольким пунктам:

меньше пакетов → больше контроля
критические плагины → форк + минимум нативного кода
следить за репами заранее
избегать магических «универсальных» решений

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #frezycode
😁2
Да кто такой этот ваш 2D-скролл? Федор Благодырь о реализации двунаправленного скролла во Flutter

Представьте себе таблицу или таймлайн, который можно скроллить не только вверх и вниз, но и влево и вправо. Это удобно, но реализовать такой функционал во Flutter было непросто. Раньше разработчикам приходилось использовать "костыли" или вовсе отказываться от такой функциональности.

Но теперь, благодаря усилиям команды Flutter, появился официальный способ реализации двунаправленного скролла. О нем и рассказал Федор Благодырь, тимлид команды видеоредактора Япи, на конференции Mobius.

Проблемы реализации двунаправленного скролла

👉 Динамический размер фрагментов: пользователь может менять масштаб таблицы или подрезать фрагменты аудио/видео.
👉 Списки внутри ячеек: необходимо эффективно отрисовывать списки внутри ячеек таблицы.
👉 Взаимодействие с фрагментами: пользователь может влиять на положение и пропорции фрагментов.
👉 Z-индекс (приоритет отрисовки): необходимо контролировать порядок отрисовки элементов.
👉 Анимации: необходимо контролировать анимации при изменении размеров ячеек.

Решение

Федор показал, как реализовать двунаправленный скролл с помощью кастомного рендер-объекта. Он продемонстрировал пример реализации на основе приложения с расписанием Mobius.

👉 Создание модели данных для таблицы.
👉 Описание лейаута таблицы на основе модели данных.
👉 Реализация кастомного рендер-объекта для двунаправленного скролла.

📊 Результаты

👉 Производительность увеличилась в 10 раз по сравнению с предыдущей реализацией.
👉 FPS стал стабильным на уровне 60 кадров в секунду.

Плюсы и минусы

👍 Плюсы: двунаправленный скролл, готовые реализации от команды Flutter, сумасшедший прирост производительности.
👍 Минусы: сложно, нет готового механизма по типу сливеров, мало возможности влиять на "внутрянку".

Посмотрите видео целиком на YouTube или в VkVideo

👍 Посмотрите другие видео по #FlutterPulseYoutube и узнайте больше о мире Flutter!

FlutterPulse — канал о мире Flutter!

#Flutter #Dart #FlutterPulse #FlutterPulseTips #FlutterPulseYoutube
👍1