19 июня 2023

Разработка на Flutter: MVP аграрного маркетплейса

За 5 лет Flutter стал популярным языком для кроссплатформенной разработки. Связано это с его технической составляющей: удобная среда обеспечивает скорость разработки и хороший пользовательский опыт с различными анимациями, плавными переходами и т.д. Так, можно создавать мобильное приложение на уровне нативных и затрачивать на это ресурсов меньше на 20–50%. К тому же во Flutter сразу предусмотрена адаптация дизайна под веб- и десктоп-приложения.

image12.pngКроссплатформенные мобильные фреймворки, используемые разработчиками по всему миру (2019–2022). Источник

Расскажем на примере, как реализовали MVP маркетплейса на Flutter с нуля.

Задача
Создать универсальное IT-решение для аграрного маркетплейса с интуитивно понятной панелью объявлений и простым поиском. Это позволит объединить в одном мобильном приложении все предложения аграрного рынка.

Вводные данные: идея и подтвержденная «боль» от участников рынка
Аграрии используют многочисленные чаты в мессенджерах для обмена объявлениями о покупке или продаже сельхозпродукции. Однако поиск нужных товаров зачастую занимает большое количество времени. На основе анализа рынка наш клиент решил упростить этот процесс с помощью IT.

Почему выбрали Flutter

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

На выбор в пользу Flutter также оказали влияние и другие факторы.

Экономия в реализации. Если бы мы выбрали нативную разработку, нам бы потребовалось две команды для iOS и Android. И обеими надо управлять. При этом идентичных приложений мы бы не получили. Разработку в этом случае можно сравнить с написанием сочинения «Как я провел лето»: два закадычных друга по одному и тому же плану выдадут разный результат, хоть и были все время вместе. А на Flutter одна кодовая база, дизайн-система Material Design обеспечивает согласованность и единообразие пользовательского интерфейса на всех устройствах, что упрощает дизайн и тестирование приложений. 

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

То есть разработка, интеграция с бэком, дизайн и тестирование нужны «в одном экземпляре». Конечно, это экономит время и деньги.

Это нам и было нужно. Не было смысла в удвоенных тратах, когда у клиента еще не было «наработанной» аудитории, а ее предпочтения только предстояло выяснить.

К тому же, если приложение заблокируют на iOS, заказчик не потеряет деньги и не выбросит код в мусорку.

Ограничения Flutter не касались продукта заказчика. Теоретически на Flutter можно решать почти любые задачи за некоторым исключением:

  • Он не подходит для всего, что связано с видеопотоками и перфомансом. Сюда относятся игры, AR, VR, плееры и т.п.
  • Также нельзя реализовать продукты, где требуется ручное управление памятью, например, Photoshop.
  • Фреймворк не рассчитан на мега-нагрузку, которая происходит если аудитория очень широкая, как в Ozon, например.

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

Как развивали идею заказчика

На старте мы подключились к проекту как выделенная команда: аккаунт-менеджер, Backend-, Flutter-разработчики и дизайнер. Со стороны клиента взаимодействовали с продакт-оунером.

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

Опираясь на наш опыт, для ускорения процессов мы предложили взять управление на себя – и клиент нас в этом поддержал. В результате к задаче подключились проектный менеджер и аналитик.

Мы сформировали список наиболее необходимых функций для реализации MVP-версии:

  • аутентификация через сервис заказчика,
  • профиль пользователя и организации,
  • сделки,
  • поиск по ключевым словам,
  • push-сообщения,
  • аналитика (firebase).

Решение

Сделки – основная функция приложения – совершаются в чатах. Для этой задачи клиент выбрал протокол Xmpp, поэтому наши Flutter-разработчики обратились к библиотеке Xmpp_stone. Чтобы пользователям было максимально удобно договариваться о сделках, мы также реализовали отдельные функции, которые изначально не были предусмотрены в протоколе Xmpp. Среди них: поддержка истории сообщений, групповых чатов и функция обмена файлами (фото, документы).

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

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

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

Результат
За 6 месяцев создали MVP аграрного маркетплейса: продукт готов к выходу на рынок и рассчитан на 5 тысяч активных пользователей. Конечные пользователи смогут покупать и продавать разнообразную сельхозпродукцию, а заказчик – своевременно модифицировать приложение.

Flutter – про гибкость и адаптивность

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

Например, заказчики также стали обращаться к нам для создания сайтов на Flutter. В этом случае можно переиспользовать часть кода для десктоп- и мобильных приложений. Кроме того, зачем создавать три приложения для Linux, Windows и macOS, когда можно сделать одно? Аналогично и для мобильных ОС. Сейчас Flutter доступен и для встроенных устройств: часы, браслеты.

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

Смотрите больше кейсов по мобильной разработке на iOS и Android.

Ринат
руководитель направления мобильной разработки
Ринат
руководитель направления мобильной разработки
Понравилась статья?
Подпишитесь на рассылку SimbirSoft! Пришлём письма о лайфхаках в разработке, поделимся опытом управления командами и компанией, а также расскажем о новых ивентах SimbirSoft.

Другие статьи

SimbirSoft — участник рейтинга «Лидеры информационных технологий для промышленности — 2024»
02 мая 2024
Вебинар “Анализировать нельзя разрабатывать. Лекарство от хаоса в разработке”
05 апреля 2024
SimbirSoft и Синара Лаб – партнеры по внедрению коробочного решения «Цифровой рубль»
04 апреля 2024
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Middle Fullstack QA Engineer (Mobile)
  • Python-paзработчик
  • Java-разработчик
  • Angular-разработчик
  • PHP-разработчик
  • Системный аналитик
  • C#-разработчик
  • Android-разработчик
  • Инженер по нагрузочному тестированию
  • Golang-разработчик
  • DevOps-инженер
  • 1С-аналитик
  • 1C QA Engineer
  • Разработчик на C++
  • DWH-разработчик
  • Data Scientist
  • SDET (Python)
  • Менеджер по продажам IT SaaS
  • QA Engineer Fullstack (Java/Kotlin)
  • IT-рекрутер
  • SMM-менеджер
  • Бизнес-аналитик
  • Аналитик DWH
  • Team Lead Java
  • Менеджер проектов 1С
  • Руководитель отдела Backend
  • Руководитель отдела Frontend
  • SDET (Java)
  • Менеджер по продажам IT продуктов
  • SAP-аналитик
  • SDET (JavaScript)
  • SDET Python (мобильные приложения)
  • Руководитель отдела Frontend
  • 3D-дизайнер
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.