Швейцарский нож: 11 нужных Flutter-библиотек

0
418

Flutter озаряет светом кроссплатформенной разработки Android, iOS, Windows, macOS, Linux со всеми производными, Fuchsia на оригинальном ядре и даже веб. Его поклонникам не нужно описывать преимущества и недостатки такого подхода, хотя есть и те, и другие.

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

Чтобы получить звание Дарт Флаттера (если вы понимаете, о чём мы), надо подняться по дереву практических навыков. Занять правильную высоту для покорения кроссплатформы помогут эти десять проверенных библиотек. Если вы их уже знаете, поделитесь с младшими товарищами.

Provider

pub.dev/packages/provider

Библиотека управления состоянием, то есть данными для отображения интерфейса приложения.

Provider использует InheritedWidget для распространения изменений по дереву виджетов, что упрощает доступ и обновление состояния компонентов. Для многих кейсов снимает необходимость в сложных решениях, таких как Redux или MobX, что приводит к более удобному в обслуживании коду. Этого хватает не всегда, но если хватает, не нужно усложнять.

WebView for Flutter

pub.dev/packages/webview_flutter

С помощью WebView Flutter вы можете добавить виджеты веб-контента в приложение на Flutter для Android и iOS. В iOS виджет работает с WKWebView, а в Android — c WebView. Плагин может отображать виджеты Flutter, вроде раскрывающегося меню, поверх веба.

dio

pub.dev/packages/dio

Мощный HTTP-клиент для Dart и Flutter с поддержкой выполнения HTTP-запросов и асинхронной обработки ответов. Среди достоинств есть интуитивный API для выполнения распространённых операций, таких как GET, POST, PUT и DELETE.

Dio поддерживает такие функции, как отмена запросов, перехватчики и обработка составных данных, что делает его пригодным для самых разных сетевых задач.

bloc

pub.dev/packages/flutter_bloc

Библиотека управления состоянием, которая работает с  шаблоном проектирования компонентов бизнес-логики (Business Logic Component, BLoC), а именно отделяет UI от логики. Это способствует чёткому разделению задач и на выходе даёт модульный код, простой в тестировании и использовании в других проектах.

Bloc также даёт мощную абстракцию для управления состоянием приложения, обработки событий и ответного обновления пользовательского интерфейса.

GetX

pub.dev/packages/get

Лёгкая и универсальная библиотека для управления состоянием, маршрутизации, внедрения зависимостей и многого другого. Она предоставляет краткий API для общих задач без необходимости внешних зависимостей. Популярным это решение делают реактивный подход, интуитивная система маршрутизации и мощный контейнер внедрения зависимостей.

fluttertoast

pub.dev/packages/fluttertoast

Гибкая библиотека всплывающих уведомлений. Показывает ненавязчивые всплывающие сообщения в нижней части экрана, чтобы оповещать пользователя о любых изменениях. Fluttertoast поддерживает настройку продолжительности всплывающих уведомлений, цвета фона, стиля текста и анимации.

flutter_svg

pub.dev/packages/flutter_svg

Это решение включает рендеринг изображений в формате масштабируемой векторной графики. В результате разработчик может интегрировать поддержку SVG и заодно обеспечить приложение плодами их рендеринга без привязки к разрешению.

Библиотека открывает и другие функции, такие как цветовые фильтры, преобразования и обработка событий, что делает её ценным инструментом для создания динамических и интерактивных интерфейсов.

Logger

pub.dev/packages/logger

Разработчики описывают эту библиотеку как «небольшой, простой в использовании и расширяемый логгер, который печатает красивые логи»‎. И добавляют, что вдохновение черпали в логгере для Android. Такую лаконичность не хочется портить.

flutter_secure_storage

pub.dev/packages/flutter_secure_storage

Плагин безопасного хранилища Flutter позволяет надёжно хранить конфиденциальные данные, такие как токены аутентификации, ключи API и учетные данные пользователя.

Здесь стоит отметить кроссплатформенный API для шифрования и безопасного хранения информации на устройстве с защитой от несанкционированного доступа и подделки. Простой API для чтения, записи и удаления данных упрощает внедрение передовых методов защиты в приложениях.

Cached network image

pub.dev/packages/cached_network_image

Эта библиотека нужна для эффективной загрузки и кэширования изображений с сетевых URL-адресов. Виджет CachedNetworkImage автоматически извлекает изображения с дистанционных URL-адресов и кэширует их локально для повышения производительности и экономии трафика.

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

Flutter Swiper

pub.dev/packages/flutter_swiper

Библиотека для создания пролистываемых и прокручиваемых элементов с поддержкой настраиваемой анимации и эффектов. Позволяет разработчикам с лёгкостью делать интерфейсы в стиле каруселей, галерей изображений, слайдеров в продуктовых карточках и так далее.

Swiper поддерживает горизонтальную и вертикальную прокрутку, бесконечный цикл, нумерацию страниц и обнаружение жестов, что делает его универсальным решением для создания привлекательных, ярких интерфейсов.

Firebase

firebase.google.com

Бонус для тех, кто вышел из гибернации. Firebase — не библиотека, это целая платформа backend-as-a-service (BaaS) от Google с поддержкой собственных библиотек. Огромный must know и must have для создания и масштабирования мобильных приложений.

Плагины Firebase добавляют в проекты облачные базы данных, аутентификацию, аналитику, синхронизацию в реальном времени, обмен сообщениями, аналитику сбоев, отслеживание производительности и уведомления, позволяя вместо написания всего этого сосредоточиться на пользовательском опыте.

***

Экосистема Flutter может похвастаться обилием возможностей. Начав с отобранных нами, вы сможете быстро оптимизировать работу, расширить функциональность продуктов и обеспечить им исключительный пользовательский опыт одновременно на нескольких платформах. Это касается инженерной части. А как подойти к вопросам продуктового развития, читайте в других статьях Spider Group.

Далее: Разработка, управляемая данными: data driven в жизненном цикле ПО

В Spider Group на вас работает более чем двадцатилетний опыт в разработке мобильных приложений, веб-разработке, серверных проектах, дополненной реальности, искусственном интеллекте и интернете вещей.