В нашем случае это был компромисс между скоростью продуктовой разработки и производительностью приложения. Вектор был в сторону первого, и второе до поры до времени не страдало. Причин этому несколько, начиная с того, что новое приложение могло просто оказаться бесполезным, и заканчивая тем, что часть разработчиков вообще не имела опыта разработки на JS и React Native. По мере того, как мы убеждались в востребованности приложения и набирались опыта, вопросы производительности стали выходить на первый план, и теперь мы, разумеется, следим и за этим тоже.
Я не считаю, что мы допустили ошибку в распределении ресурсов. Done is better than perfect.
Можно использовать Profiler, встроенный в React Native, он делает раскадровку по 1/60 сек в проекции на потоки, на которой видно, какой процесс занимает больше отведённого времени. FPS в данном случае это индикатор проблемы. На своём примере могу сказать, что даже просадка до 45 FPS даёт себя почувствовать.
Вы имеете ввиду альфу нашего приложения? Оно шло в параллели с основным (нативным) приложением, как дополнительный вариант, в котором мы тестировали некоторые продуктовые гипотезы. Мы не ставили себе целью сразу сделать полноценное и оптимальное приложение. И трафика в нём тоже было мало. Поэтому, по мере развития закономерно дошли до точки, в которой уже стоило задуматься о производительности, чем мы, собственно, и занялись.
Да, требуется, чтобы основное приложение поддерживало как минимум все устройства, которым доступен Instant App. Проще говоря, не должно быть ситуации, когда пользователь попадает в Instant App, но потом не может скачать основное приложение. При этом обратное неверно. Instant App может поддерживаться некоторым подмножеством устройств, которым доступно основное приложение.
Вы вполне можете ограничить доступность Instant App версией Android 8.0+ и не задумываться о миграции данных (если в обоих приложениях используются одноимённые файлы Shared Preferneces), а основное приложение выпускать, скажем, под Android 4.4+. Но на самом деле миграция пишется достаточно просто, я бы не стал ограничивать из-за этого аудиторию.
В нашем случае вручную. Это не критично потому, что функциональность, которая вынесена в Instant App, законченная, протестированная и достаточно новая. Уже прошло несколько месяцев с релиза, а необходимости обновлять приложение не появилось. Хотя, конечно, некоторые неудобства в этом есть.
По поводу OpenGL — да, кажется, нет необходимости подключать всю библиотеку. Здесь я задавал свой вопрос по этой проблеме, и в комментарии к ответу предложили вариант устранения без подключения зависимости, но я его не пробовал. С помощью ProGuard приложение уверенно поместилось в 4 МБ со всеми зависимостями.
Конечно, возможность есть. Мы у себя трекаем в аналитику запуск Instant App, нажатие на кнопку «Скачать приложение» в Instant App и запуск установленного приложения после установки из Instant App (проверяю по наличию Cookie) и по этой воронке смотрим конверсию в скачивание. Конкретные значения смогу завтра узнать у аналитиков, но в целом конверсия очень неплохая.
Я не считаю, что мы допустили ошибку в распределении ресурсов. Done is better than perfect.
Сейчас мы взяли вектор на качество, поэтому активно занимаемся ускорением. Готовлю статью на эту тему, скоро появится на хабре.
Вы вполне можете ограничить доступность Instant App версией Android 8.0+ и не задумываться о миграции данных (если в обоих приложениях используются одноимённые файлы Shared Preferneces), а основное приложение выпускать, скажем, под Android 4.4+. Но на самом деле миграция пишется достаточно просто, я бы не стал ограничивать из-за этого аудиторию.
По поводу OpenGL — да, кажется, нет необходимости подключать всю библиотеку. Здесь я задавал свой вопрос по этой проблеме, и в комментарии к ответу предложили вариант устранения без подключения зависимости, но я его не пробовал. С помощью ProGuard приложение уверенно поместилось в 4 МБ со всеми зависимостями.
Конечно, возможность есть. Мы у себя трекаем в аналитику запуск Instant App, нажатие на кнопку «Скачать приложение» в Instant App и запуск установленного приложения после установки из Instant App (проверяю по наличию Cookie) и по этой воронке смотрим конверсию в скачивание. Конкретные значения смогу завтра узнать у аналитиков, но в целом конверсия очень неплохая.