Развиваем канадский криптовалютный кошелек
Приложение
Финтех
Интро
Поддерживаем и улучшаем приложение на iOS и Android
Интро
Этот кейс — пример того, как мы можем бесшовно внедриться в команду заказчика
Не мы придумали и создали продукт, но мы на 100% относимся к проекту, как к своему собственному. Всеми силами стараемся усовершенствовать проект, внедрить лучшие практики и подходы.
Задача
Какие вводные были на старте
Команда заказчика обратились к нам за аудитом мобильного приложения.
Мы проанализировали обе платформы и сделали пошаговый план улучшения кодовой базы проекта. После аудита поняли, что нам комфортно работать вместе и решили продолжить сотрудничество. Вот, что из этого вышло.
У вас есть похожая задача? Давайте обсудим!
Решение
Что делаем
Над проектом работает команда из 16 человек: разработчики, тестировщики, дизайнеры, аналитики и руководитель проекта. Рассказываем, как нам удалось усилить продукт.
iOS‑разработка
Улучшаем архитектуру
Перед началом работ приложение обладало общеизвестной проблемой iOS‑приложений, для разработки которых используется архитектурный паттерн MVC (Model View Controller), а именно — Massive-View Controller: ситуация, когда конкретный класс, отвечающий за отдельный экран/экраны раздувается до невероятных размеров, его становится сложно поддерживать и модифицировать.
Применяемые нами практики и паттерны Чистой Архитектуры (The Clean Architecture) позволяют переработать и элегантно структурировать кодовую базу для дальнейшей работы и масштабирования.
Шаблонизируем и ускоряем разработку
Вся новая логика приложения реализуется на шаблонных классах из нашей библиотеки ListController, что позволяет не только унифицировать подход к разработке новых экранов, но и повысить скорость погружения новых разработчиков в проект.
Применяем данные шаблонные классы и в ходе модификации уже написанных экранов — библиотека позволяет гармонично применять Clean Architecture и разбивать имеющийся код на хорошо читаемые классы.
Заголовок
Самым захватывающим на проекте для меня является применение Clean Architecture: корректно структурировать логику взаимодействия слоев приложения порой бывает непросто, особенно в меняющемся контексте.
Проектирование и реализация сложного функционала подобным образом позволяет не только упростить жизнь себе и коллегам, но и получить невероятные эмоции от проделанной работы.
Удаляем зависимости
В процессе разработки мы пытаемся отказаться от личных библиотек в пользу использования стандартных механизмов языка Swift. Это позволяет сократить время компиляции и уменьшить размер приложения в целом.
В само приложение внесли когда-то вынесенное в отдельную библиотеку SDK. Проблема заключалось в том, что большинство задач затрагивало базовые сущности приложения, которые как раз и находились в SDK: разработчикам приходилось вносить изменения в два разных проекта, что значительно замедляло процесс применения самих изменений.
Android‑разработка
Перерабатываем архитектуру
Проделали большую работу по рефакторингу кода приложения. Изначально это был многомодульный проект с подключаемыми фиче‑модулями и отдельным сетевым SDK, это затрудняло доработку и замедляло развитие. Улучшили архитектуру, переместили весь код в один модуль, а потом снова разнесли по отдельным. Теперь у SDK свой модуль, у ресурсов свой, как и у каждого нового экрана. Такое внедрение позволило сократить время сборки с пяти до одной минуты.
Заголовок
Благодаря рефакторингу мы избавляемся от устаревшего запутанного кода и применяем новые подходы. Например, сократили время сборки приложения, разделив проект на модули.
Поменялся и подход к разработке, сейчас приложение на пути к Single‑Activity архитектуре, когда навигация между экранами осуществляется через фрагменты. Проблема старого подхода была в том, что запуск Activity — полностью асинхронный процесс. Нет гарантии мгновенного запуска, невозможно его точно контролировать. Внедрение библиотеки Sesame ускорило разработку и упростило проектирование.
Sesame – архитектурная библиотека, разработанная в компании MobileUp. Библиотека позволяет: лаконично описать сложную логику экрана, организовать переходы между экранами, реализовать постраничную загрузку данных, сделать валидацию форм ввода и многое другое.
Внедряем современные решения и подходы
Начали поддержку совершенно нового подхода к организации UI, принятого в Android‑разработке, — Compose UI. Compose позволяет описывать UI в декларативном стиле, что дает возможность переиспользовать реализованные компоненты на других экранах.
Заголовок
Самым последним нововведением стал постепенный переезд новых экранов на декларативное описание интерфейса посредством Compose.
Такое решение в дальнейшем позволит переиспользовать готовые UI‑компоненты на других экранах, это ускоряет разработку и улучшает читаемость кода.
Тестирование
Используем шесть видов тестирования
Разработали тестовый план проекта, внедрили шесть видов тестирования: функциональное (регрессионное, приемочное, исследовательское) и нефункциональное (UI/UX, тестирование локализации и требований).
Для автоматизации тестирования используем сервис TestRail. Он помогает ускорить прогон 900 кейсов, которые мы создали для проверки функциональности приложения.
Много нюансов учли при локализации проекта, когда готовились к релизу в Европе: иная система платежных методов, дат, появление среднего имени и даже такие важные мелочи, как знак евро после суммы, а не перед, как обычно бывает с долларом.
Заголовок
Мне нравится скорость развития проекта, он расширяется, разрастается, быстро появляются новые функции. Здорово быть частью этого и помогать проекту расти.
Дизайн
Помогаем строить дизайн‑систему
Помогли доработать дизайн-систему на проекте: унифицировали элементы, экраны. Переработали некоторые сценарии, улучшили пользовательский опыт.
Что дальше
Продолжаем работать над развитием проекта. В хорошей компании уверенно движемся в сторону совершенно нового типа банкинга.
Заголовок
Невероятно классно, что проект, который начался для нас как аудит кода, перерос в глобальное сотрудничество и международный релиз на 27 стран Европы.
Команда
Команда проекта
- iOS–разработчики
Паша Петрович, Коля Тимонин, Дима Захаров, Влад Грохотов, Саша Литвинов, Андрей Комаров, Илья Чуб, Юра Андрианов
- Android–разработчики
Артур Артиков, Виталий Жариков, Дима Старчевский
- Тестировщик
Ксения Вылегжанина, Юлия Бойко, Дарья Куркина
- Дизайнеры
Женя Свавильнов, Света Бельденкова
- Руководитель проекта
Платон Культин
Похожие проекты
Сотрудничество
Контакты
0Эл. почта
hello@mobileup.ruМы всегда рады сотрудничеству и новым проектам.
Опишите задачу, и мы с вами свяжемся.
Или напишите в Телеграм.
Давайте знакомиться!
Ваша заявка успешно отправлена
Мы все изучим и скоро выйдем на связь