Site icon AppTractor

Осознанная архитектура: рефакторинг Headspace для масштабирования

Headspace были готовы к запуску новых функций для здоровья и фитнеса, но архитектура их приложений — нет. Компания потратила восемь месяцев на рефакторинг до архитектуры Model-View-ViewModel, переписывание на Kotlin и улучшение тестового покрытия с 15 до 80%. За период со 2 по 4 квартал 2020 года благодаря улучшенному опыту приложения MAU увеличилось на 15%, а оценки улучшились с 3.5 до 4.7.

Статья: https://apptractor.ru/hdsps
Платформа: Android
👋: 216

Перевод

Вступление

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

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

Переписывание Android

Команда разработчиков Android Headspace сначала нуждалась в удобном способе стандартизации того, как они создают и внедряют функции. «Прежде чем мы написали хотя бы одну строчку кода, наша команда провела неделю, оценивая некоторые важные варианты реализации для основы нашего приложения», — объясняет Арам Шероян, разработчик Android в Headspace;

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

Погрузившись в литературу Google о последних передовых методах разработки Android и архитектуре приложений, команда нашла решение, с которым все могли с уверенностью согласиться. Google рекомендовал провести рефакторинг своего приложения с использованием новой базовой архитектуры: модель-представление-представление-модель. MVVM — это широко поддерживаемый программный шаблон, который постепенно становится отраслевым стандартом, поскольку позволяет разработчикам четко разделить проблемы, помогая оптимизировать архитектуру приложения. «Это позволило нам четко разделить нашу логику взглядов», — пояснил Шероян.

Используя MVVM в качестве базовой архитектуры, они определили библиотеки Android Jetpack, включая Dagger и Hilt для внедрения зависимостей. Новые инструменты сделали стандартный код меньше и легче структурировали, не говоря уже о более предсказуемом и эффективном. В сочетании с MVVM библиотеки предоставили им более подробное представление о том, как должны быть реализованы новые функции. Команде также удалось улучшить качество передачи аргументов между функциями. В приложении раньше возникали сбои из-за ошибок NullPointerException и неверных аргументов. Внедрение библиотеки safeArgs помогло устранить ошибки при передаче аргументов.
При переписывании приложения команда также следила за шаблоном репозитория, чтобы обеспечить более четкое разделение проблем. Например, вместо того, чтобы иметь один огромный класс, который сохраняет данные в общих настройках, они решили, что локальный источник данных каждого репозитория должен обрабатывать соответствующую логику. Такое разделение источников данных позволяет группе тестировать и воспроизводить бизнес-код вне живого приложения для модульного тестирования без необходимости изменять производственный код. Такое разделение проблем сделало приложение более стабильным, а код — более модульным.

Команда также воспользовалась возможностью полностью перевести свое приложение на язык программирования Kotlin, который предлагал полезные вспомогательные функции, закрытые классы и функции расширения. Удаление устаревшего кода и замена сочетания Java и Kotlin чистым кодом Kotlin уменьшили время сборки приложения. Новая архитектура также упростила написание тестов и позволила увеличить охват тестированием примерно с 15% до более чем 80%. Это привело к более быстрому развертыванию, более качественному коду и меньшему количеству сбоев.

Чтобы запечатлеть новые впечатления пользователей от отзывов о приложении, Headspace внедрила Google Play In-App Review API. Новый API позволил им побудить всех пользователей делиться отзывами из приложения. Благодаря этому количество отзывов повысилось на 24%, и, поскольку обзоры приложений были привязаны к видимости в Google Play, они помогли привлечь внимание к недавним улучшениям приложения.

Достижение совершенства приложений

Переписывание заняло восемь месяцев, и вместе с ним пришло новое доверие к коду. Теперь, когда кодовая база охватывала более 80% юнит-тестов, они могли с уверенностью разрабатывать и тестировать новые функции, а не беспокоиться. Новая архитектура сделала это возможным благодаря улучшенному логическому разделению и более многократно используемому коду, что упрощает планирование и реализацию новых функций.

Время сборки приложения резко сократилось, а скорость разработки увеличилась. Новая ясность команды в отношении передовых методов и архитектуры также уменьшила трение при приеме на работу новых разработчиков, поскольку теперь она была основана на отраслевых стандартах Android. Они могли более четко общаться с потенциальными кандидатами во время собеседования, поскольку теперь у них был общий архитектурный язык для обсуждения наборов проблем и потенциальных решений.

С скоростью пришло более быстрое внедрение функций и улучшенный поток удержания. Теперь они могли оптимизировать процесс дополнительных продаж, что привело к увеличению числа платных подписчиков Android на 20% по сравнению с другими платформами, на которых опубликовано приложение. Сочетание нового опыта приложения и внедрения нового In-App Review API привело к тому, что их оценки улучшились с 3,5 до 4,7 звезд за период со 2 по 4 квартал 2020 года!

В целом, новый акцент на Android App Excellence и улучшенные рейтинги позволили Headspace увеличить MAU на 15% во всем мире.

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

Ваша команда на борту

Если вы заинтересованы в том, чтобы ваша команда участвовала в вашем собственном пути к совершенству приложений, ознакомьтесь с нашим кратким тематическим исследованием для владельцев продуктов и руководителями, ссылка на которые приведена здесь. Чтобы узнать больше о том, как последовательный, интуитивно понятный пользовательский интерфейс приложения может способствовать развитию вашего бизнеса, посетите целевую страницу App Excellence.

Exit mobile version