Flutter озаряет светом кроссплатформенной разработки Android, iOS, Windows, macOS, Linux со всеми производными, Fuchsia на оригинальном ядре и даже веб. Его поклонникам не нужно описывать преимущества и недостатки такого подхода, хотя есть и те, и другие.
Впрочем, если вы зашли сюда с правами джуна, слушайте: Flutter ускоряет разработку под зоопарк экосистем, он производительный и он экономный, хотя всё относительно. Наконец, Flutter открывает целый мир библиотек, с которыми можно сделать почти всё, что придёт в голову.
Чтобы получить звание Дарт Флаттера (если вы понимаете, о чём мы), надо подняться по дереву практических навыков. Занять правильную высоту для покорения кроссплатформы помогут эти десять проверенных библиотек. Если вы их уже знаете, поделитесь с младшими товарищами.
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
Мощный HTTP-клиент для Dart и Flutter с поддержкой выполнения HTTP-запросов и асинхронной обработки ответов. Среди достоинств есть интуитивный API для выполнения распространённых операций, таких как GET, POST, PUT и DELETE.
Dio поддерживает такие функции, как отмена запросов, перехватчики и обработка составных данных, что делает его пригодным для самых разных сетевых задач.
bloc
→ pub.dev/packages/flutter_bloc
Библиотека управления состоянием, которая работает с шаблоном проектирования компонентов бизнес-логики (Business Logic Component, BLoC), а именно отделяет UI от логики. Это способствует чёткому разделению задач и на выходе даёт модульный код, простой в тестировании и использовании в других проектах.
Bloc также даёт мощную абстракцию для управления состоянием приложения, обработки событий и ответного обновления пользовательского интерфейса.
GetX
Лёгкая и универсальная библиотека для управления состоянием, маршрутизации, внедрения зависимостей и многого другого. Она предоставляет краткий API для общих задач без необходимости внешних зависимостей. Популярным это решение делают реактивный подход, интуитивная система маршрутизации и мощный контейнер внедрения зависимостей.
fluttertoast
→ pub.dev/packages/fluttertoast
Гибкая библиотека всплывающих уведомлений. Показывает ненавязчивые всплывающие сообщения в нижней части экрана, чтобы оповещать пользователя о любых изменениях. Fluttertoast поддерживает настройку продолжительности всплывающих уведомлений, цвета фона, стиля текста и анимации.
flutter_svg
→ pub.dev/packages/flutter_svg
Это решение включает рендеринг изображений в формате масштабируемой векторной графики. В результате разработчик может интегрировать поддержку SVG и заодно обеспечить приложение плодами их рендеринга без привязки к разрешению.
Библиотека открывает и другие функции, такие как цветовые фильтры, преобразования и обработка событий, что делает её ценным инструментом для создания динамических и интерактивных интерфейсов.
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 — не библиотека, это целая платформа backend-as-a-service (BaaS) от Google с поддержкой собственных библиотек. Огромный must know и must have для создания и масштабирования мобильных приложений.
Плагины Firebase добавляют в проекты облачные базы данных, аутентификацию, аналитику, синхронизацию в реальном времени, обмен сообщениями, аналитику сбоев, отслеживание производительности и уведомления, позволяя вместо написания всего этого сосредоточиться на пользовательском опыте.
***
Экосистема Flutter может похвастаться обилием возможностей. Начав с отобранных нами, вы сможете быстро оптимизировать работу, расширить функциональность продуктов и обеспечить им исключительный пользовательский опыт одновременно на нескольких платформах. Это касается инженерной части. А как подойти к вопросам продуктового развития, читайте в других статьях Spider Group.
Далее: Разработка, управляемая данными: data driven в жизненном цикле ПО
В Spider Group на вас работает более чем двадцатилетний опыт в разработке мобильных приложений, веб-разработке, серверных проектах, дополненной реальности, искусственном интеллекте и интернете вещей.