Найти в Дзене
Гид по IT с MapNT

Как мы подняли рейтинг приложения с 2.0 до 4.8 - Кейс рефакторинга и редизайна

В сфере профессиональной разработки мобильных приложений рейтинг 2 звезды — это барьер, отсекающий до 80% органического трафика, и приговор для маркетингового бюджета. Это «черная метка», цифровая пустошь, где умирают маркетинговые бюджеты, а стоимость привлечения пользователя (CAC) стремится в стратосферу.
Когда клиент — крупный ритейлер электроники — пришел к нам, их приложение было не просто "багованным". Оно было памятником техническому долгу. Пользователи не просто удаляли приложение, они ненавидели его. Отзывы в App Store напоминали стену плача:
"Вылетает при попытке оплатить. Спасибо, купил у конкурентов." — 1 звезда. 
"Греет телефон так, что можно жарить яичницу. Батарея улетает за 15 минут." — 1 звезда. 
"Разработчики, верните старую версию!" — 1 звезда.
Клиент стоял перед выбором: похоронить проект и начать с чистого листа под новым брендом или совершить невозможное — реанимировать текущий продукт через комплексное исправление багов.
Мы выбрали второе. Это история о том,
Оглавление

Введение: Точка невозврата

В сфере профессиональной разработки мобильных приложений рейтинг 2 звезды — это барьер, отсекающий до 80% органического трафика, и приговор для маркетингового бюджета. Это «черная метка», цифровая пустошь, где умирают маркетинговые бюджеты, а стоимость привлечения пользователя (CAC) стремится в стратосферу.

Когда клиент — крупный ритейлер электроники —
пришел к нам, их приложение было не просто "багованным". Оно было памятником техническому долгу. Пользователи не просто удаляли приложение, они ненавидели его. Отзывы в App Store напоминали стену плача:

"Вылетает при попытке оплатить. Спасибо, купил у конкурентов." — 1 звезда. 
"Греет телефон так, что можно жарить яичницу. Батарея улетает за 15 минут." — 1 звезда. 
"Разработчики, верните старую версию!" — 1 звезда.

Клиент стоял перед выбором: похоронить проект и начать с чистого листа под новым брендом или совершить невозможное — реанимировать текущий продукт через
комплексное исправление багов.

Мы выбрали второе. Это история о том, как за 6 месяцев мы переписали 90% кода, изменили архитектуру и вернули любовь пользователей.

Часть 1: Аудит. Почему обновление мобильного приложения стало неизбежным

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

Технический ужас
Открыв исходный код (iOS — Objective-C вперемешку с ранним Swift, Android — Java с вкраплениями Kotlin), мы увидели классический "спагетти-код".

  1. Отсутствие архитектуры: Логика переходов, сетевые запросы, обработка данных и UI — всё находилось внутри гигантских контроллеров (Massive View Controller). Один файл экрана корзины занимал 4000 строк кода.
  2. Утечки памяти: Приложение "текло" как дуршлаг. Профилирование показало, что при скролле каталога объекты ячеек не освобождались, забивая оперативную память до критического уровня. Итог — гарантированный краш (OOM - Out of Memory).
  3. Сетевой слой: Запросы к API дублировались. При открытии главной страницы приложение отправляло 18 запросов, 6 из которых были идентичны. Бэкенд стонал, приложение висело.
  4. Зависимости: Проект кишел заброшенными библиотеками, которые не обновлялись с 2019 года.

UX/UI Катастрофа
Дизайн застрял в 2017 году. Но хуже было то, что пользовательские сценарии (CJM) были сломаны. Чтобы оформить заказ, пользователю нужно было пройти 9 экранов.

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

Часть 2: Стратегия исправления ошибок. "Операция Феникс"

-2

Мы собрали "Триаду" (менеджмент, дизайн, разработка) и выработали стратегию. Мы не могли просто уйти в подполье на полгода — бизнес терял деньги каждый день.

План действий:

  1. Code Freeze текущей версии: Мы перестали пилить новые фичи в старом приложении. Только критические хотфиксы (если падает оплата — чиним).
  2. Параллельная разработка: Команда делится на две части. Группа быстрого реагирования поддерживает "зомби" (старую версию), основной спецназ пишет новую версию (v2.0).
  3. Архитектурный диктат: Внедрение Clean Architecture + MVVM (на iOS) и MVI (на Android). Жесткий код-стайл, 100% покрытие Unit-тестами бизнес-логики.

Часть 3: Нативная iOS и Android разработка. Архитектура Возрождения

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

iOS: Swift и Модульность
Мы разбили монолит на независимые модули (CocoaPods dev pods, позже переехали на SPM).

  • Core: Сеть, базы данных, утилиты.
  • DesignSystem: Все кнопки, шрифты, цвета вынесли в отдельный пакет. Это позволило дизайнерам менять стиль во всем приложении, правя одну строчку кода.
  • Features: Каталог, Корзина, Профиль, Чекаута — каждый раздел стал отдельным микро-приложением. Время сборки проекта упало с 15 минут до 40 секунд.

Мы использовали SUI (SwiftUI) для новых экранов, но обернули их в UIKit контейнеры там, где нужна была сложная навигация.

Android: Jetpack Compose и Coroutines
В рамках
Android разработки мы сделали ставку на Jetpack Compose. Декларативная верстка позволила сократить объем UI-кода в 3 раза. Вместо XML-портянок и адаптеров для RecyclerView мы получили лаконичные функции. Асинхронщину перевели на Coroutines + Flow.

Единый источник правды
Самая большая боль старого приложения — рассинхрон данных. В корзине товар есть, на чекауте его нет. Мы внедрили
Reactive Repository Pattern. Приложение подписывается на изменения в базе данных. Неважно, откуда пришло изменение — UI обновляется автоматически и мгновенно.

Часть 4: Битва за UX. Сделать удобно, а не «красиво»

Дизайнеры работали в связке с аналитиками данных. Мы взяли 50 самых частых жалоб из App Store и превратили их в задачи по оптимизации.

  1. Проблема: "Долго оформлять заказ". 
    Решение: Чекаут в один экран. Мы внедрили Apple Pay и Google Pay. Время оформления заказа сократилось с 3 минут до 25 секунд.
  2. Проблема: "Не могу найти товар". 
    Решение: Умный поиск с подсказками (Elasticsearch на бэкенде) и фильтры, которые не перезагружают страницу, а работают мгновенно на клиенте.
  3. Проблема: "Приложение слепит ночью". 
    Решение: Полноценная Dark Mode. Это дало огромный буст лояльности гиков.

Скелетон-лоадеры и «Оптимистичный UI»: Раньше при нажатии кнопки "В корзину" появлялся спиннер. Мы внедрили Optimistic UI updates. При нажатии товар мгновенно летит в корзину с красивой анимацией. Запрос уходит в фоне.

Часть 5: Культура качества. QA как религия

В старой парадигме тестировщики проверяли приложение после того, как оно написано. Мы сдвинули QA влево (Shift Left Testing), чтобы исключить ошибки в приложении на ранних стадиях.

  1. Автотесты: Мы написали UI-тесты (XCUITest / Espresso), которые покрывали критический путь: Главная -> Поиск -> Карточка -> Корзина -> Оплата.
  2. Dogfooding: Мы заставили всю команду клиента (от топ-менеджмента до курьеров) установить бета-версию. За каждый найденный баг мы давали бонусы.
  3. Network Throttling: Мы тестировали приложение не на офисном Wi-Fi, а в лифтах, в метро, в режиме Edge.

Часть 6: Релиз и рост рейтинга приложения

-3

Мы не могли просто выкатить обновление на всех. Если бы в новой архитектуре была критическая ошибка, мы бы убили бизнес.

Мы использовали Phased Release (поэтапное внедрение):

  • День 1: 1% пользователей. Тишина. Краш-фри 99.9%.
  • День 3: 5% пользователей. Пошли первые отзывы: "Оно живое!", "Наконец-то темная тема!".
  • День 7: 20% пользователей. Нагрузка на бэкенд снизилась благодаря оптимизации.
  • День 14: 100% раскатка.

Работа с негативом
Старый рейтинг 2.0 висел мертвым грузом. Чтобы обеспечить
повышение рейтинга в App Store, мы внедрили умный запрос отзыва.

Алгоритм:

  1. Пользователь успешно оформил заказ?
  2. Заказ доставлен вовремя?
  3. Пользователь зашел в приложение снова? Только тогда мы показываем плашку: "Вам нравится наше новое приложение?". — Если "Да" -> Ведем в App Store. — Если "Нет" -> Открываем форму обратной связи, перехватывая негатив.

Часть 7: Результаты. Цифры, которые говорят громче слов

Прошло 6 месяцев после релиза версии 2.0. Результаты кейса по разработке мобильного приложения превзошли прогнозы.

Метрики продукта:

  • Crash-free rate: Вырос с 92% до 99.95%. Приложение стало скалой.
  • Время холодного старта: Сократилось с 4.5 сек до 0.8 сек.
  • Конверсия в покупку (CR): Выросла на 45%.
  • Retention Day 30: Вырос в 2.5 раза.

Рейтинг:
Это было самое сложное. Математика App Store инертна. Но новый качественный продукт спровоцировал "сарафанное радио". Мы также попросили поддержку отвечать на старые негативные отзывы, приглашая обновиться.

Итог через полгода: Текущий рейтинг версии — 4.8. Общий рейтинг подтянулся до 4.6.

Заключение: Философия качественной разработки

Сегодня приложение нашего клиента — бенчмарк в своем сегменте. А мы в команде вынесли главный урок: любовь пользователя нельзя купить маркетингом, но её можно заслужить качественным кодом.Этот кейс — про то, что профессиональная разработка мобильных приложений напрямую влияет на прибыль.

Рейтинг 2.0 — это не проблема кода, это проблема отношения. Рецепт воскрешения прост:
Бескомпромиссная честность: Признайте, что старый продукт плох.
Смелость снести всё: Не бойтесь переписывать с нуля, если технический долг мешает обновлению приложения.
Одержимость деталями: Пользователь чувствует заботу через микро-взаимодействия.

IT агенство MapNT
Центральный офис: г. Калининград
Почта: m-n-te@yandex.ru
Телефон: +7 911 484-06-31
Работаем по всей России

Мы в соц сетях:
telegram | вконтакте | сетка

mapnew.tech