когда приложение сложное, у кодеров в гите появляются две разные кодовые базы. Почему — ответ простой, приложения обращаются по api к операционке устройства. И как бы не пытались унифицировать, не получается. как итог приходится обращения корректировать под ос устройства, держать if else в коде глупо (по устройству), даже если остальное одинаково (обращение к бэку). Так что все равно все слова о кросс, пока только частичны, и у вас два приложения и тестировать их так же придется как разные.