30 проектов и библиотек для Flutter-разработчиков
В этой статье — подборка полезных репозиториев GitHub и проектов, которые могут помочь начинающим в изучении Flutter, а более опытным разработчикам найти полезные библиотеки для проектов:
https://www.theinsaneapp.com/2023/03/best-flutter-github-repositories.html
#flutter @fullter_dev
В этой статье — подборка полезных репозиториев GitHub и проектов, которые могут помочь начинающим в изучении Flutter, а более опытным разработчикам найти полезные библиотеки для проектов:
https://www.theinsaneapp.com/2023/03/best-flutter-github-repositories.html
#flutter @fullter_dev
😴1
Вы задумывались о том, как работают стандартные иконки во Flutter?
В своих проектах всегда юзал пакет flutter_svg для векторной графики. И даже не думал, как обстоят дела со стандартным классом IconData.
Это шрифты!
Для чего это нужно⁉️ Этот подход имеет один большой плюс:
Шрифты иконок занимают заметно меньше места в памяти в сравнении с отдельными SVG файлами, а также они менее ресурсоемки. Также, как и с SVG, можно манипулировать размерами и цветами таких иконок прямо в коде.
Когда их не надо использовать⁉️ Если вам нужна более сложная векторная графика с градиентом цветов и с множеством слоев и деталей, то лучше использовать SVG - ведь этот подходит включает в себя полноценный язык разметки и умеет создавать более сложную графику.
Как мне добавить иконки-шрифты в проект также, как это сделали разработчики фреймворка⁉️ Для этого есть специальные инструменты. К примеру, вы можете загрузить свои SVG иконки на этот сайт, и скачать уже готовый Dart файл с нужным кодом и файлом с шрифтами (не забудьте указать путь до файла с шрифтами в pubspec.yaml). Если возникли проблемы с отображением иконок, то попробуйте для начала переконвертировать линии в своем SVG в заливки, это упростит ваши иконки.
Немного про аргументы класса⚙️ IconData
⚙️ codePoint – это целочисленное значение (int), которое представляет символ в наборе шрифтов. Оно указывает на конкретную иконку в шрифтовом файле.
⚙️ fontFamily - cтрока (String), указывающая на семейство шрифтов, из которого иконка будет браться.
⚙️ fontPackage - cтрока (String), указывающая пакет, в котором содержится семейство шрифтов.
⚙️ matchTextDirection - bool значение, указывающее, следует ли изменять направление отображения иконки в зависимости от направления текста (полезно, когда используете иконку с текстом, и надо поменять направление текста внутри иконки, к примеру, когда пользователь переключается на арабский язык, где текст читается справа налево.
📹 Можете посмотреть этот ролик на ютубе.
В своих проектах всегда юзал пакет flutter_svg для векторной графики. И даже не думал, как обстоят дела со стандартным классом IconData.
Это шрифты!
Для чего это нужно⁉️ Этот подход имеет один большой плюс:
Шрифты иконок занимают заметно меньше места в памяти в сравнении с отдельными SVG файлами, а также они менее ресурсоемки. Также, как и с SVG, можно манипулировать размерами и цветами таких иконок прямо в коде.
Когда их не надо использовать⁉️ Если вам нужна более сложная векторная графика с градиентом цветов и с множеством слоев и деталей, то лучше использовать SVG - ведь этот подходит включает в себя полноценный язык разметки и умеет создавать более сложную графику.
Как мне добавить иконки-шрифты в проект также, как это сделали разработчики фреймворка⁉️ Для этого есть специальные инструменты. К примеру, вы можете загрузить свои SVG иконки на этот сайт, и скачать уже готовый Dart файл с нужным кодом и файлом с шрифтами (не забудьте указать путь до файла с шрифтами в pubspec.yaml). Если возникли проблемы с отображением иконок, то попробуйте для начала переконвертировать линии в своем SVG в заливки, это упростит ваши иконки.
Немного про аргументы класса
Please open Telegram to view this post
VIEW IN TELEGRAM
Fluttericon
FlutterIcon - Flutter custom icons generator
Build a truetype font for use with Flutter with the necessary Dart code to use within your apps.
❤1
Возникла проблема с путями когда следовал стандартной документации установки Flutter на MacOS (ССЫЛКА).
Простое решение при написании путей к библиотеке Flutter в терминале пишем след:
sudo nano /etc/paths
далее в окне прописываем путь к нашему Flutter в моем случае это так:
/Users/uzhan/development/flutter/bin
Далее сохраняем перезапускаем
@fullter_dev #решение #macos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
Dart packages
shadcn_ui | Flutter package
shadcn/ui ported in Flutter. Awesome UI components for Flutter, fully customizable.
Хеллоу👋
🤔Недавно задумался над оптимизацией проекта и наткнулся на подкапотные механизмы Dart/Flutter и так если быть коротко то приходилось менять значения объектов очень много раз и работать с большими объемами данных и естественно созрел вопрос как это будет сказываться на производительности. Если быть точнее то придерживаться Иммутабельности объектов. Вот что удалось раскопать:
1. 👣 Создание новых объектов не такое затратное:
В Dart создание новых объектов (например, списков или состояния) — это довольно дешёвая операция. Dart использует оптимизированную систему управления памятью с "мусорщиком" (garbage collector), который эффективно управляет удалением неиспользуемых объектов. Поскольку объекты создаются быстро и удаляются из памяти, это не сильно нагружает систему в реальных сценариях работы с пользовательскими интерфейсами.
2. 👣 Flutter использует поверхностное сравнение (shallow comparison):
Если Bloc использует метод Equatable для сравнения состояний, который сравнивает только ссылки на объекты, а не сами объекты (это называется "поверхностное сравнение"). То есть, даже если ты создаешь новый список, Flutter не будет пересоздавать элементы списка, если их содержание не изменилось, а будет использовать существующие ссылки на объекты.
⚠️Однако...
Проблемы с производительностью могут возникнуть, если:
⏺️Операции слишком часты и объекты слишком большие. Например, если ты добавляешь или удаляешь большое количество элементов за короткое время.
⏺️Глубокие структуры данных: Если структура данных сложна (например, вложенные объекты), каждый раз пересоздавать большое количество вложенных объектов может быть дорогим.
@fullter_dev
🤔Недавно задумался над оптимизацией проекта и наткнулся на подкапотные механизмы Dart/Flutter и так если быть коротко то приходилось менять значения объектов очень много раз и работать с большими объемами данных и естественно созрел вопрос как это будет сказываться на производительности. Если быть точнее то придерживаться Иммутабельности объектов. Вот что удалось раскопать:
1. 👣 Создание новых объектов не такое затратное:
В Dart создание новых объектов (например, списков или состояния) — это довольно дешёвая операция. Dart использует оптимизированную систему управления памятью с "мусорщиком" (garbage collector), который эффективно управляет удалением неиспользуемых объектов. Поскольку объекты создаются быстро и удаляются из памяти, это не сильно нагружает систему в реальных сценариях работы с пользовательскими интерфейсами.
2. 👣 Flutter использует поверхностное сравнение (shallow comparison):
Если Bloc использует метод Equatable для сравнения состояний, который сравнивает только ссылки на объекты, а не сами объекты (это называется "поверхностное сравнение"). То есть, даже если ты создаешь новый список, Flutter не будет пересоздавать элементы списка, если их содержание не изменилось, а будет использовать существующие ссылки на объекты.
⚠️Однако...
Проблемы с производительностью могут возникнуть, если:
⏺️Операции слишком часты и объекты слишком большие. Например, если ты добавляешь или удаляешь большое количество элементов за короткое время.
⏺️Глубокие структуры данных: Если структура данных сложна (например, вложенные объекты), каждый раз пересоздавать большое количество вложенных объектов может быть дорогим.
@fullter_dev
Forwarded from Flutter Pulse
🚀 Dart 3.7 уже здесь! 🚀
🔥 Что нового? 🔥
💡 Records & Patterns стали мощнее – теперь можно использовать unnamed record fields и объединять несколько переменных сразу. Это делает код лаконичнее и читабельнее.
⚡ Обновления в dartaotruntime – теперь поддерживается AOT-компиляция, что ускоряет запуск и делает работу с Dart еще удобнее.
🐞 Исправления:
✅ HttpServer теперь корректно кодирует заголовки Content-Type.
✅ dart format правильно обрабатывает цифровые разделители.
✅ dart fix исправляет баги в многофайловых проектах.
🛠 Советы по миграции:
🔹 Обновите SDK в pubspec.yaml:
🔹 Запустите dart pub get перед форматированием кода.
🔹 Используйте dart fix вместо dart format --fix для лучшей совместимости.
📢 Полный changelog: Dart 3.7 Changelog
📢 Breaking changes: Изменения в 3.7.0
📢 Подробная статья на Хабре: Dart 3.7 – что нового?
⚡ Dart 3.7 делает язык выразительнее, а инструменты — умнее. Пора обновляться! 💙
#dart #flutter #flutterpulse #update 🚀
🔥 Что нового? 🔥
💡 Records & Patterns стали мощнее – теперь можно использовать unnamed record fields и объединять несколько переменных сразу. Это делает код лаконичнее и читабельнее.
⚡ Обновления в dartaotruntime – теперь поддерживается AOT-компиляция, что ускоряет запуск и делает работу с Dart еще удобнее.
🐞 Исправления:
✅ HttpServer теперь корректно кодирует заголовки Content-Type.
✅ dart format правильно обрабатывает цифровые разделители.
✅ dart fix исправляет баги в многофайловых проектах.
🛠 Советы по миграции:
🔹 Обновите SDK в pubspec.yaml:
sdk: '^3.7.0' 🔹 Запустите dart pub get перед форматированием кода.
🔹 Используйте dart fix вместо dart format --fix для лучшей совместимости.
📢 Полный changelog: Dart 3.7 Changelog
📢 Breaking changes: Изменения в 3.7.0
📢 Подробная статья на Хабре: Dart 3.7 – что нового?
⚡ Dart 3.7 делает язык выразительнее, а инструменты — умнее. Пора обновляться! 💙
#dart #flutter #flutterpulse #update 🚀
Forwarded from Мобильная разработка
This media is not supported in your browser
VIEW IN TELEGRAM
Учим алгоритмы без боли — интерактивный тренажер VisualGo поможет прокачаться в этой сложной теме. Он покажет алгоритмы В ДЕЙСТВИИ.
• Пояснения простые — поймет даже новичок.
• Есть все языки для мобильных разрабов, чтобы практиковаться и стать еще круче.
• Примеры только из реальных задач
• Бесплатно и без регистрации
Мастхев перед каждым собесом — тут.
• Пояснения простые — поймет даже новичок.
• Есть все языки для мобильных разрабов, чтобы практиковаться и стать еще круче.
• Примеры только из реальных задач
• Бесплатно и без регистрации
Мастхев перед каждым собесом — тут.
Ультимативный чек-лист по тестированию мобильных приложений — обозначил самые мощные «болевые точки», чтобы вы сверялись с гайдом при разработке и не сливали свои проги из-за мелких ошибок.
• Функциональное тестирование — проверка всех кнопок, форм, логина
• Совместимость — чтобы на Xiaomi 2019 все шло, как на новом айфоне.
• Локализация — даты, валюты, язык — все по правилам.
• Интеррапты — что будет, если кто-то позвонит во время заказа пиццы.
• Производительность — не разрядится ли телефон из-за вашей кнопки «Оформить».
• Пользовательский опыт — чтобы юзер не снес приложение через минуту.
Главное, все делать ДО РЕЛИЗА. Потому что баги — это не просто неудобно. Это — минус в рейтинге, отвалившиеся пользователи и потерянные деньги
• Функциональное тестирование — проверка всех кнопок, форм, логина
• Совместимость — чтобы на Xiaomi 2019 все шло, как на новом айфоне.
• Локализация — даты, валюты, язык — все по правилам.
• Интеррапты — что будет, если кто-то позвонит во время заказа пиццы.
• Производительность — не разрядится ли телефон из-за вашей кнопки «Оформить».
• Пользовательский опыт — чтобы юзер не снес приложение через минуту.
Главное, все делать ДО РЕЛИЗА. Потому что баги — это не просто неудобно. Это — минус в рейтинге, отвалившиеся пользователи и потерянные деньги
Forwarded from Flutter Pulse
Flutter: Архитектура Приложений и Лучшие Практики
🚀 Хотите создать масштабируемое и поддерживаемое приложение на Flutter? 🤔
В этой статье рассматривается архитектурный подход к созданию приложения Flutter с использованием Clean Architecture, принципов SOLID и Riverpod для управления состоянием. На примере функции Crypto Watch-list показано, как реализовать эти принципы на практике. Кроме того, рассматриваются ключевые нефункциональные требования (NFR) как лучшие практики для обеспечения надежности, масштабируемости и поддерживаемости приложения.
Статья охватывает такие темы, как:
✨ Разделение приложения на слои (Presentation, Domain, Data) в соответствии с Clean Architecture
✨ Использование Riverpod для управления состоянием и реализации принципов SOLID
✨ Реализация функций, таких как кэширование данных, отмена запросов API и автоматический повтор при восстановлении сети
✨ Оптимизация обновлений списка для минимизации перестроений UI
Ознакомьтесь с полной статьей, чтобы узнать больше о создании надежных и масштабируемых приложений на Flutter:
🇷🇺 Статья на русском языке
🇬🇧 Статья на английском языке
🌐 Оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨ Напишите, понравилась ли вам новая рубрика!
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #apparchitecture #cleanarchitecture #riverpod #statemanagement #softwareengineering
🚀 Хотите создать масштабируемое и поддерживаемое приложение на Flutter? 🤔
В этой статье рассматривается архитектурный подход к созданию приложения Flutter с использованием Clean Architecture, принципов SOLID и Riverpod для управления состоянием. На примере функции Crypto Watch-list показано, как реализовать эти принципы на практике. Кроме того, рассматриваются ключевые нефункциональные требования (NFR) как лучшие практики для обеспечения надежности, масштабируемости и поддерживаемости приложения.
Статья охватывает такие темы, как:
✨ Разделение приложения на слои (Presentation, Domain, Data) в соответствии с Clean Architecture
✨ Использование Riverpod для управления состоянием и реализации принципов SOLID
✨ Реализация функций, таких как кэширование данных, отмена запросов API и автоматический повтор при восстановлении сети
✨ Оптимизация обновлений списка для минимизации перестроений UI
Ознакомьтесь с полной статьей, чтобы узнать больше о создании надежных и масштабируемых приложений на Flutter:
🇷🇺 Статья на русском языке
🇬🇧 Статья на английском языке
🌐 Оригинал
Все подобные новости ищите по хэштегу #FlutterPulseMedium ✨ Напишите, понравилась ли вам новая рубрика!
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #FlutterPulseMedium #mobiledevelopment #apparchitecture #cleanarchitecture #riverpod #statemanagement #softwareengineering
Forwarded from Flutter Pulse
Обзор пакетов на тему Responsive UI
Easy Sidemenu 0.7.1
Easy Sidemenu - это легкий в использовании пакет для Flutter, который позволяет создавать боковые меню для навигации в вашем приложении. Он прост в интеграции и настройке, что делает его удобным для использования в различных проектах.
👍 Лайки: 7460, 📥 Скачиваний: 2.4M
📅 Обновлено: 5 месяцев назад
https://pub.dev/packages/easy_sidemenu
Sizer 3.1.3
Sizer - пакет, который автоматически адаптирует интерфейс вашего приложения к любому размеру экрана. Он упрощает процесс создания адаптивного дизайна в Flutter.
👍 Лайки: 1760, 📥 Скачиваний: 118K
📅 Обновлено: 3 месяца назад
https://pub.dev/packages/sizer
Simple Grid 0.1.5
Simple Grid - пакет, который предоставляет динамическую сетку, похожую на Bootstrap Grid, но с размерами, соответствующими точкам разрыва Material UI. Он прост в использовании и основан на media queries.
👍 Лайки: 79, 📥 Скачиваний: 357
📅 Обновлено: 11 месяцев назад
https://pub.dev/packages/simple_grid
Size Helper 2.1.0
Size Helper - пакет, который позволяет создавать адаптивный UI с большим контролем над компонентами, в зависимости от размера экрана. Он предоставляет простой и удобный способ задавать разные параметры UI для разных размеров экрана.
👍 Лайки: 58, 📥 Скачиваний: 397
📅 Обновлено: 13 месяцев назад
https://pub.dev/packages/size_helper
Overflow View 0.5.0
Overflow View - виджет для Flutter, который отображает дочерние элементы в строку с индикатором переполнения, если места не хватает. Он полезен для создания адаптивного интерфейса.
👍 Лайки: 219, 📥 Скачиваний: 20.3K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/overflow_view
Flutter Admin Scaffold 1.4.0
Flutter Admin Scaffold - пакет для создания админских панелей в Flutter. Он позволяет легко реализовать боковую панель с меню, заголовком и футером.
👍 Лайки: 205, 📥 Скачиваний: 791
📅 Обновлено: 11 месяцев назад
https://pub.dev/packages/flutter_admin_scaffold
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #EasySidemenu #Sizer #SimpleGrid #SizeHelper #OverflowView #FlutterAdminScaffold
Easy Sidemenu 0.7.1
Easy Sidemenu - это легкий в использовании пакет для Flutter, который позволяет создавать боковые меню для навигации в вашем приложении. Он прост в интеграции и настройке, что делает его удобным для использования в различных проектах.
👍 Лайки: 7460, 📥 Скачиваний: 2.4M
📅 Обновлено: 5 месяцев назад
https://pub.dev/packages/easy_sidemenu
Sizer 3.1.3
Sizer - пакет, который автоматически адаптирует интерфейс вашего приложения к любому размеру экрана. Он упрощает процесс создания адаптивного дизайна в Flutter.
👍 Лайки: 1760, 📥 Скачиваний: 118K
📅 Обновлено: 3 месяца назад
https://pub.dev/packages/sizer
Simple Grid 0.1.5
Simple Grid - пакет, который предоставляет динамическую сетку, похожую на Bootstrap Grid, но с размерами, соответствующими точкам разрыва Material UI. Он прост в использовании и основан на media queries.
👍 Лайки: 79, 📥 Скачиваний: 357
📅 Обновлено: 11 месяцев назад
https://pub.dev/packages/simple_grid
Size Helper 2.1.0
Size Helper - пакет, который позволяет создавать адаптивный UI с большим контролем над компонентами, в зависимости от размера экрана. Он предоставляет простой и удобный способ задавать разные параметры UI для разных размеров экрана.
👍 Лайки: 58, 📥 Скачиваний: 397
📅 Обновлено: 13 месяцев назад
https://pub.dev/packages/size_helper
Overflow View 0.5.0
Overflow View - виджет для Flutter, который отображает дочерние элементы в строку с индикатором переполнения, если места не хватает. Он полезен для создания адаптивного интерфейса.
👍 Лайки: 219, 📥 Скачиваний: 20.3K
📅 Обновлено: 6 месяцев назад
https://pub.dev/packages/overflow_view
Flutter Admin Scaffold 1.4.0
Flutter Admin Scaffold - пакет для создания админских панелей в Flutter. Он позволяет легко реализовать боковую панель с меню, заголовком и футером.
👍 Лайки: 205, 📥 Скачиваний: 791
📅 Обновлено: 11 месяцев назад
https://pub.dev/packages/flutter_admin_scaffold
FlutterPulse — канал о мире Flutter!
#flutter #dart #pubdev #flutterpulse #EasySidemenu #Sizer #SimpleGrid #SizeHelper #OverflowView #FlutterAdminScaffold
Заголовок: Я больше не хочу верстать чеки в коде. И вам не советую. 🛑
Коллеги, давайте честно: кто из вас любит верстать инвойсы или чеки на Flutter через стандартный пакет pdf?
Это всегда одно и то же: ты полчаса подбираешь SizedBox и Padding, чтобы логотип не съехал, потом пересобираешь проект, понимаешь, что промахнулся на пару пикселей, и начинаешь заново. А на утро заказчик просит поменять шрифт или передвинуть имя кассира. И ты снова лезешь в код.
Я работаю над крупным торговым проектом и в какой-то момент мне это просто надоело. Дизайн документа — это не задача программиста.
👣 Так родился pdf_kit_editor.
Это визуальный конструктор, который можно встроить прямо в ваше приложение. Дайте админу Drag-and-Drop редактор, пусть он сам настраивает шаблоны, а вы просто «вливайте» в них данные.
Что я туда заложил:
🧬 Умное связывание: Поддержка вложенных данных через точку (например, customer.address.city). Больше никаких ручных маппингов.
🖼 Авто-магия с картинками: Просто передайте путь к локальному файлу или URL — пакет сам подтянет и отрендерит изображения.
✨ Живой предпросмотр: PDF обновляется в реальном времени прямо в процессе редактирования. Видишь результат сразу.
📏 Любые форматы: От термоленты 58/80мм для чеков до А4 или вообще своего кастомного размера под специфические наклейки.
📊 Таблицы, которые не бесят: Автоматический цикл по списку товаров с гибкой настройкой колонок.
👁 Условная видимость: Элемент (например, «Скидка») скроется автоматически, если данных по нему нет.
🅰️ Google Fonts: Roboto, Montserrat и другие — кириллица и спецсимволы работают «из коробки».
💾 Гибкое сохранение: Пакет может сам сохранять шаблоны в SharedPreferences для прототипа или отдавать вам JSON для вашей БД.
Для меня это был вызов — сделать инструмент мощным, но при этом «легким». Внутри нет тяжелых стейт-менеджеров, так что пакет не раздует ваш проект.
Если вы тоже устали от pw.Column для каждого чека — залетайте, пробуйте. Буду очень рад звездам на GitHub и любому фидбеку! 🤝
🔗 Ссылка на пакет: [https://pub.dev/packages/pdf_kit_editor]
#flutter #dart #productivity #developer #opensource #pdf #b2b #coding
Коллеги, давайте честно: кто из вас любит верстать инвойсы или чеки на Flutter через стандартный пакет pdf?
Это всегда одно и то же: ты полчаса подбираешь SizedBox и Padding, чтобы логотип не съехал, потом пересобираешь проект, понимаешь, что промахнулся на пару пикселей, и начинаешь заново. А на утро заказчик просит поменять шрифт или передвинуть имя кассира. И ты снова лезешь в код.
Я работаю над крупным торговым проектом и в какой-то момент мне это просто надоело. Дизайн документа — это не задача программиста.
Это визуальный конструктор, который можно встроить прямо в ваше приложение. Дайте админу Drag-and-Drop редактор, пусть он сам настраивает шаблоны, а вы просто «вливайте» в них данные.
Что я туда заложил:
🧬 Умное связывание: Поддержка вложенных данных через точку (например, customer.address.city). Больше никаких ручных маппингов.
🖼 Авто-магия с картинками: Просто передайте путь к локальному файлу или URL — пакет сам подтянет и отрендерит изображения.
✨ Живой предпросмотр: PDF обновляется в реальном времени прямо в процессе редактирования. Видишь результат сразу.
📏 Любые форматы: От термоленты 58/80мм для чеков до А4 или вообще своего кастомного размера под специфические наклейки.
📊 Таблицы, которые не бесят: Автоматический цикл по списку товаров с гибкой настройкой колонок.
👁 Условная видимость: Элемент (например, «Скидка») скроется автоматически, если данных по нему нет.
🅰️ Google Fonts: Roboto, Montserrat и другие — кириллица и спецсимволы работают «из коробки».
💾 Гибкое сохранение: Пакет может сам сохранять шаблоны в SharedPreferences для прототипа или отдавать вам JSON для вашей БД.
Для меня это был вызов — сделать инструмент мощным, но при этом «легким». Внутри нет тяжелых стейт-менеджеров, так что пакет не раздует ваш проект.
Если вы тоже устали от pw.Column для каждого чека — залетайте, пробуйте. Буду очень рад звездам на GitHub и любому фидбеку! 🤝
#flutter #dart #productivity #developer #opensource #pdf #b2b #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥2
Тот случай, когда реальность круче планов. ✨
Зашел в Flutter Pulse почитать новости, а наткнулся на пост про свой пакет pdf_kit_editor.
Неожиданно? Максимально.
Приятно? Не то слово.
Эффект неожиданности 10/10. Когда твои наработки замечают те, на ком держится комьюнити, понимаешь — бессонные ночи над кодом были не зря. Двигаемся выше! 💎
🔗 Ссылка на статью
Зашел в Flutter Pulse почитать новости, а наткнулся на пост про свой пакет pdf_kit_editor.
Неожиданно? Максимально.
Приятно? Не то слово.
Эффект неожиданности 10/10. Когда твои наработки замечают те, на ком держится комьюнити, понимаешь — бессонные ночи над кодом были не зря. Двигаемся выше! 💎
Please open Telegram to view this post
VIEW IN TELEGRAM
Developer's Notes
Photo
Ловим свежий апдейт конструктора PDF-шаблонов. Что завез в этот раз?👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Dart packages
pdf_kit_editor | Flutter package
A visual PDF template builder for Flutter to create receipts, documents, and reports using a drag-and-drop experience with Google Fonts and dynamic data support.
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Method 🆚 Class
При работе с Flutter и попытке оптимизировать код пользовательского интерфейса большинство из нас просто используют вспомогательные методы.
Реми Русселе создатель Riverpod и Provider, однажды сказал:
Константные классы гораздо более стабильны и компактны.
С вспомогательными методами каждый раз при перерисовке пользовательского интерфейса метод вызывается снова. Таким образом, это своего рода трата ресурсов процессора.
Но с const Flutter выделяет память один раз и просто повторно использует кэшированный экземпляр при следующих рендерингах.
При работе с Flutter и попытке оптимизировать код пользовательского интерфейса большинство из нас просто используют вспомогательные методы.
Реми Русселе создатель Riverpod и Provider, однажды сказал:
Классы имеют лучшее поведение по умолчанию. Единственное реальное преимущество методов — это написание немного меньшего количества кода, функционального преимущества нет
Константные классы гораздо более стабильны и компактны.
С вспомогательными методами каждый раз при перерисовке пользовательского интерфейса метод вызывается снова. Таким образом, это своего рода трата ресурсов процессора.
Но с const Flutter выделяет память один раз и просто повторно использует кэшированный экземпляр при следующих рендерингах.
Please open Telegram to view this post
VIEW IN TELEGRAM