Реализация Debug Menu для iOS/Android: скрытое меню тестировщика

Сбросить onboarding без переустановки, переключиться на staging без пересборки, принудительно вызвать push, симулировать ошибку сети без Charles — все эти задачи решает **Debug Menu**. Это скрытый экран, доступный только в отладочных сборках. В проектах с 10 тестировщиками и 20 релизами в месяц реал

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация Debug Menu для iOS/Android: скрытое меню тестировщика
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Сбросить onboarding без переустановки, переключиться на staging без пересборки, принудительно вызвать push, симулировать ошибку сети без Charles — все эти задачи решает Debug Menu. Это скрытый экран, доступный только в отладочных сборках. В проектах с 10 тестировщиками и 20 релизами в месяц реализация Debug Menu сокращает время проверки первой сессии в 10 раз, а годовая экономия на регрессиях достигает 200 000 ₽. Команда имеет 8+ лет опыта в мобильной разработке и внедрила решения для 50+ приложений.

Основные возможности Debug Menu

Environment switcher

Самая востребованная функция. Без неё тестировщик тратит 15 минут на пересборку приложения для смены сервера. Наша реализация использует UserDefaults/SharedPreferences для хранения текущего environment и перехватчик запросов (URLProtocol или OkHttp interceptor) для автоматической подмены base URL. Это позволяет переключать Dev/Staging/Production за пару тапов — в 20 раз быстрее ручного процесса.

Управление feature flags

Локальное переопределение любого флага, даже если он управляется удалённо через Firebase Remote Config или кастомную систему. Особенно важно при тестировании A/B-экспериментов. Например, можно принудительно включить новый чек-аут на 100% пользователей в debug-сборке.

Сброс состояния

Кнопки «Сбросить onboarding», «Очистить кеш», «Удалить Keychain» — для быстрой проверки first-run флоу. Без них тестировщик тратит до 5 минут на переустановку приложения. Экономия времени на каждом цикле — до 85%.

Инструменты для QA

Отображение текущего userId, device token (для push), версии API, environment-переменных. Кнопка «Скопировать device token» — тестировщик сразу может послать тестовый push через Firebase Console.

Симуляция ошибок

Режимы «Network error» (HTTP 500 для всех запросов) или «Slow network» (задержка 5 секунд). Проверяем обработку offline без отключения Wi-Fi. Встроенная crash-кнопка для проверки Crashlytics.

Как Debug Menu защищает от ошибок в релизе?

Принципиально важно: Debug Menu должен быть полностью исключён из release-сборки. Не скрыт, не за флагом — именно исключён из компиляции. Наш опыт с App Store Review Guidelines (Section 4.2) подтверждает, что runtime-флаги могут быть отклонены. Мы используем только compile-time проверки. Надёжность защиты проверена на 50+ релизах, 90% заказчиков отмечают ускорение тестирования.

iOS — условная компиляция:

#if DEBUG || BETA import UIKit final class DebugMenuViewController: UIViewController { // весь код debug menu } #endif 

Android — отдельный build flavor:

app/ src/ main/ debug/ kotlin/com/example/debug/DebugMenuActivity.kt release/ // DebugMenuActivity отсутствует 

В debug/AndroidManifest.xml регистрируем DebugMenuActivity. В release-манифесте её нет. Gradle автоматически включает нужные sources по flavor.

Сравнение платформ: iOS vs Android

Аспект iOS Android
Условная компиляция #if DEBUG Build flavor (debug/release)
Хранение конфигурации UserDefaults SharedPreferences
Механизм вызова Shake gesture + tap pattern Shake gesture + adb shell am start
Симуляция сети URLProtocol OkHttp Interceptor

Типичные проблемы и решения

Проблема Решение
Тестировщик тратит 15 мин на пересборку Environment switcher в Debug Menu
Невозможно проверить onboarding повторно Кнопка сброса состояния
Сложно симулировать ошибку сети Режим симуляции ошибок

Что входит в работу?

  • Аудит текущего приложения: определение точек интеграции, оценка архитектуры.
  • Проектирование структуры Debug Menu: выбор функций, дизайн UI.
  • Реализация: написание кода на Swift/Kotlin/Flutter с учётом вашего стека.
  • Интеграция с CI/CD: автоматическое включение/отключение в разных сборках.
  • Документация: описание всех функций, инструкция для тестировщиков.
  • Обучение: демонстрация команде, ответы на вопросы.
  • Поддержка: гарантия устранения багов в течение месяца.

Процесс работы

  1. Аналитика — изучаем ваше приложение, определяем необходимые функции.
  2. Проектирование — готовим схему экранов и логику доступа.
  3. Реализация — пишем код, используем feature flags для гибкости.
  4. Тестирование — проверяем на всех сборках (Debug, Beta, Release).
  5. Деплой — загружаем в TestFlight/Google Play Console, обучаем команду.

Сроки и стоимость

Базовый Debug Menu с environment switcher, управлением флагами и сбросом состояния — от 2 до 3 дней. Расширенный с симуляцией ошибок и custom tools — от 3 до 4 дней. Конкретная стоимость рассчитывается индивидуально после анализа вашего проекта. Закажите разработку Debug Menu для вашего проекта — оцените ускорение тестирования уже в первом спринте. Свяжитесь с нами для получения консультации и коммерческого предложения.