Dmitry
можно санимировать сначала уход вбок, а потом высоту до 0
Dr
суть в том что у меня есть элемент, который при скроле должен сжаться. Использую Animated. Да вроде и работало все как надо. Но только на иос. А на андроиде получаю дикое дрибезжание. Как будтно пока не отпустишь палец он не знает какое значение применить и все скачет туда сюда
Dmitry
код и как это выглядит
Dr
само дрибезжание я не покажу. А код такой const sliderHeight = props.sliderHeight.interpolate({ inputRange: [0, HEADER_SCROLL_DISTANCE], outputRange: [HEADER_MAX_HEIGHT, HEADER_MIN_HEIGHT], extrapolate: 'clamp', }); <FlatList onScroll={Animated.event( [{nativeEvent: {contentOffset: {y: props.sliderHeight}}}], )} scrollEventThrottle={1} />
Dr
прост проблема только на андроиде
Dr
анимейтед вью ж еще. Событие на флет листе, анимироваться должна дургая вьюха <Animated.View style={{ backgroundColor: 'red', opacity: sliderOpacity, height: sliderHeight, }} >
ㅤㅤㅤㅤㅤ
sure? u have to bind this function filterDatePickers() {} same as you did with it: this.setDate = this.setDate.bind(this);
it works, but why doesn't the data filtered in the component change ?? so I want to find data by date
ed.t
Народ, а насколько большие потери при транспорте react-native -> native -> react-native?
Gena
Народ, а насколько большие потери при транспорте react-native -> native -> react-native?
Их начинают мерить только в момент тормозов и то далеко не все, так что если и есть что-то по этому поводу, то в докладах от крупных компаний типа Facebook или wix... Я не встречал. В целом эти потери складываются из трех компонентов: - Происходит трансляция между JS и нативными типами данных (более-менее константа по времени, можно легко придумать способ как измерить) - Происходит копировние данных. (зависит об объема данных, в принципе тоже понятно как измерить) - Данные передаются асинхронно, поэтому полный round-trip между JS->Native->JS будет больше суммы первых двух компонентов из-за блокировки тредов (это мало предсказуемая часть, т.к. зависит от поведения всего окружения в целом)
ed.t
Их начинают мерить только в момент тормозов и то далеко не все, так что если и есть что-то по этому поводу, то в докладах от крупных компаний типа Facebook или wix... Я не встречал. В целом эти потери складываются из трех компонентов: - Происходит трансляция между JS и нативными типами данных (более-менее константа по времени, можно легко придумать способ как измерить) - Происходит копировние данных. (зависит об объема данных, в принципе тоже понятно как измерить) - Данные передаются асинхронно, поэтому полный round-trip между JS->Native->JS будет больше суммы первых двух компонентов из-за блокировки тредов (это мало предсказуемая часть, т.к. зависит от поведения всего окружения в целом)
проблема в том, что я переписал кусок pngjs чтобы запустить в react-native, но оно отрабатывает примерно за 15-30сек при обработке фоток, а именно конвертирование массива цветов в base64 изображения (для сохранения). походу, все же придется реализовать нативный модуль, и между ними буду пересылать только путь к картинке, по идее это должно работать быстрее
ed.t
в теории ведь так?)
Gena
Мне кажется натив будет работать быстрее даже если пересылать саму картинку на обработку. ))) Но да, я бы реализовывал через передачу в натив uri до исходной картинки и получения назад в JS uri на результат...
ed.t
просто до вчерашнего вечера я все еще надеялся не делать нативный модуль, но как бы 15-30 сек на обработку фотки это овердохуя, возможно конечно проблемы в алгоритме и я криво переписал, но как бы скилы не позволяют написать это с нуля)
ed.t
зато может быть потом вылью переписанный pngjs для react-native 🙂
Gena
При этом учитывая наличия всяких CoreImage в iOS и т.п. сам процессинг в нативе будет занимать миллисекунды )
Maxim 📱 D
может посмотрят и поправят если что не так написал
Gena
Есть ещё одно преимущество в передаче uri до графического ресурса. Если это фотки, то они довольно объемны и лучше их загрузить из файла, отпроцессить и сохранить в файл, освобождая память как можно быстрее.
Gena
просто до вчерашнего вечера я все еще надеялся не делать нативный модуль, но как бы 15-30 сек на обработку фотки это овердохуя, возможно конечно проблемы в алгоритме и я криво переписал, но как бы скилы не позволяют написать это с нуля)
Кстати, а на что больше всего времени уходит, профилировали? Я просто предполагал, что это в JS займет минуты для обработки тех фоток, что современные девайсы делают...
ed.t
Кстати, а на что больше всего времени уходит, профилировали? Я просто предполагал, что это в JS займет минуты для обработки тех фоток, что современные девайсы делают...
ну я там ресайзил фотку еще, забыл сказать до тысячи пикселей, в таком случае секунд 15-30 занимает, в противном приложение вообще вылетает часто, а иногда фотка парсится но я уже не помню время, около минуты, самое больше время занимает все что ниже этой строки https://github.com/lukeapage/pngjs/blob/master/lib/parser-sync.js#L86
ed.t
это логично, потому что собственно там и есть обработка) но подробнее я не смотрел
ed.t
что именно медленное
ed.t
Народ, сори за странный вопрос. https://docs.expo.io/versions/latest/guides/expokit.html Я не понял, они предлагают идти стандартным путем react-native-modules, или менять прямо файлы проекта?
ed.t
я запутался)
ed.t
не используй экспо)
так оно по умолчанию, я тут человек новенький что поставилось то и заюзал)
Maxim 📱 D
так оно по умолчанию, я тут человек новенький что поставилось то и заюзал)
ну если чисто экраны пописать, познакомиться с рн то ок)
ed.t
ну если чисто экраны пописать, познакомиться с рн то ок)
у меня приложуха уже готова, мне только осталось добавить в нее кастомную нативную функциональность и все причесать)))
ed.t
натива только без экспо
так я как раз сделал eject
ed.t
а вот дальше что они предлагают не понял, дальше все как в чистом нейтив?
Maxim 📱 D
ну да, просто через бридж кидаешь что там надо в js
Maxim 📱 D
если ты eject сделал читай оф дкументацию реакт натива, там есть все о нативных модулях и т.д.
чей ты
Что деать с такой проблемой ? Не могу добавить rn-firebase на IOS Делал все по инструкции , через pod , открыл .xcworckspace ld: library not found for -lRNFirebase clang: error: linker command failed with exit code 1 (use -v to see invocation)
чей ты
ребилд делал и метро перезапускал?
это ошибка xcode линкера! при чем тут metro!
Алексей💀
сейчас уже не вспомню
Никита
а pod install делал?
чей ты
а pod install делал?
все по инструкции
Алексей💀
с версией порядок же?
чей ты
Алексей💀
чей ты
порядок
Алексей💀
это ошибка xcode линкера! при чем тут metro!
Кстати, пробовал клин проекта сделать, pod deintegrate, pod install и билд?
чей ты
решил проблему
чей ты
Вы кстате храните ios/Pods в репозиотрии?
Eugene
Я нет
Eugene
https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
Petr E
Уверен, многие используют react-native-modal-datetime-picker <TextInput onFocus={() => { Keyboard.dismiss() this.setState({isDateTimePickerVisible: true}) }} /> Т.е при фокусе TextInput клавиатура скрывается и появляется DateTimePicker Из-за такой манипуляции возникает небольшое дерганье на экране - скрывается клавиатура появляется DateTimePicker Как избежать дерганья? Как вы используйте react-native-modal-datetime-picker ??
Dmitry
только через Keyboard.Manager
Petr E
только через Keyboard.Manager
можно подробнее? в какую сторону копнуть?
Dmitry
можно подробнее? в какую сторону копнуть?
https://github.com/douglasjunior/react-native-keyboard-manager
Petr E
ок, пасибо за наводку, попробую поэкспериментировать
чей ты
ок, пасибо за наводку, попробую поэкспериментировать
https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js#L1186-L1190
чей ты
отменяешь фокус
чей ты
и все
Petr E
и все
ты уже решал эту задачу?
чей ты
О_о
ну смотри твой кейс при клике по инпуту срабатывает фокус и открываеться клавиатура что если при клике открывать не клаву а датпикер!
чей ты
class TextInputCustom extends TextInput { _onPress = event => { // твоя логика }; }
Petr E
соглашусь
Oleg
сейчас осталась моя локальная проблема, как байты полученные из base64 преобразовать нужным образом так, чтобы снова получить изображение, возможно что-то странное говорю, но как-то так, надо "добавить" свою необходимую часть
мы подобное делали на уровне шейдеров, есть либы чтобы рабоать не на прямую в том числе и на react-native, зы даже java будет медлено работать с картинками поэтому только нативные моудли только хардкор )) да можно взять что то готвое - если подходит, но под капотом с c/c++ иначе медлено
Oleg
не помню точно но по моему исползовали gpuimage для анроида
Oleg
он есть и для иоса
Oleg
может в названии ошибаюсь давно было
Oleg
но порты есть и на react native
Oleg
https://hackernoon.com/instagram-filter-63e169a54ce3
Oleg
если этого или аналогов не хвати можно запилить свой модуль
Dmitriy
кто то делал вход okta?