Шесть открытых библиотек от Mad Brains, которые упростят жизнь Flutter-разработчика

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Работая над разнообразными бизнес-задачами с помощью Flutter, мы часто сталкиваемся с отсутствием готовых решений. Поэтому команда Mad Brains создает собственные и делится ими с ИТ-сообществом. В этом материале мы рассказываем, как наши библиотеки помогают Flutter-разработчикам и бизнесу.

Статья вышла в свет благодаря ведущему разработчику Flutter-направления Mad Brains Ильнару. Он и его коллеги создали и поддерживают библиотеки, о которых пойдет речь.

AppMetrica‑Push‑Flutter

Клиенту нужен был российский сервис пуш-уведомлений с поддержкой Android, iOS, Huawei. Из всего списка, что мы им представили, больше всего подошел Яндекс AppMetrica: в нем была как аналитика, так и нужные для заказчика пуши.

На этапе анализа разных сервисов мы знали, что у AppMetrica есть SDK под Flutter на pub.dev. Она состоит из двух частей:

  1. AppMetrica SDK — ядро, включающее в себя аналитику и связь с сервером AppMetrica;

  2. AppMetrica Push SDK — включает обработку пушей и интеграцию с ядром.

Проблема была в том, что плагин ядра под Flutter был хоть немного актуальным, а AppMetrica Push SDK под Flutter — нет: не поддерживался ряд возможностей, которые есть в нативном SDK и не поддерживался Huawei.

В итоге мы сделали свой плагин на основе нативных AppMetrica Push SDK с полной поддержкой всего, что возможно, и поддержкой Huawei. Оно также требует ядро AppMetrica SDK для своей работы, поэтому мы интегрировали его с готовым плагином от Яндекса AppMetrica.

Наш плагин заточен чисто под работу с пуш-кампанией Яндекса AppMetrica:

  • получение и отображение Push-уведомлений;

  • получение Silent Push-уведомлений (и автоматическое обновление токенов через Silent Push);

  • обработка payload из уведомлений;

  • отображение изображений в уведомлениях;

  • поддержка действия deeplink при открытии уведомления;

  • поддержка действия URL при открытии уведомления.

Про интеграции можно прочитать тут — https://appmetrica.yandex.ru/about/.

Для любителей видео-контента — ролики по теме на нашем YouTube-канале:

Настройка пушей в Firebase+Flutter

Кастомизация пушей в Android

Настройка пушей в iOS

Кастомизация пушей в iOS

Недавно AppMetrica Push SDK для Flutter от Яндекса обновился, но там все еще нет ряда возможностей, которые есть в нашей библиотеке, и пока нет поддержки Huawei. 

Tinkoff Acquiring

В одном из проектов нам требовалось реализовать оплату товаров с помощью банковской карты, Google Pay, Apple Pay и обязательно через российский банк. Готовых решений для Flutter не было. Поэтому мы разработали первую открытую библиотеку Тинькофф для Flutter-разработчиков. 

Функционал библиотеки:

  • проведение платежей, в том числе рекуррентных;

  • сохранение банковских карт клиента;

  • получение информации о клиенте и сохраненных картах;

  • управление сохраненными картами;

  • интеграция с онлайн-кассами;

  • оплата через Систему быстрых платежей (СБП), QR-ссылки.

Об этом SDK мы подробно писали на Хабр. Правда, с момента выхода статьи значительная часть кодовой базы обновилась.

А как создать Package, рассказываем в этом видео.

Sberbank Acquiring

Функционал похож на библиотеку Tinkoff Acquiring. История похожа: других библиотек для СберБанка на Flutter не было, поэтому написали свою. Был один нюанс — оплата у Сбера происходит только через их сайт, мы открываем окно оплаты в WebView.

Возможности созданного решения:

  • проведение платежей, в том числе рекуррентных;

  • проведение платежей через Apple Pay или Google Pay;

  • связанные платежи;

  • интеграция с онлайн-кассами.

Подробно про работу Системы быстрых платежей рассказываем тут.

Yandex Geocoder

В разработке приложения для сети химчисток BIANCA нам понадобилось определять координаты по адресу, который вводит пользователь, отображать их на карте и передавать на сервер. Так как у нас уже были планы использовать карты от Яндекса, то и сервис геокодирования решили взять от него. К сожалению, готового плагина на pub.dev не было, но зато было открытое API от Яндекса. Поэтому мы создали плагин и выложили его на pub.dev, так как мы понимали что это еще понадобится в будущем.

Геокодер позволяет по названию адреса или объекта получить точные координаты, это прямое геокодирование. Также реализовано и обратное геокодирование путем ввода координат. Кроме того, в нем присутствуют подсказки при вводе адреса или объекта, что удобно для пользователей. Есть выбор топонима (когда вводят географическое название, например, города), а также возможность ограничить поиск указанной областью.

Важное преимущество: геокодер от Яндекса умеет работать с русским языком и полностью совместим с Яндекс.Картами.

Здесь работу с геолокацией и местоположением разбираем очень подробно.

App Runner

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

App Runner реализует правильный запуск Flutter-приложения, убирая задержку первой прорисовки виджета и показывая заставку, во время которой происходит инициализация всего приложения. Также в нем реализован перехват необработанных ошибок (от Dart и Flutter), конфигурирование WidgetsBinding и Zone, переопределение экрана ошибки, возможность перезагружать дерево виджетов.

Про App Runner с подробной демонстрацией мы записали видео.

Mad Pay

Для приложения сети кинотеатров Мираж мы реализовывали покупку билетов через Apple Pay и Google Pay. Взяли единственную на тот момент библиотеку, но оказалось, что в ней есть некоторые недочеты. Сначала мы решили их поправить, и Ильнар отправил pull request (слияние моих изменений с изменениями автора). Время шло, автор не отвечал, мы начали создавать библиотеку с нуля. 

Mad Pay — это библиотека для мобильной оплаты через Apple Pay и Google Pay. Она вызывает нативное окно оплаты, в котором видно информацию о заказе и можно выбрать карту. После выбора карты и нажатия «оплатить» формируется токен, который нужно передать в банк интернет-эквайринга, в котором происходит оплата.

Немного обидный момент: в 2021 году, Google сделал похожую библиотеку. Как вы понимаете, конкурировать с Google по популярности и поддержке сложно. Но наше решение по-прежнему работает и поддерживается, поэтому можете им пользоваться.

Для тех, кто хочет посмотреть подробные разборы о Mad Pay:

Как сделать оплату Apple Pay и Google Pay

Покупки в приложениях

Разбор платежных систем для Android-устройств

Такой обзор получился от Flutter-команды Mad Brains. Рады, если наша работа облегчит жизнь другим разработчикам. Пишите в комментариях, помогли ли вам эти библиотеки, задавайте вопросы или расскажите, каких плагинов для Flutter вам не хватает.

Источник: https://habr.com/ru/post/724236/


Интересные статьи

Интересные статьи

Как известно, история банковских карт современного типа начинается в 1960 году с утюга миссис Пэрри — супруги инженера компании IBM Форреста Пэрри. Тот никак не мог приклеить полоску магнитофонной лен...
Если вы сделали опечатку, когда вводили имя ветки, вам поможет вот такая команда. Читать далее
Практически каждое событие в мировой истории сопровождается какой-нибудь цитатой, которую растаскивают по СМИ, книгам и пабликам ВК. В этом материале мы решили взять...
Не так давно я писал о закрытии моего агентства UXhot. Но до того, как это случилось, нам довелось поработать над юзабилити одного интересного стартапа. Читат...
Принято считать, что персонализация в интернете это магия, которая создается сотнями серверов на основе БигДата и сложного семантического анализа контента.