5. Особенности тестирования Android vs iOS
🤔 Почему важно тестировать отдельно?
Android и iOS – как два разных мира. У них разные принципы работы с UI, управление памятью, разрешения, фоновые процессы и даже обработка касаний. Поэтому тесты, которые проходят на одном, могут проваливаться на другом.
📌 Ключевые отличия
🛠 Фрагментация: боль Android-тестирования
На Android тысячи моделей с разными процессорами, экранами и оболочками (Samsung One UI, MIUI, Pixel UI). Баги могут появляться только на определённых девайсах.
Что делать?
✅ Тестировать на реальных устройствах (Google Pixel, Samsung, Xiaomi).
✅ Использовать облачные фермы (BrowserStack, Firebase Test Lab).
✅ Проверять адаптивность UI (разные разрешения).
📌 iOS: железный контроль Apple
У Apple всё проще: всего несколько актуальных моделей iPhone. Но ограничения iOS могут ломать логику работы приложения.
Что тестировать?
✅ Background Mode – фоновые процессы часто отключаются.
✅ Разрешения – если юзер отказался, повторный запрос невозможен.
✅ App Store Guidelines – приложение могут не пропустить в стор из-за политики Apple.
🔍 Тестируем UI и UX
📱 Android: адаптация под разные экраны
Android-устройства могут быть с разными DPI и соотношениями сторон (16:9, 18:9, 21:9).
✅ Проверяем:
- Работу на маленьких и больших экранах.
- Корректное отображение элементов на складных телефонах (Fold, Flip).
- Поддержку темной и светлой темы.
🍏 iOS: жесты и навигация
Apple активно использует жесты, и они могут конфликтовать с UI приложения.
✅ Проверяем:
- Swipe-навигацию – не конфликтует ли с элементами?
- Dynamic Island и Notch – элементы не перекрываются?
- Анимации и перетекания – всё ли плавно?
📌 Разрешения и безопасность
🔐 Android
- Разрешения можно отнять и снова выдать.
- Фоновые сервисы (например, GPS) работают свободно, но могут быть убиты системой.
🍏 iOS
- Если юзер отклонил запрос на разрешение, его нельзя запросить снова – только через настройки.
- Жёсткие лимиты на работу в фоне – сервисы могут отключаться через несколько минут.
📡 Сети и WebView
🌐 Android
- Можно подменять User-Agent в WebView.
- Разные производители по-разному обрабатывают HTTP-запросы (Xiaomi, Samsung).
🍏 iOS
- WebView использует только Safari Engine (нельзя подменять движок).
- Жёсткие требования к SSL-сертификатам.
📌 Деплой и тестовые сборки
Android
✅ Сборки можно устанавливать вручную (APK).
✅ Google Play Beta и Firebase App Distribution для тестов.
✅ GitLab CI/CD:
iOS
✅ Сборки только через Xcode или TestFlight.
✅ Установка вручную – только через .ipa + сертификат.
✅ Подключение GitLab CI/CD требует Apple Developer аккаунт.
📌 Итоги
🔥 Android – мощный, гибкий, но фрагментированный.
🍏 iOS – стабильный, но жёстко ограниченный.
Что нужно тестировать?
✅ UI/UX на разных экранах.
✅ Разрешения и работу в фоне.
✅ Сети, WebView, SSL.
✅ Деплой и тестовые сборки.