Vit
Pavel
Только сегодня задавался вопросом как статистику глянуть - чего там в бандл залетело
Vit
мдя у эпла по марке девайса статы нету
Vit
айфон и всё)
Pavel
Вот, значит не я один заметил это) Уже подумываю о том, чтобы выпилить его из проекта
Pavel
Pavel
И это несмотря на аккуратные импорты вида import debounce from 'lodash/debounce';
Vit
пакеты тянут)
Vit
в вебе бы так заморачивались)
Pavel
там вообще дичь
Vit
ну там джун «можно я либу добавлю» смотрю +50кб к бандлу, смотрю по смыслу - 10 строк вёрстки)
Pavel
Из-за аккуратных импортов он вставил библиотеку два раза: один раз лодаш целиком, другой - точечные импорты
Vit
азазазазаза
Vit
чото ржу)
Pavel
+ пакет rn-camera со своим lodash-ем приходит
Gena
)))
Stas
Gena
Stas
Stas
Можно из натива выжать все, что можно, потом пробовать эти эксперименты. Я ещё видел как кто загружал часть js через eval. хз можно ли так скажем загрузить redux)
Pavel
Stas
Stas
Или на xamarin.
Pavel
Там вроде тоже не бесплатно
Stas
А че ужас. Опенсорс, stable, шарп даст фору хоть котлину, хоть js, в плане выразительности и системы типов. Не хайп, и экосистема хуже.
Stas
А котлин нейтив почему не сжечь?
Gena
Или на xamarin.
А у него так же как у nativescript нет абстракций над нативным ui?
Stas
Gena
Я ещё раз сделаю с последним метро... через пару часов, как до компа доберусь
http://vovkasm.skitch.vovkasm.org/mainbundle_21722A0D.png
Красное - не должно было попасть в бандл ни при каких обстоятельствах и тут даже dead code elimination не нужен… просто надо правильно es-импорты реализовать Оранжевое - вот здесь умный транслятор должен засечь и вырезать куски неиспользуемого кода… это, однако, довольно сложная задача Зеленое - это код наших моделей и приложения. С моделями (core) интересно другое - размер сейчас 89Kb, этот модуль перед установкой компилится rollup в один es модуль(файл), который после минификации в приложении 89Kb. Фишка в том, что если его не бандлить через rollup, а целиком поставлять в приложение в исходниках, то его размер после минификации составит 91Kb… т.е. каким-то магическим образом metro на каждый файл/модуль имеет ещё оверхид…
Gena
Итого, если просто не включать в бандл то, что не импортится, размер RN упадет по меньшей мере с 525Kb -> 400Kb, т.е. на ~20%
Gena
Это собственно попытка объяснить почему я так упорно последние недели эту тему мусолю...
Gena
Это только ядро RN и только при тупом не включении того, что не используется на уровне es модулей и только грубая оценка - ну в картинке видно, как я её получил...
Gena
Просто сложил всё, что красным обведено внутри папки node_modules/react-native получилось 125Кб примерно... Если суммарно бандл на 20% уменьшится - это само по себе хорошо, но не будет стоить вставки кастомного процессинга и всех экспериментов с closure-compiler... Но это очень грубая оценка... я от closure-compiler больше ожидаю
Gena
Я просто теперь не могу это "развидеть" ))) Меня прям грызет ощущение, что у меня в продакшн бандле лежит ненужный экспериментальный Fabric рендерер ))) Вот до степени, что работать мешает )
Dmitry
на самом деле тут в бабке не ходи, там куча говна
Stas
можно написать плагин для babel который будет заменять импорты на пустые файлы для списка ненужных модулей. может уже такое есть
Gena
Gena
Я на это обратил внимание, потому что хотябы куски RN неиспользуемые хочу повыкинуть (Fabric, Experimental...)
Stas
до сих пор не понимаю, почему бы просто не включить ram-bundle и ждать лучших времен? время старта будет быстрее. ну пусть эти 20% лежат в билде, но никогда не загружаются.
Gena
Возможно, в итоге я так и сделаю ))))
Gena
Правда, я далеко не уверен, что с таким бандлингом ram был оправдан... ведь при этом загрузка каждого чанка становится медленнее
Gena
Но это так... без измерений "пальцем в небо"
Stas
ну можно похекать: на первом компоненте грузить самый минимум модулей. потом через inline require грузить второй, у которого в top level require все тяжелые модули, даже если они не нужны конкретно для него
Stas
измерит надо, это да
Dmitry
народ, а кто нибудь знает такие сервисы, типа codeopen только для RN ?
Dmitry
чтобы рисовать визуальный компоненты ?
Demuz
Здарова всем. Подскажите пожалуйста, опять старый проект мозги крутит при сборке. В чем может быть проблема? Не могу понять
Dmitry
Ну так дубликат же
Anonymous
Anonymous
Артём
Ребят, кто-нибудь делал bottomTabNavigator, динамически скрывающийся при прокрутке какого-либо списка? (как на гифке)
Dmitry
Dmitry
Ivan
Всем привет! Возникла проблема с RefreshControl на iOS. RefreshControl принимает refreshing={a || b || c}. 'a' 'b' или 'с' приходят из пропсов. Проблема в том что контент не смещается вниз когда refreshing === true и спинера не видно соответсвенно. Бывает видно как контент на пару пикселей смещается и всё. Иногда срабатывает нормально после того как ручками немного "помочь застрявшему рефрешеру" (чуть-чуть свайпнуть вниз). Сталкивался кто-нибудь с таким?
Gena
Ivan
Gena
Expo не по моей части... в RN правили несколько багов на эту тему, они легко ищутся в issues...
Gena
Но у нас до сих пор есть специальный код, который на начальной загрузке данных, вместо списка рендерит отдельный RefreshControl, и только когда данные приходят, заменяет его на список уже со своим pull-to-refresh
Alex
привет. Скажите кто-нибудь, как очистить кеш приложения в React Native ? Например если хочу создать конпку для настроек приложения "очистить кеш" Не нашел ни одного рабочего подходящего модуля.
Stas
Yergali
Всем привет. Здесь есть кто с Алматы?
Gena
Alex
Что значит само? Вы сами его писали? ;-)
да. И я конечно же не сохранял никакие данные. Но при этом если зайти в настройки телефона, выбрать приложение, там есть кнопка a delete all data . Есил ее нажать, то начинае отображать актуальные данные, Из чего я и сделал вывод что ОС сама кеширует некие данных типа как это делает браузер,
Gena
Alex
да, это внешний запрос. При этом в дебаге данные изменены как надо, но отображаются старые. Впрочем, если ось сама не кеширует, значит нужно искать где я сам ошибся и модуль для удаления кеша никчему
Aynur
я так понимаю, что это Android. То есть, если закрыть (не свернуть, а именно закрыть) приложение, и зайти обратно - данные старые?
Alex
да
Aynur
wtf? запишите видео пожалуйста
Stas
андроид на нативном уровне в некоторых случаях сохраняет куки автоматически. https://github.com/facebook/react-native/issues/14063
Stas
и вы не поймете это без дебага кода на джава)
Alex
нет, это была все-таки логическая ошбика.
Alex
спасибо за помощь,
Berik
roman G
Ребят, как выполнить этот шаг (я впервые на линуксе)