Скинути onboarding без перевстановлення, перемкнутися на staging без перескладання, примусово викликати push, симулювати помилку мережі без Charles — усі ці завдання вирішує Debug Menu. Це прихований екран, доступний тільки в налагоджувальних збірках. У проектах із 10 тестувальниками та 20 релізами на місяць реалізація Debug Menu скорочує час перевірки першої сесії в 10 разів, а річна економія на регресіях є значною. Команда має 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: автоматичне включення/вимкнення в різних збірках.
- Документація: опис усіх функцій, інструкція для тестувальників.
- Навчання: демонстрація команді, відповіді на питання.
- Підтримка: гарантія усунення багів протягом місяця.
Процес роботи
- Аналітика — вивчаємо ваш додаток, визначаємо необхідні функції.
- Проектування — готуємо схему екранів та логіку доступу.
- Реалізація — пишемо код, використовуємо feature flags для гнучкості.
- Тестування — перевіряємо на всіх збірках (Debug, Beta, Release).
- Деплой — завантажуємо в TestFlight/Google Play Console, навчаємо команду.
Порада
Debug Menu має бути виключений із релізу на рівні компіляції.Терміни та вартість
Базовий Debug Menu із environment switcher, керуванням прапорцями та скиданням стану — від 2 до 3 днів. Розширений із симуляцією помилок та custom tools — від 3 до 4 днів. Конкретна вартість розраховується індивідуально після аналізу вашого проекту. Замовте розробку Debug Menu під ключ для вашого проекту — оцініть прискорення тестування вже в першому спринті. Кожен тестувальник економить до 30 хвилин щодня. Налагодження мобільного додатку стає простішим. Захист Debug Menu критичний для безпеки. Оцінимо ваш проект безкоштовно. Зв'яжіться з нами для отримання консультації та комерційної пропозиції.







