Pasha
macos
Tupalov
macos
Так вопрос был для @gblack9 :)
Max
не писал еще
Vlad
фейсбук меня добивает. наконец-то он у меня ведёт себя также как и заказчика. т.е. сломался. при логине или регистрации открывается прилажка фейсбука и ввожу данные, потом либо крэш приложения либо просто возврат к экрану (эта та проблема если прилажка фейсбука есть на андроиде)
Sergey
да софт в больших команиях не всегда = идеал
Sergey
🙂
Sergey
как правило нет 🙂
Sergey
но они смогли создать RN для нас 🙂
Sergey
что тоже не идеал далеко, но конкурентов нет 🙂
Nikolay
кто работает на RN, подскажите, приходится в добавок писать на нативном?
Sergey
нет, особенно если используешь Expo
Sergey
там возможности на нативном писать нет, только если детач
Nikolay
нет, особенно если используешь Expo
что есть Expo? пошел гуглить
Sergey
текущий функционал - покрывает 90 % задач
Max
обычно от Expo советуют отказываться, или уже нет?
Sergey
EXPO это обработчик CRNA + набор библиотек
Sergey
за полседние пол года - появилось масса всего на Expo
Max
был гемор с expo, тут же на канале и советовали избавиться, избавился) может что изменилось…
Sergey
быстрее и удобнее, если освоиться
Nikolay
для работы в соло expo норм?
Sergey
у меня были проблемы, я их решил
Sergey
да, вполне
Sergey
на expo я пока заметил две ключевые проблемы - это остуствие двух либ по bt и nfc
Max
у меня были проблемы, я их решил
есть что-то в app store посмотреть?
Nikolay
да, вполне
спасибо, прям вдохновил меня, использую для знакомства с rn
Sergey
спасибо, прям вдохновил меня, использую для знакомства с rn
на FB рекомендуют использовать для CRNA и другой альтернативы нет
Sergey
🙂
Nikolay
для чего?
Sergey
CRNA
Sergey
Create React Native App
Nikolay
ааа
Nikolay
👍
Sergey
после выгрузки у тебя также будет возможность делать апдейт приложения без модерации например
Sergey
и без повторой загрузки бинарника
Sergey
+ продвинутая либа по нотификации в комплекте, пермишенам и тп
Nikolay
вообще супер
Sergey
если не понравится - можешь сделать детач
Sergey
и перейти на стандартный RN
Sergey
но я писал и там и там, и каждый раз возвращался в Expo
Sergey
🙂 я бы так не сказал, именно потому что дебаг в экспо посуровей, особенно в продакшен, а на мак пока удобнее даже с expo
Sergey
expo быстрее и удобнее, как по скорости работы, так и по доп либам
Sergey
да за пол года там много чего поменялось 🙂
Roman
Добрый день Пытаюсь прокрутить FlatList к последнему эллементу и что-то не получается scrollToEnd = () => this.list && this.list.scrollToEnd({animated: true}) <FlatList ref={node => { this.list = node }} data={this.state.data} keyExtractor={(item, index) => index.toString()} renderItem={({item}) => <View> <Text>{item.title}</Text> <Text>{item.data}</Text> <Text>{item.dataType}</Text> </View> } /> пытался оборачивать в setTimeout не помогло
Sergey
так свои библиотеки svg надо использовать
Sergey
под expo
Sergey
так запустил пример на андройде, все четко квадрат - квадрат, круг- круг 🙂
Gena
А на какой ОС вы работаете?
macOS, android разработку сейчас на linux переношу (т.к. Apple в high sierra что-то такое сделала с WindowServer (это как-то с их миграцией на metal2 связано), что теперь некоторые фичи OpenGL, используемые в Android Emulator или Android Studio роняют мне ось)
Александр
под mac сидишь?
Gena
Ясно, понятно. Видимо поэтому у тебя не возникало проблем с RN 0.56 https://github.com/facebook/metro/issues/181
Этой проблемы не возникало. Там в master уже что-то коммитили на эту тему... сейчас поищу
Tupalov
Оказывается RN не запускает тесты в окружении Windows, поэтому некоторые такие мажорные баги просачиваются в релиз, даже после многократных релиз-кандидатов
Tupalov
Этой проблемы не возникало. Там в master уже что-то коммитили на эту тему... сейчас поищу
Ага, только парень 4 часа назад отписал, что это не помогло
Tupalov
Да и я только что проверял тоже, проблема воспроизводится
Gena
Да и я только что проверял тоже, проблема воспроизводится
Возможно (они до сих пор свои велосипеды строят с регекспами, вместо того чтоб уже готовыми решениями пользоваться). Но чтоб не было недопонимания, я про этот коммит: https://github.com/facebook/react-native/commit/3ac86c366c9
Gena
И да... с тестированием у них тоже треш...
Tupalov
Да, это он. Вот ребята тут обсуждают как раз про него https://github.com/facebook/metro/issues/181#issuecomment-405858969
Tupalov
Я просто решил свой небольшой проект перенести с RN 0.53.3 на последнюю версию, и уже второй день мудохаюсь. Плюнул с последней, решил хотя бы на предыдующую 0.55, т.к. там не такие страшные breaking changes.. и все равно какие-то проблемы по типу той, что я писал выше.
Tupalov
Коллеги, доброе утро. Обновлялся ли кто-то до RN 0.55.4 с установленным storybook и addon'ом к нему @dump247/storybook-state? Я обновлялся с версии 0.53.3. Возникает проблема, когда metro-bundler пытается собрать для меня js бандл. Выдается ошибка следующего типа: error: bundling failed: ReferenceError: Unknown plugin "transform-react-remove-prop-types" specified in "C:\\GIT\\rn\\node_modules\\@dump247\\storybook-state\\.babelrc" at 0, attempted to resolve relative to "C:\\GIT\\rn\\node_modules\\@dump247\\storybook-state" Такое чувство, что бандлер пытается собрать этот addon из исходников на основании его .babelrc, где как раз указано, что нужен плагин transform-react-remove-prop-types, хотя эта библиотека предоставляет уже транспиленную версию. @dump247/storybook-state/package.json { ... "main": "dist/index.js" ... } Может кто-то с похожей проблемой сталкивался?
Вот этой.. причем нашел очень похожий кейс, что bundler пытается транспайлить скрипты, которые должны браться из диста. Описание в этом комменте https://github.com/facebook/react-native/issues/14530#issuecomment-313208426
Tupalov
Но решения так и не нашел. И не очень пойму, что именно надо делать )
Gena
Я в какой-то момент очень надеялся, что haul будут активно развивать, тогда от всей этой прослойки с нестабильным metro и глупейшей haste можно было бы отказаться... но они затормозили в развитии... но хотя бы haste они начали выпиливать...
Tupalov
Я так понял, что он должен решать какую-то проблему с модулями?
Aleksei
А в двух словах, чем занимается haste?
это то как они файлы резолвят внутри) просто походите по исходникам и посмотрите на require)
Gena
почему haste глупейший?) то что непривычно и сходу совсем непонятно, это да)
Может немного эмоционально выразился. Сейчас объясню, постараюсь кратко. Когда я учил javascript, то одной из вещей, восхитившей меня, была система модулей, в которой один и тот же пакет может существовать в разных версиях. Из тех языков, что я тогда знал, никто этого не умел и это приводило к страшному гемморою с конфликтующими зависимостями, когда тебе нужен модуль B, который зависит от A версии 1 и модуль C, который тоже зависит от A, только версии 2. И всё... достучаться до автора модуля B невозможно... при большом кол-ве модулей это становится гигантской проблемой. Вызвает её то, что в большинстве других языков пространство имен модулей глобально, т.е. в Perl, если у тебя есть модуль DBIx::Class, то это всё, ничего больше он в это имя не положит, если ты там что-то поправишь, то это увидят все остальные модули и т.п. В компилируемых языках ещё хуже... там для совместимости со стандартным редактором связей все именованные экспортируемые сущности глобальны. Т.е. нельзя иметь в C++ два класса с одинаковым именем. Соотвественно две версии одной и той же библиотеки. И так далее... В javascript же, модуль импортируется локально... и это позволяет избежать всех подобных проблем (да, добавляет другую, типа модуль A может производить объекты, которые если скормить другой версии того же модуля, вызовут ошибки) это добавляет гибкости, оставляя возможность редкие проблемы решать людям. И вот я вижу, что в погоне за краткостью написания импортов, кое-кто берет и убивает эту гибкость одним легким движением руки. Не глупо ли? Заодно можно добавить сюда медленный ресолвинг (это конкретно haste), т.к. теперь надо не только по fs погулять, но ещё и каждый файл прочитать чтоб эти макрекры найти. Это вызывает необходимость иметь сложную систему кеша, которая ломается и всё равно работает не очень быстро, зато жрет память. Достаточно? )))
Aleksei
Может немного эмоционально выразился. Сейчас объясню, постараюсь кратко. Когда я учил javascript, то одной из вещей, восхитившей меня, была система модулей, в которой один и тот же пакет может существовать в разных версиях. Из тех языков, что я тогда знал, никто этого не умел и это приводило к страшному гемморою с конфликтующими зависимостями, когда тебе нужен модуль B, который зависит от A версии 1 и модуль C, который тоже зависит от A, только версии 2. И всё... достучаться до автора модуля B невозможно... при большом кол-ве модулей это становится гигантской проблемой. Вызвает её то, что в большинстве других языков пространство имен модулей глобально, т.е. в Perl, если у тебя есть модуль DBIx::Class, то это всё, ничего больше он в это имя не положит, если ты там что-то поправишь, то это увидят все остальные модули и т.п. В компилируемых языках ещё хуже... там для совместимости со стандартным редактором связей все именованные экспортируемые сущности глобальны. Т.е. нельзя иметь в C++ два класса с одинаковым именем. Соотвественно две версии одной и той же библиотеки. И так далее... В javascript же, модуль импортируется локально... и это позволяет избежать всех подобных проблем (да, добавляет другую, типа модуль A может производить объекты, которые если скормить другой версии того же модуля, вызовут ошибки) это добавляет гибкости, оставляя возможность редкие проблемы решать людям. И вот я вижу, что в погоне за краткостью написания импортов, кое-кто берет и убивает эту гибкость одним легким движением руки. Не глупо ли? Заодно можно добавить сюда медленный ресолвинг (это конкретно haste), т.к. теперь надо не только по fs погулять, но ещё и каждый файл прочитать чтоб эти макрекры найти. Это вызывает необходимость иметь сложную систему кеша, которая ломается и всё равно работает не очень быстро, зато жрет память. Достаточно? )))
сейчас такая "мода" есть, что создают папку с модулем, а внутри index.js, так вот потом этих непонятных файлов index становятся куча) с haste ты хоть гарантировано find-ом найдешь быстро файл) но это конечно все равно ооочень непривычно видеть) понятно что как всегда трейд оф, видимо фб хорошо так жилось, поди пойми что им нравится 😄
Gena
сейчас такая "мода" есть, что создают папку с модулем, а внутри index.js, так вот потом этих непонятных файлов index становятся куча) с haste ты хоть гарантировано find-ом найдешь быстро файл) но это конечно все равно ооочень непривычно видеть) понятно что как всегда трейд оф, видимо фб хорошо так жилось, поди пойми что им нравится 😄
фб с этим хорошо жилось, пока было 5 проектов, которые хотели шарить код и быстро этот шареный код править. Эта же система не скейлится на 55 проектов, потому что позволяет неконтролируемые правки в шареном коде, для него не запускаются тесты и т.п. В react они с haste съехали. В RN в процессе, но процесс этот долог теперь... )
Gena
Они, кстати в master маркеры уже выпилили из файлов, оказывается в рай-оне вот этих коммитов: https://github.com/facebook/react-native/commit/eeab57aa2638565
Tupalov
@savelichalex @gblack9 может вы знаете. Я вот так и не очень понял, это теперь нормально, что metro пытается транспилить третьи библиотеки из node_modules на основе .babelrc у каждой библиотеки?
Tupalov
Я сейчас установил RN 0.55.4, установил storybook, и если запустить, то все ок. Но если к storybook добавить addon @dump247/storybook-state, у которого свой собственный .babelrc с плагином transform-react-remove-prop-types и пресетами, то в этом случае бандлер мне выдает сразу ошибку error: bundling failed: ReferenceError: Unknown plugin "transform-react-remove-prop-types" specified in "C:\\GIT\\sandbox\\rn_0554\\node_modules\\@dump247\\storybook-state\\.babelrc" at 0, attempted to resolve relative to "C:\\GIT\\sandbox\\rn_0554\\node_modules\\@dump247\\storybook-state"
Gena
@savelichalex @gblack9 может вы знаете. Я вот так и не очень понял, это теперь нормально, что metro пытается транспилить третьи библиотеки из node_modules на основе .babelrc у каждой библиотеки?
Не знаю... тренд был вообще не транспилить их... и чтоб включить транспиляцию для них, надо было отдельно регексп писать в rn-cli.config.js (или package.json)
Tupalov
Не знаю... тренд был вообще не транспилить их... и чтоб включить транспиляцию для них, надо было отдельно регексп писать в rn-cli.config.js (или package.json)
Странно, при использовании RN 0.53 как раз не транспилились 3и библиотеки, а сейчас, получается, транспилятся.. только я никак, блин, не пойму - это НОРМАЛЬНО или НЕТ? 😂
Tupalov
Т.е. вообще-то для меня - это не нормально, ведь авторы библиотек транспилят все за нас при публикации в npm
Gena
ща... ищу... какая у вас версия metro?
Tupalov
плюсую) тоже помню в каком то из релизов про это говорили)
А выходит что наоборот - транспилят все. Даже интересно стало, поищу такой релиз