Развиваем канадский криптовалютный кошелек

  • Приложение

  • Финтех

Интро

Поддерживаем и улучшаем приложение на iOS и Android

Никита Еременко
01

Интро

Этот кейс — пример того, как мы можем бесшовно внедриться в команду заказчика

Не мы придумали и создали продукт, но мы на 100% относимся к проекту, как к своему собственному. Всеми силами стараемся усовершенствовать проект, внедрить лучшие практики и подходы.

Кейс находится под NDA, но мы с заказчиком договорились, что можем рассказать о проекте, не упоминая названия. Работа была проделана очень большая, гордимся командой и хотим, чтобы весь мир узнал о мощи наших ребят. Вместо экранов используем их фотокарточки.

02

Задача

Какие вводные были на старте

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

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

Миссия клиента — изменить отношение к деньгам во всем мире. Ребята создают новую реальность, где деньги работают на человека, а не наоборот. Мы помогаем достичь этой цели.

У вас есть похожая задача? Давайте обсудим!

03

Решение

Что делаем

Над проектом работает команда из 16 человек: разработчики, тестировщики, дизайнеры, аналитики и руководитель проекта. Рассказываем, как нам удалось усилить продукт.

Тестирование приложения Кошелек
04

iOS‑разработка

Улучшаем архитектуру

Перед началом работ приложение обладало общеизвестной проблемой iOS‑приложений, для разработки которых используется архитектурный паттерн MVC (Model View Controller), а именно — Massive-View Controller: ситуация, когда конкретный класс, отвечающий за отдельный экран/экраны раздувается до невероятных размеров, его становится сложно поддерживать и модифицировать.

Применяемые нами практики и паттерны Чистой Архитектуры (The Clean Architecture) позволяют переработать и элегантно структурировать кодовую базу для дальнейшей работы и масштабирования.

Шаблонизируем и ускоряем разработку

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

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

Заголовок

Самым захватывающим на проекте для меня является применение Clean Architecture: корректно структурировать логику взаимодействия слоев приложения порой бывает непросто, особенно в меняющемся контексте.

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

Грохотов Влад

iOS‑разработчик

Удаляем зависимости

В процессе разработки мы пытаемся отказаться от личных библиотек в пользу использования стандартных механизмов языка Swift. Это позволяет сократить время компиляции и уменьшить размер приложения в целом.

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

05

Android‑разработка

Перерабатываем архитектуру

Проделали большую работу по рефакторингу кода приложения. Изначально это был многомодульный проект с подключаемыми фиче‑модулями и отдельным сетевым SDK, это затрудняло доработку и замедляло развитие. Улучшили архитектуру, переместили весь код в один модуль, а потом снова разнесли по отдельным. Теперь у SDK свой модуль, у ресурсов свой, как и у каждого нового экрана. Такое внедрение позволило сократить время сборки с пяти до одной минуты.

Заголовок

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

Дмитрий Старчевский

Android‑разработчик

Поменялся и подход к разработке, сейчас приложение на пути к Single‑Activity архитектуре, когда навигация между экранами осуществляется через фрагменты. Проблема старого подхода была в том, что запуск Activity — полностью асинхронный процесс. Нет гарантии мгновенного запуска, невозможно его точно контролировать. Внедрение библиотеки Sesame ускорило разработку и упростило проектирование.

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

Разработка приложения Кошелек

Внедряем современные решения и подходы

Начали поддержку совершенно нового подхода к организации UI, принятого в Android‑разработке, — Compose UI. Compose позволяет описывать UI в декларативном стиле, что дает возможность переиспользовать реализованные компоненты на других экранах.

Заголовок

Самым последним нововведением стал постепенный переезд новых экранов на декларативное описание интерфейса посредством Compose.

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

Виталий Жариков

Android‑разработчик

06

Тестирование

Используем шесть видов тестирования

Разработали тестовый план проекта, внедрили шесть видов тестирования: функциональное (регрессионное, приемочное, исследовательское) и нефункциональное (UI/UX, тестирование локализации и требований).

Для автоматизации тестирования используем сервис TestRail. Он помогает ускорить прогон 900 кейсов, которые мы создали для проверки функциональности приложения.

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

Заголовок

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

Ксения Вылегжанина

QA‑инженер

07

Дизайн

Помогаем строить дизайн‑систему

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

Разработка приложения Кошелек_иллюстрация
08

Что дальше

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

Заголовок

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

Платон Культин

Руководитель проекта

09

Команда

Команда проекта

  • iOS–разработчики

    Паша Петрович, Коля Тимонин, Дима Захаров, Влад Грохотов, Саша Литвинов, Андрей Комаров, Илья Чуб, Юра Андрианов

  • Android–разработчики

    Артур Артиков, Виталий Жариков, Дима Старчевский

  • Тестировщик

    Ксения Вылегжанина, Юлия Бойко, Дарья Куркина

  • Дизайнеры

    Женя Свавильнов, Света Бельденкова

  • Руководитель проекта

    Платон Культин

01

Похожие проекты

02

Сотрудничество

Контакты

0

Мы всегда рады сотрудничеству и новым проектам.

Опишите задачу, и мы с вами свяжемся.
Или напишите в Телеграм.

Давайте знакомиться!

ВыбратьОткуда вы о нас узнали
  • Рейтинги
  • Рекомендации
  • Конференции
  • Публикации
  • Соцсети
  • Другое

Нажимая «Отправить», вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности

Ваша заявка успешно отправлена

Мы все изучим и скоро выйдем на связь