Спасли Android-приложение, предоставив команду разработки

Shred Labs — стартап из Лос-Анджелеса, созданный в 2018 году двумя персональными тренерами. Чарли Хейл и Адам Саммер хотели развивать онлайн-фитнес, поэтому запустили мобильное приложение с записями тренировок для занятий дома и в тренажерном зале.

На старте компания клиента сосредоточилась на разработке iOS-приложения. Стартап оказался успешным и привлек около двух миллионов пользователей. Через два года компания решила запустить приложение на Android, чтобы охватить пользователей другой платформы.

Команда Android в Shred поначалу состояла из трех человек, так же как и команда iOS. По разным причинам Android разработчики поочередно уходили в другие компании и со временем Android-экспертов в Shred не осталось. При этом по функционалу Android-приложение все еще отставало от iOS-версии. Например, был доступен только один вид тренировок вместо трех. Клиент обратился к Resolventa как к проверенному партнеру с просьбой оперативно подхватить разработку приложения.

Вместе с клиентом мы сформулировали, какие именно задачи нужно решить при разработке Android-приложения:

  • догнать по функционалу iOS-приложение, в первую очередь добавить видео-классы (Classes) и различные программы на их основе;
  • обеспечить выпуск новой функциональности одновременно с iOS;
  • по возможности обновить и доработать legacy-код.

Resolventa предоставила опытного Kotlin-разработчика, который взял на себя все задачи Android-команды. Он разбирался в существующем коде без помощи, так как к этому времени в Shred не осталось специалистов по Android. Уточнить, как работает уже реализованная функциональность, было не у кого. К тому же, не хватало детализации и декомпозиции задач. Из-за этого клиент часто не понимал, чем и для чего занимается команда разработки. Из-за недостаточной коммуникации страдал весь проект. Мы наладили процессы, проработали документацию и детализировали задачи, что сделало разработку более прозрачной, быстрой и удобной для клиента.

Кроме того, приложение строилось на базе сразу двух архитектурных подходов. Часть старого кода была написана с использованием Android View, а другая часть — на Jetpack Compose. Тогда это был быстро набирающий популярность фреймворк, наиболее современный инструмент разработки под Android. Когда Resolventa подключилась к проекту, логично было новые функции писать сразу на Jetpack Compose, а legacy обновлять по необходимости и постепенно переписывать его на новый стиль.

Наш разработчик занялся недостающими возможностями приложения. Ускорить работу помогло то, что мы уже разрабатывали бэкенд для Shred. Если возникали сложности, коллеги из команды PHP подсказывали, как работает бэкенд и как именно с ним взаимодействует iOS-версия. Тогда Android-разработчик использовал аналогичное решение. Некоторые функции невозможно было адаптировать по разным причинам, например, из-за ошибок в документации или особенностей решения на iOS. Иногда проще было подправить код бэкенда, чем пытаться подстроить Android-версию под уже существующий API.

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

Вначале мы добавили в приложение второй тип тренировок: видео-занятие с тренером (Classes). Основную часть записей подготовили профессиональные фитнес-тренеры, но кроме того пользователи могут загрузить в приложение собственные видео.

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

Многим пользователям интересно посмотреть, как тренируются друзья или незнакомые люди. В приложении можно отмечать записи, искать единомышленников, тренироваться вместе и сравнивать результаты. Также можно поделиться успехами и отправить записи тренировок на Facebook через аккаунт Google.

После этого в Android-приложении появился и третий тип тренировок: полноценные программы, составленные из нескольких занятий типа Classes от профессиональных фитнес-тренеров.

Новая возможность, которая появилась одновременно на iOS и Android, — подсчет нагрузки по группе мышц и доска лидеров по этому показателю для каждого вида тренировок. Эта функциональность доступна пользователям по подписке, вызывает интерес и желание тренироваться чаще

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

На старте больше 70% приложения было написано с использованием Android view. Сейчас старая архитектура занимает не более 15%, а все новые функции реализованы на Jetpack Compose.

За год мы догнали по функционалу iOS-приложение, причем силами одного разработчика. Он привел в порядок процессы разработки, добавил в приложение на Android важнейшую функциональность, которая до этого была только на iOS — возможность заниматься онлайн (Classes) и делиться успехами с друзьями.

Сейчас по скорости разработки Android-приложение не уступает iOS, а все новые возможности появляются одновременно на обеих платформах.

Kotlin, Android SDK, Dagger/Hilt, Room, MVI, Jetpack Compose, Android View, Coil, Retrofit, okHttp3

Комментарии 4

Авторизуйтесь чтобы оставить комментарий