Зачем нужны нативные языки для мобильной разработки?
На нативных языках приложение будет работать быстрее, занимать меньше памяти, как оперативной, так и физической относительно такого же функционала, но на другом языке. Использование самого свежего функционала ОС. Да и в каком-то плане, наиболее безопаснее. Всё это благодаря низкоуровневому обращению к API и инструкциям системы.
React Native и другие подобные средства лишь упрощают разработку, сокращая необходимое время и деньги на эту процедуру. Согласитесь, для заказчика дешевле будет написать один код (но с различными исключения под платформы) для iOS и Android, чем нанимать разработчиков под каждую платформу. Такие приложения имеют ограничения по разному функционалу, что приводит к написанию ещё большего кода.Вот пример.Много лет назад из любопытства написал два одинаковых по функционалу приложения под Android на Java и Delphi (да, он тоже теперь кроссплатформенный). На Java приложение работало намного быстрее - раза в 1.3-1.5 и занимало в 4 раза меньше физической памяти.И ещё один, но про Рокетбанк.Рокетбанк выпустили новое приложение на RN для iOS и Android. Возьмём платформу iOS.
1. Функционал нового и старого приложений одинаков, но страница авторизации с подтверждением входа по TouchID в новой версии висит куда дольше - на пару секунд. Не думаю, что там такой огромный функционал, который увеличивает время инициализации приложения. 
2. Занимает в 2 раза больше физической памяти.
3. Накатывали JailBreak на прошивку... доступ к данным старого приложения получить не удалось, из нового вытащили различную инфу, включая токен сессии.
И гугл в помощь.
Flutter, к примеру, отлично поддерживает элементы интерфейса (менюшки и т.п.). И приложение, основанное на обычном интерфейсе с пользователем, ты напишешь легко.
Но при попытке написать с ним нечто, где визуальную составляющую генерируешь сам - например, игру - столкнешься с невозможностью.Любое универсальное априори хуже в деталях.