
aspirin
05.09.2018
16:16:46
На яве под андройд такого не было, все быстро рендерилось. Я понимаю что там совсем нативный код, но все же не понимаю чего там такого страшного вычесляется на рендере каждого итема. Какбудто кто-то там биткоины майнит втихоря

あなたの神
05.09.2018
16:18:13

Dmitry
05.09.2018
16:19:45

aspirin
05.09.2018
16:20:05
Я пробывал несколько, помоему 3 штуки, сейчас посмотрю по истории какие

Google

Dmitry
05.09.2018
16:20:21
Используй FlatList и будет тебе счастье

aspirin
05.09.2018
16:20:39
VirtualizedList, FlatList и еще акакойто самый простой
Вот последний я сменил с Flat на Virtualized очень коряво для тестов

あなたの神
05.09.2018
16:21:12
FlatList самая производительная опция

aspirin
05.09.2018
16:21:43
Вот мой говнокод на коленке для тестов
поставил initialNumToRender большой т.к. проще полождать пока все отрендерит, иначе не работают клики на элементы пока все не зарендерятся

あなたの神
05.09.2018
16:23:24
Может проблема не в листе, а в самом реквесте?

aspirin
05.09.2018
16:23:57
ща запущу и покажу

あなたの神
05.09.2018
16:24:12

aspirin
05.09.2018
16:24:50

Google

あなたの神
05.09.2018
16:25:56

aspirin
05.09.2018
16:26:01

あなたの神
05.09.2018
16:26:06
Так нельзя
Ну, типа, антипаттерн

aspirin
05.09.2018
16:26:18

あなたの神
05.09.2018
16:26:20
Это во первых

aspirin
05.09.2018
16:26:34

あなたの神
05.09.2018
16:26:36
В во вторых, попробуй рендерить не все 300-500 элементов

aspirin
05.09.2018
16:26:58
^

あなたの神
05.09.2018
16:27:36
^
Понял. Ну, просто нет смысла сразу все 300+ элементов выгружать

aspirin
05.09.2018
16:27:58

あなたの神
05.09.2018
16:28:43
А вообще, ты профайлер юзал-то?

aspirin
05.09.2018
16:30:28
Понял. Ну, просто нет смысла сразу все 300+ элементов выгружать
Сейчас я запущу проект, покрою дебагами и скину куски которые меня смущают. Вся проблема в том что у приложений конкурентов есть такие списки и работают шустро. а также меня смущает что многие приложения которые заявляют что написанны на rn работают со списками намного длинее и сложнее и при этом очень быстро. начинает казатся что от меня утаивают какуюто хитрость

あなたの神
05.09.2018
16:31:27

Gena
05.09.2018
16:41:09

aspirin
05.09.2018
16:41:52

Google

aspirin
05.09.2018
16:43:14
this https://facebook.github.io/react-native/docs/performance ?

Gena
05.09.2018
16:43:51
Да, оттуда были ссылки вроде

aspirin
05.09.2018
16:44:14

Dmitry
05.09.2018
17:06:31
Что за дичь с асинками
У нас тут не так давно было разбирательство с FlatList и его прои зводительностью

aspirin
05.09.2018
17:14:23

Pavel
05.09.2018
17:20:12
Всем доброго времени суток. Вопрос немного не по реакту но про мобилы. Есть Android Galaxy x6 - приложение с магазина ставится и работает хорошо, а с apk ставится но не работает, может какие настройки?
ктонибудь сталкивался?

aspirin
05.09.2018
17:20:40
Я могу снять профилирование с expo или мне нужно его скомпилить?

あなたの神
05.09.2018
17:21:47

aspirin
05.09.2018
17:22:03

Stas
05.09.2018
17:22:09

あなたの神
05.09.2018
17:22:12

aspirin
05.09.2018
17:22:36
Да
а какое имя пакета задавать )))

Stas
05.09.2018
17:23:47
ключи не должны быть рандомными)

aspirin
05.09.2018
17:25:52

Stas
05.09.2018
17:26:30
ну с рандомными ключами каждый элемент реднерится каждый раз с нуля

aspirin
05.09.2018
17:26:41
я сейчас привожу все в нормальный вид что бы снять 2 профалинга
1. Просто с текстом
2. С компонентом

Google

Dmitry
05.09.2018
18:05:37

aspirin
05.09.2018
18:06:33
вот этот пример работает > 30 сек
там чуть больше 500 строк

Dmitry
05.09.2018
18:07:18
А че за getRandomKey
Убери getitem, сделай количество начальных элементов поменьше

aspirin
05.09.2018
18:19:41
Без getitem не робит

Dmitry
05.09.2018
18:22:20
Поставь FlatList
А он у тебя случаем не внутри ScrollView ????

aspirin
05.09.2018
18:23:21

Dmitry
05.09.2018
18:23:37
Убирай
Оберни в обычный view

aspirin
05.09.2018
18:25:52
Убирай
спасибо больше, его другой разработчик добавил а я не заметил
даже не вникал в его работу а теперь понял )))
Ну теперь с этим можно работать, быстренько грузит даже компонент с картинками

Dmitry
05.09.2018
18:30:22
Там по сути получается так. FlatList реагирует на скроллинг для перерисовки видимой части списка, а ScrollView вызывает событие скроллинга при изменении списка и получается, что FlatList вызывает скроллинг на ScrollView, а то в свою очередь вызывает перерисовку FlatList

aspirin
05.09.2018
18:30:46

Dmitry
05.09.2018
19:12:03
Есть у кого на примете ресурсы с шаблонами приложения, вроде темфореста

Google

Ihor
05.09.2018
19:30:13

Dmitry
05.09.2018
19:37:34

Igor
05.09.2018
20:54:30
Ни у кого здесь не было опыта с нативной зависимостью, устанавливаемой через pod'ы и содержащей сфитовый код?

Dmitry
05.09.2018
20:59:02
у нас у всех нативная зависимость)
уже глаз дергается

morda
05.09.2018
21:01:50
гггг точняк)

Алексей
05.09.2018
21:12:34

Igor
05.09.2018
21:13:51
я скорее вот про это https://github.com/facebook/yoga/issues/711

Алексей
05.09.2018
21:15:16

Igor
05.09.2018
21:15:46
я думаю это почти ко всем подам со свифтом относится

Peter
05.09.2018
21:19:23

Gena
05.09.2018
21:28:27
я скорее вот про это https://github.com/facebook/yoga/issues/711
Я некоторое время назад общался с одним товарищем и получилось это победить (у него своим способом, у меня своим). Я патчил RN (но мы всё равно его патченный используем)... патчи отдокументированны здесь: https://github.com/vovkasm/react-native/commits/cocoapods-frameworks
В основную нашу ветку я их не вносил, т.к. мы фреймворки не используем.
И сейчас попробую найти переписку (в одном из ишьюс была)

Igor
05.09.2018
21:38:18

Gena
05.09.2018
21:40:29
На всякий случай... там народ тоже сделал фикс фикса фиксов и замутил плагин к cocoapods, который патчит RN на лету ))) Это не я если что, я на такое извращение не способен и не пользуюсь... но может пригодится кому ))) Вот он: https://github.com/orta/cocoapods-fix-react-native

Igor
05.09.2018
21:41:41
Да, вот я это тоже нашел и мне не помогло сходу
хотя я наверное попробую завтра твой форк запутстить, вдруг связет

Gena
05.09.2018
21:44:11
Да. Открыть в Xcode, смотреть на структуру проекта и подробный вывод процесса сборки. Но сперва убедиться, что в папке node_modules всё есть, т.е. выполнена команда npm install