По поводу этих приложений:
Насколько мне известно, внутренняя версия RN Facebook отличается от той что open-source.
Также крупные компании форкают RN и поддерживают свою версию.
А Airbnb вообще отказалась от React Native.
Я не замечал. Есть примеры тормозов Dart о которых вы говорите?
Ну Dart хоть и известен меньше, но его создатель не какая-то компания новичок и работа над ним ведется активная.
Круто. Я как-то совсем забыл про noSuchMethod.
В JS, правда, еще можно на ходу лепить функции через new Function, но в проде никогда этим не пользовался. Как и динамической сменой прототипа через __proto__.
Недавно был у меня кейс когда надо было по-быстрому доделать прилагу на RN. Это была пытка. То то отвалится, то это. Нужная либа обновилась и новые доки так себе.
В итоге в течении часа перевел все приложение на Flutter и допилил.
Для меня это был момент, после которого я даже думать не хочу о возврате на React Native.
«На этой» — вы какую имеете ввиду? RN или Flutter?
По идее, RN подходит для тонкого клиента, но на деле даже тут без гарантий. Но часто слышал что кроме как для прототипа он не подходит.
Flutter также подходит для этих же целей. Но может больше. Потому что он производительный и вывозит приложения с множеством экранов.
Мой личный рецепт когда использовать RN:
— Нет выхода.
— В арсенале только JS.
— Нужно просто и быстро. Немного экранов.
Flutter:
— Общий UI на 2 платформы.
— Нужно быстро верстать.
— Тяжелые вычисления — отдать в изолят, либо в натив через каналы (это делается проще чем в RN).
На RN была прилага со специфичными картами и там был свой нативный код.
В этой ситуации Expo вообще никак не поможет.
Так как замокать основную фичу приложения не выйдет.
Насколько мне известно, внутренняя версия RN Facebook отличается от той что open-source.
Также крупные компании форкают RN и поддерживают свою версию.
А Airbnb вообще отказалась от React Native.
Ну Dart хоть и известен меньше, но его создатель не какая-то компания новичок и работа над ним ведется активная.
В JS, правда, еще можно на ходу лепить функции через new Function, но в проде никогда этим не пользовался. Как и динамической сменой прототипа через __proto__.
Советую еще посмотреть это видео.
Например:
И версия с которой я уже был знаком стала устаревшей, а новая с новым Api.
После React Native было просто перейти на Flutter. Тоже декларативно. Dart похож на JS (один поток, EventLoop, Async/Await).
По моим наблюдениям Flutter собирается быстрее.
В итоге в течении часа перевел все приложение на Flutter и допилил.
Для меня это был момент, после которого я даже думать не хочу о возврате на React Native.
По идее, RN подходит для тонкого клиента, но на деле даже тут без гарантий. Но часто слышал что кроме как для прототипа он не подходит.
Flutter также подходит для этих же целей. Но может больше. Потому что он производительный и вывозит приложения с множеством экранов.
Мой личный рецепт когда использовать RN:
— Нет выхода.
— В арсенале только JS.
— Нужно просто и быстро. Немного экранов.
Flutter:
— Общий UI на 2 платформы.
— Нужно быстро верстать.
— Тяжелые вычисления — отдать в изолят, либо в натив через каналы (это делается проще чем в RN).
Ну вы это и так знаете.)
Но разработка это же не «выучил одно — вечно работаю». Знания в целом пригождятся.
Если описанный разработчик взялся за React Native, то он должен хорошо знать JavaScript и React.js. В первую очередь он JavaScript разработчик.
Если говорить о JS, я бы на таких вводных пошел сперва в Web или React Native. А потом можно во Flutter.
Тем более что после RN верстка во Flutter, его асинхронная работа и EventLoop даются очень легко, что-то вообще 1 в 1.
Мы дробим.
В этой ситуации Expo вообще никак не поможет.
Так как замокать основную фичу приложения не выйдет.
Но он, собственно, и не серебряная пуля.)
Кому-то он пригождается, мне наоборот нет — так как в каждом проекте была хотя бы одна либа с нативной частью или свой нативный код.