Задать вопрос

Как справиться с проблемами на некоторых моделях телефонов?

Добрый день.
Я не так давно работаю с RN и у меня появилась одна проблема с которой я столкнулся при работе - разные модели телефонов по-разному работают со сторонними (и не только) компонентами.
И да, можно по ним найти множество закрытых ищьюс, но порой, решения там далеко не очевидные, просто "сделайте так, чтобы на этой модели это работало", при этом не факт, что это не сломает что-нибудь еще и будет ли работать вообще. И таких проблем достаточно много, а выявить можно их только после деплоя, когда поступают жалобы от клиентов.

В связи с чем у меня несколько вопросов:
1. Единственный ли вариант решения - это тестирование на "фермах"?
2. Как добиваются отказоустойчивости известные приложения по типу Telegram, Viber, WhatsApp и др.?
3. Есть ли список "Проверенных" компонентов, которые уже оттестированы?
4. Возможно есть какие то базовые принципы, что бы хоть как то минимизировать эти проблемы?
5. Нужно ли прокачиваться в нативном android или ios в достаточной степени, что бы разбираться во всех тонкостях?(Тогда зачем RN правда нужен...)

Если ответите хотя бы на один вопрос, буду очень благодарен!

P.S. Expo уже не подходит.
  • Вопрос задан
  • 455 просмотров
Подписаться 5 Сложный Комментировать
Пригласить эксперта
Ответы на вопрос 2
alexgp13
@alexgp13
Руководитель ИТ-проектов
К сожалению, Андроид такая штука, что на каждом телефоне есть свои крайне специфичные глюки. Например, одно из моих приложений упорно вылетает на Honor/Huawei, причем не всегда и не на всех. Но на Xiaomi, Samsung, Sony, LG, BQ, Highscreen и прочих работает стабильно. Решение пока так и не нашел, учитывая, что у меня самого Honor/Huawei нет, а используемые библиотеки более чем стандартны - из чистого Андроида, даже не GMS.

По вопросам:
1. Единственный вариант из-за большого зоопарка, и то не факт что на конкретной версии прошивки в конкретной стране не будет глюков.
2. Тестируют долго и упорно, на всех устройствах, плюс анализ логов при сбоях на релизных версиях.
3. Компоненты то есть, наверное, только это не гарантия, что в новой прошивке производитель ничего не сломает.
4. Старайтесь максимально детально отрабатывать любые потенциальные ошибки, даже через банальное try-catch
5. Не нужно, со временем нужный навык прокачается, а если просто так зубрить, то оно все равно без применения быстро забудется. Но это не значит что читать для себя интересные статьи про типичные ошибки не нужно.
Ответ написан
Комментировать
@rPman
1. да, но можно многие вещи просить тестировать пользователей, приобретая проблемные модели по факту глюка
2. деньгами
3. хз, я лично думал что браузер (webview) это уже оно самое
4. сначала скажи какие проблемы, у всех они разные и зависят от задач
5. что то мне говорит что в конце концов придется, либо чтобы сократить затраты п.2. либо просто чтобы понимать (если что я только коснулся этих проблем, и не разбираюсь) откуда именно эти проблемы вытекают

боюсь тест фермы не избежать при любом раскладе, если твое приложение сложнее hello world, особенно если оно лезет куда то дальше ui и интернета

react native это фактически приложения на основе electron (chromium) WebView (может быть на основе firefox), и оно берет на себя кучу головной боли, когда нет желания ковыряться в особенностях аудио и видеорендеринга (например проигрывание видео) да и доступу кучи вещей, не сильно стандартизированных в android.

Браузер (chromium) это уже сама по себе операционная система, которая берет на себя кучу работы, поддерживает стандарты работы с некоторой перифирией но не за бесплатно.... это тупо жрет ресурсы.

Если ты страдаешь от проблем react native, попробуй разработать что либо на просто android (java), поддерживая с пяток текущих версий платформ даже в пределах одной и той же модели смартфона, сразу осознаешь что это были не страдания а так, мелкие неудобства.

p.s. Размер тест-фермы для действительно нативных приложений android (я про бинарный код, буквально, тот что собран под соответствующую arm архитектуру), даже если это просто модуль (каким к примеру является ffmpeg у telegram для проигрывания видео), станет еще больше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы