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

  • Приложение

  • Финтех

Intro

Поддерживаем и улучшаем приложение на 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

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

Контакты

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

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

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

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

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

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

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