Valentin
Серьезно говоря, это пока больше эксперименты и штуки которые больше нужны большим компаниям для интегрирования RN внутрь ComponentKit или Texture
Valentin
А еще это позволит делать синхронный лайаут с UIKit в свзяке RN внутри UIKit
Valentin
Если кто-то плотно интегрирует RN внутрь нативного iOS, то я был бы рал услышать отзывы о RCTSurfaceHostingView
Valentin
RCTSurfaceHostingView это замена для RCTRootView
Aleksei
А еще это позволит делать синхронный лайаут с UIKit в свзяке RN внутри UIKit
а можно про это поподробней? 🙂 очень интересно
Valentin
Ну вот если заменить RCTRootView на RCTSurfaceHostingView (апи практически одинаковый), то *теориетически* (я не очень тестировал это, честно говоря), будет синхронный лайаут между двумя мирами
Aleksei
вот на самом деле именно словосочетание «синхронный лэйаут» и не понятно))
Valentin
Т.е. например если ты изменяешь (с анимацией!) что-то снаружи RN, то весь UI будет перерисован синхронно и с анимацией
Aleksei
снаружи? можно простой пример, если не затруднит?)
Valentin
Короче это как RCTRootView, только лучше.
Valentin
Ну, если приложение гибридное, то RN занимает не весь экран, и вот если нужно что-то изменить в лайауте снаружи, то... теперь это будет работать лучше.
Valentin
Не знаю как проще объяснить.
Valentin
В случае негибридного приложения тоже будет лучше, но не так заметно
Aleksei
то есть например есть у меня UIView с frame bounds к примеру 100 на 100, то при изменении размеров будет все ок работать? (внутри UIView RN приложение)
Aleksei
а я вот помню @potomushto рассказывал что у него в react-native-macos, при изменении размера окна были тормоза, интересно решится ли теперь эта проблема
Valentin
да!
Valentin
я не знаю как работает react-native-macos. мне вообще очень интересна тема macOS+RN, но времени на это нету. 🙁 я думаю там полностью собственная имплементация, но идейно основанная на iOS. я думаю туда можно бекпортировать все новые изменения, но "автоматически и бесплатно" это не заработает.
Aleksei
да!
Валентин, все хотел спросить у эксперта) вот если делать гибридное приложение, нативное у которого несколько скринов к примеру на RN, то это будет один js бандл или несколько, и как вообще такое делают?
Valentin
¯\_(ツ)_/¯ Значит хака нету. Сорри. А для твоего кейса необходимо частичное выделение?
Aleksei
у нас сегодня прям Q&A с Валентином Шергиным (прошу прощения если неправильно фамилию написал), как на дискорде))
Valentin
Т.е. можно по разному, точно. Обычно бандл один.
Aleksei
Т.е. можно по разному, точно. Обычно бандл один.
скорее всего на AppRegistry надо смотреть?
Artur
вы там с ума сошли?
Artur
js выполняется в отдельном потоке
Artur
там пока этот синхрон случится раза три переключение контекста будет
Aleksei
и
Aleksei
тут кстати сейчас был разговор же не про js, а про изменения снаружи
Aleksei
я если честно мало что понял из PR-а, но видимо что то с Yoga
Artur
мне больше интересен вот этот график активности RN
Aleksei
классный график, сразу видно что меньше багов стало 😄
Artur
его еще можно трактовать по другому
Danil
Ребят. В продакшене сломалась авторизация через фейсбук и встроенные покупки. Я использую amplitude analytics, решил добавить логи. В итоге залогались такие значения:
Danil
Danil
Danil
Как понять в чем ошибка? Sentry поможет в этом случае?
Valentin
его еще можно трактовать по другому
График показывается что Метро выпилили в отдельный репозиторий и иллюстрирует старания выпихнуть все non-core dependencies.
Valentin
а чем лучше то?
Актуальная имплементация RCTRootView весьма запутанная и ограниченная. Она не позволяет делать синхронный лайаут, не позволяет создавать реакт приложения с любого треда, содержит ненужные фичи, которые усложняют поддержку. RCTSurfaceHostingView использует новый RCTSufrace для создания приложения и реализует только то, что нужно для качественной интеграции лайаут системы RN и UIKit.
Valentin
https://www.youtube.com/watch?v=HXKFQu2cP4c&list=PLzUKC1ci01h_hkn7_KoFA-Au0DXLAQZR7&index=7 Вот эта презентация хорошо рассказывает о проблемах, котрые мы пытаемся решить используя новые API.
Ivan
Хай гайз. Плюет такую ошибку. передаю поле title пропсом и юзаю <Text style={[styles.text, styles.boldText]}>{props.title}</Text>. Но получаю эту ошибку. Хелп ми плис.
Евгений
Убери массив из объекта
Евгений
В стилях для начала
Fluffy Cat
оператор spread существует, да
Евгений
Во вторых если используешь не функциональный компонент, а через класс - то у пропсов забыл зис
Fluffy Cat
может у него деструктурирование
Евгений
А может и нет
Fluffy Cat
это был сарказм
Евгений
Я под 4 утра сервер сарказма отрубил сорь
Fluffy Cat
но, в любом случае, когда такие ошибки с массивом внутри объекта....
Valentin
О каких именно ограничениях речь?
Artur
Честно говоря, не очень понятно что ты имеешь ввиду. (Но совершенно явно то что что-то агрессивное!)
When rendering a synchronous component in runtime, we're just following the recipe and not actually running the JavaScript render code. This means our synchronous component tree has to be 100% declarative. We're not allowed to place any business logic in it except passing around props.
Valentin
Oh!
Artur
непонятно как это будет себя вести с ячейками разной высоты например
Valentin
Да, конечно, их подход весьма... странный. Я ни в коем случае не считаю его правильным. Я всего-лишь имел ввиду, что изначальные *проблемы* описаны хорошо. Решения же конечно же "так себе".
Artur
да если вот совсем декларативные элементы то зайдет
Artur
но опять же с вопросами хотя бы про высоту ячеек
Valentin
Вот моя цель - сделать возможным то, что Тал хочет, но так чтобы сохранить динамизм.
Artur
мне кажется им нужно сделать flatlist не тормозящим )
Valentin
Ну, тут конечно вопрос в правильном балансе. Никогда нельзя сделать императивную штуку такой же быстрой как полностью декларативную (по крайней мере в терминах РН).
Valentin
Кому им?
Artur
Кому им?
фейсбуку, они вроде преподносили его как быстрый и эффективный listview
Valentin
Все так и есть. Какие претензии FlatList?
Artur
Все так и есть. Какие претензии FlatList?
https://github.com/facebook/react-native/issues/13413
A
как можно расшарить на macos скрин с экрана iPhone в режиме реал-тайм?
A
чтобы демо показывать клиенту, нужна именно работа камеры
Sergei
Через QuickTime
Ivan
Чувак бля вопрос вообще не о том я понял что вы тут все сверх программисты. Но у меня там функциональный компонент и я мерджу стили . Вопрос вообще не о том....
Ivan
Во вторых если используешь не функциональный компонент, а через класс - то у пропсов забыл зис
Oleg
Во первых, у нас делают reply а не forward, во вторых без мата
Ivan
Окей
Ivan
Извините пригорело