@reactnative_ru

Страница 859 из 878
morda
13.10.2018
10:25:08


Pavel
13.10.2018
10:25:38
Только сегодня задавался вопросом как статистику глянуть - чего там в бандл залетело

morda
13.10.2018
10:26:37
мдя у эпла по марке девайса статы нету

айфон и всё)

Google
Gena
13.10.2018
10:28:37
Только сегодня задавался вопросом как статистику глянуть - чего там в бандл залетело
Вот здесь описывал технику: https://github.com/invertase/react-native-firebase/issues/1571

Pavel
13.10.2018
10:30:01
Вот, значит не я один заметил это) Уже подумываю о том, чтобы выпилить его из проекта

Вот здесь описывал технику: https://github.com/invertase/react-native-firebase/issues/1571
Блин, у меня lodash дважды целиком впихнут. Видимо, разные версии

И это несмотря на аккуратные импорты вида import debounce from 'lodash/debounce';

morda
13.10.2018
10:40:30
пакеты тянут)

в вебе бы так заморачивались)

Pavel
13.10.2018
10:41:02
там вообще дичь

morda
13.10.2018
10:42:07
ну там джун «можно я либу добавлю» смотрю +50кб к бандлу, смотрю по смыслу - 10 строк вёрстки)

Pavel
13.10.2018
10:42:16


morda
13.10.2018
10:42:36
азазазазаза

чото ржу)

Pavel
13.10.2018
10:43:31
+ пакет rn-camera со своим lodash-ем приходит

Gena
13.10.2018
10:45:40
)))

Google
Stas
13.10.2018
10:50:44
Ничем не плох, кроме того, что возможно не нужен )
Меня больше скорость старта беспокоит на андроиде. Ведь в любом случае это будет быстрее любого бандла.

На андроиде реакт в довесок с собой таскает старую как хвост мамонта библиотеку js core - ~4 мб на ARM и 5 на Intel. И всё это должно загрузиться в память ещё до того, как вы увидите хотя бы первый экран. К счастью, большинство смартфонов достаточно быстрые, чтобы сделать это
proguard, отдельные билды для каждую архитектуру. Firebase умеет в модульность, можно подключать только нужное. Ещё можно сделать сплеш скрин нативным или ресурсом, во втором случае будет показываться сразу после клика на приложение.

Можно из натива выжать все, что можно, потом пробовать эти эксперименты. Я ещё видел как кто загружал часть js через eval. хз можно ли так скажем загрузить redux)

Pavel
13.10.2018
11:00:12
Stas
13.10.2018
11:04:55
Pavel
13.10.2018
11:04:56
Там вроде тоже не бесплатно

Denis
13.10.2018
11:05:07
Или на xamarin.
Ненене, этого ужаса не надо

Stas
13.10.2018
11:07:03
Ненене, этого ужаса не надо
А че ужас. Опенсорс, stable, шарп даст фору хоть котлину, хоть js, в плане выразительности и системы типов. Не хайп, и экосистема хуже.

Stas
13.10.2018
11:09:47
Только это ксамарин, так что «сжечь»
А котлин нейтив почему не сжечь?

Gena
13.10.2018
11:09:54
Или на xamarin.
А у него так же как у nativescript нет абстракций над нативным ui?

Denis
13.10.2018
11:10:33
А котлин нейтив почему не сжечь?
Если будут юзать полноценно и он окажется кривым - то и его «сжечь»

Gena
13.10.2018
13:47:39
Я ещё раз сделаю с последним метро... через пару часов, как до компа доберусь
http://vovkasm.skitch.vovkasm.org/mainbundle_21722A0D.png Красное - не должно было попасть в бандл ни при каких обстоятельствах и тут даже dead code elimination не нужен… просто надо правильно es-импорты реализовать Оранжевое - вот здесь умный транслятор должен засечь и вырезать куски неиспользуемого кода… это, однако, довольно сложная задача Зеленое - это код наших моделей и приложения. С моделями (core) интересно другое - размер сейчас 89Kb, этот модуль перед установкой компилится rollup в один es модуль(файл), который после минификации в приложении 89Kb. Фишка в том, что если его не бандлить через rollup, а целиком поставлять в приложение в исходниках, то его размер после минификации составит 91Kb… т.е. каким-то магическим образом metro на каждый файл/модуль имеет ещё оверхид…

Итого, если просто не включать в бандл то, что не импортится, размер RN упадет по меньшей мере с 525Kb -> 400Kb, т.е. на ~20%

Это собственно попытка объяснить почему я так упорно последние недели эту тему мусолю...

Google
Alexander
13.10.2018
14:54:41
20%, 125 кб это как то даже не заметно

Gena
13.10.2018
15:07:52
Это только ядро RN и только при тупом не включении того, что не используется на уровне es модулей и только грубая оценка - ну в картинке видно, как я её получил...

Просто сложил всё, что красным обведено внутри папки node_modules/react-native получилось 125Кб примерно... Если суммарно бандл на 20% уменьшится - это само по себе хорошо, но не будет стоить вставки кастомного процессинга и всех экспериментов с closure-compiler... Но это очень грубая оценка... я от closure-compiler больше ожидаю

Я просто теперь не могу это "развидеть" ))) Меня прям грызет ощущение, что у меня в продакшн бандле лежит ненужный экспериментальный Fabric рендерер ))) Вот до степени, что работать мешает )

Dmitry
13.10.2018
15:16:48
на самом деле тут в бабке не ходи, там куча говна

Alexander
13.10.2018
15:17:13
это напоминает момент когда начинаешь кастомизировать свой воркфлоу и сетап на линуксе, вроде и без этого можна, но вот аж типает

Stas
13.10.2018
15:21:11
можно написать плагин для babel который будет заменять импорты на пустые файлы для списка ненужных модулей. может уже такое есть

Gena
13.10.2018
15:21:49
можно написать плагин для babel который будет заменять импорты на пустые файлы для списка ненужных модулей. может уже такое есть
Мне кажется в доках к ram-bundle что-то такое упоминалось... но это совсем уж ручная настройка...

Я на это обратил внимание, потому что хотябы куски RN неиспользуемые хочу повыкинуть (Fabric, Experimental...)

Stas
13.10.2018
15:23:43
до сих пор не понимаю, почему бы просто не включить ram-bundle и ждать лучших времен? время старта будет быстрее. ну пусть эти 20% лежат в билде, но никогда не загружаются.

Gena
13.10.2018
15:25:06
Возможно, в итоге я так и сделаю ))))

Правда, я далеко не уверен, что с таким бандлингом ram был оправдан... ведь при этом загрузка каждого чанка становится медленнее

Но это так... без измерений "пальцем в небо"

Stas
13.10.2018
15:27:35
ну можно похекать: на первом компоненте грузить самый минимум модулей. потом через inline require грузить второй, у которого в top level require все тяжелые модули, даже если они не нужны конкретно для него

измерит надо, это да

Dmitry
13.10.2018
16:16:01
народ, а кто нибудь знает такие сервисы, типа codeopen только для RN ?

чтобы рисовать визуальный компоненты ?

Demuz
13.10.2018
18:31:28


Dmitry
13.10.2018
19:15:15
Ну так дубликат же

Google
Dmitry
13.10.2018
22:47:28
https://builderx.io/
Спасибо!

Думаю, что надо делать кастомный с анимацией и просто вешать смену позиции на onScroll

Иван
14.10.2018
07:44:29
Всем привет! Возникла проблема с RefreshControl на iOS. RefreshControl принимает refreshing={a || b || c}. 'a' 'b' или 'с' приходят из пропсов. Проблема в том что контент не смещается вниз когда refreshing === true и спинера не видно соответсвенно. Бывает видно как контент на пару пикселей смещается и всё. Иногда срабатывает нормально после того как ручками немного "помочь застрявшему рефрешеру" (чуть-чуть свайпнуть вниз). Сталкивался кто-нибудь с таким?

Иван
14.10.2018
08:38:23
Правильно я понимаю, что это в связке с ScrollView или FlatList используется? Если да, то какая версия RN?
Да, со ScrollView. а RN - expo 28. Плюс забыл упомянуть что все это внутри Container от NativeBase.

Gena
14.10.2018
08:42:15
Expo не по моей части... в RN правили несколько багов на эту тему, они легко ищутся в issues...

Но у нас до сих пор есть специальный код, который на начальной загрузке данных, вместо списка рендерит отдельный RefreshControl, и только когда данные приходят, заменяет его на список уже со своим pull-to-refresh

ALIAKSANDR
14.10.2018
10:44:35
привет. Скажите кто-нибудь, как очистить кеш приложения в React Native ? Например если хочу создать конпку для настроек приложения "очистить кеш" Не нашел ни одного рабочего подходящего модуля.

ALIAKSANDR
14.10.2018
10:52:05
а кеш чего? Если вы про AsyncStorage, то http://facebook.github.io/react-native/docs/asyncstorage#clear
у меня приложение само сохраняет некий кеш, из-за чего некоторые данные не обновляется пока я не зайду в настройки телефона и не удалю для этого приложения весь кеш.

Yergali
14.10.2018
10:52:40
Всем привет. Здесь есть кто с Алматы?

ALIAKSANDR
14.10.2018
11:09:26
Что значит само? Вы сами его писали? ;-)
да. И я конечно же не сохранял никакие данные. Но при этом если зайти в настройки телефона, выбрать приложение, там есть кнопка a delete all data . Есил ее нажать, то начинае отображать актуальные данные, Из чего я и сделал вывод что ОС сама кеширует некие данных типа как это делает браузер,

ALIAKSANDR
14.10.2018
11:14:06
да, это внешний запрос. При этом в дебаге данные изменены как надо, но отображаются старые. Впрочем, если ось сама не кеширует, значит нужно искать где я сам ошибся и модуль для удаления кеша никчему

Aynur
14.10.2018
11:21:56
я так понимаю, что это Android. То есть, если закрыть (не свернуть, а именно закрыть) приложение, и зайти обратно - данные старые?

ALIAKSANDR
14.10.2018
11:22:09
да

Aynur
14.10.2018
11:22:33
wtf? запишите видео пожалуйста

Google
Stas
14.10.2018
11:23:51
андроид на нативном уровне в некоторых случаях сохраняет куки автоматически. https://github.com/facebook/react-native/issues/14063

и вы не поймете это без дебага кода на джава)

ALIAKSANDR
14.10.2018
11:36:52
нет, это была все-таки логическая ошбика.

спасибо за помощь,

RoGr
14.10.2018
16:17:11


Eugene
14.10.2018
16:20:36
Через терминал. Заходишь в хомяк, создаёшь файл,если его нет, и потом добавляешь нужные строки

RoGr
14.10.2018
16:22:20
Через терминал. Заходишь в хомяк, создаёшь файл,если его нет, и потом добавляешь нужные строки
Что такое хомяк и как в него зайти? (Как я понял это $HOME, но второй вопрос открыт) И ещё вопрос, эти настройки потом сохранятся глобально?

Eugene
14.10.2018
16:24:10
Что такое хомяк и как в него зайти? (Как я понял это $HOME, но второй вопрос открыт) И ещё вопрос, эти настройки потом сохранятся глобально?
Хомяк - папка home для твоего юзера. Настройки сохраняться для твоего юзера. Каждый пользователь на компе сам может создавать и редактировать свой башпрофайл.

Обычно когда запускаешь терминал, он с неё и стартует. Смотри приглашение терминала.

Mikhail
14.10.2018
17:16:59
cd ~

Dmitry
14.10.2018
19:59:31
Народ, вопрос такой. Можем есть кто, кто хочет что-то совместное замутить, у меня есть пару идей, может у вас есть, но одному тяжело. Можно было бы на досуге попилить =)

Страница 859 из 878