Dmitry
можно санимировать сначала уход вбок, а потом высоту до 0
Dr
суть в том что у меня есть элемент, который при скроле должен сжаться. Использую Animated. Да вроде и работало все как надо. Но только на иос. А на андроиде получаю дикое дрибезжание. Как будтно пока не отпустишь палец он не знает какое значение применить и все скачет туда сюда
Dmitry
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,
}}
>
ㅤㅤㅤㅤㅤ
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 🙂
Maxim 📱 D
Gena
При этом учитывая наличия всяких CoreImage в iOS и т.п. сам процессинг в нативе будет занимать миллисекунды )
Maxim 📱 D
может посмотрят и поправят если что не так написал
Gena
Есть ещё одно преимущество в передаче uri до графического ресурса. Если это фотки, то они довольно объемны и лучше их загрузить из файла, отпроцессить и сохранить в файл, освобождая память как можно быстрее.
Gena
Aleksei
ed.t
Кстати, а на что больше всего времени уходит, профилировали? Я просто предполагал, что это в JS займет минуты для обработки тех фоток, что современные девайсы делают...
ну я там ресайзил фотку еще, забыл сказать до тысячи пикселей, в таком случае секунд 15-30 занимает, в противном приложение вообще вылетает часто, а иногда фотка парсится но я уже не помню время, около минуты, самое больше время занимает все что ниже этой строки https://github.com/lukeapage/pngjs/blob/master/lib/parser-sync.js#L86
ed.t
это логично, потому что собственно там и есть обработка) но подробнее я не смотрел
ed.t
что именно медленное
Anonymous
ed.t
Народ, сори за странный вопрос.
https://docs.expo.io/versions/latest/guides/expokit.html
Я не понял, они предлагают идти стандартным путем react-native-modules, или менять прямо файлы проекта?
ed.t
я запутался)
Maxim 📱 D
ed.t
не используй экспо)
так оно по умолчанию, я тут человек новенький что поставилось то и заюзал)
Maxim 📱 D
Maxim 📱 D
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)
Dmitry
Алексей💀
Алексей💀
сейчас уже не вспомню
Никита
а 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
Dmitry
только через Keyboard.Manager
чей ты
чей ты
Petr E
ок, пасибо за наводку, попробую поэкспериментировать
чей ты
отменяешь фокус
чей ты
и все
Petr E
Petr E
и все
ты уже решал эту задачу?
чей ты
О_о
ну смотри твой кейс
при клике по инпуту срабатывает фокус и открываеться клавиатура
что если при клике открывать не клаву а датпикер!
чей ты
class TextInputCustom extends TextInput {
_onPress = event => {
// твоя логика
};
}
Petr E
чей ты
Petr E
соглашусь
ed.t
Oleg
не помню точно но по моему исползовали gpuimage для анроида
Oleg
он есть и для иоса
Oleg
может в названии ошибаюсь давно было
Oleg
но порты есть и на react native
Oleg
https://hackernoon.com/instagram-filter-63e169a54ce3
Oleg
если этого или аналогов не хвати можно запилить свой модуль
Dmitriy
кто то делал вход okta?