@reactnative_ru

Страница 130 из 878
hlomzik
03.04.2017
17:01:08
может попробовать пробросить событие через animated?
пробовал, толку ноль. все равно железно скроллится блок, а потом событие пытается его поставить на нужное место. получаются скачки

т.е. нужны статичные элементы, которые не скроллятся по событию

ну т.е. событие приходит, а элементы двигаю я

хммм... stickyHeader можно попробовать

Google
Алексей
03.04.2017
17:04:10
hlomzik
03.04.2017
17:08:01
Боже мой дааааа

вот этого не понял
ну закрепленные элементы. получается элемент, который не мешает скроллить ScrollView и при этом сам не скроллится. собственно, по определению :)

Valentin
03.04.2017
20:22:10
@shergin более серьезный вопрос - нет планов добавить нормльный http клиент, кроме веб-совместимых?
Как мне кажется, тут точно такое же дело, как и с поддержкой видео. Все это области, которые должны быть вынесены из ядра. Я лично не думаю что Фейсбук будет реализовывать что-то столь узкоспециализированное внутри ядра RN, т.к. мы больше сосредоточны над устранением реальной боли и "полировкой" существующих "системных" решений.

Vladimir
03.04.2017
20:22:44
Ну хоть бы коды ошибок добавить

Valentin
03.04.2017
20:25:40
Ну хоть бы коды ошибок добавить
Если конкретная функциональность имеет смысл сразу на обоих платформах, и явно/прозрачно имплементируется на тех низскоуровневых системых библиотеках что используются сейчас... Я буду рад пропушить PR c этими правками.

Vladimir
03.04.2017
20:26:15
Я готов в принципе запилить на обеих платформах

Valentin
03.04.2017
20:26:17
Но, еще раз, это должно быть что-то _очевидное_ by design, что-то что сочетается с текущем уровнем имплементации.

Vladimir
03.04.2017
20:26:31
Надо помостреть что там по различиям, конечно

С другое стороны, например в статусе сети забили на различия, и нормально

Valentin
03.04.2017
20:27:15
Как я понял, Владимир, твоя (ваша) задача сущесвенно уже и требует "более умной" низкоуровневой сетевой библиотеки.

Vladimir
03.04.2017
20:27:45
Ну с одной стороны, да, с другой стороны просто добавить в ошибки код наверно будет уже достаточно

Valentin
03.04.2017
20:27:53
(Я не очень знаком со всем этим, но легко допускаю что в текущей реализации есть "уйма места для улучшений".)

Google
Vladimir
03.04.2017
20:27:58
Но проблема в том что это уже расширение веб-апи

Valentin
03.04.2017
20:28:26
Да, это реально проблема.

Vladimir
03.04.2017
20:28:31
В общем моя идея в том чтобы в XHR и fetch в ошибки добавить код ошибки

Или сделать функцию getNetworkErrorCode(error)

Так почище с точки зрения совместимости

Valentin
03.04.2017
20:29:19
Я не могу обещать что мои коллеги заапрувят это, ибо очень важно правильный баланс API и фич.

Vladimir
03.04.2017
20:29:53
Ну я в принципе понимаю, что это может идти вразрез с концепцией

Но мне кажется все таки для мобильных приложений это важно

Denis
03.04.2017
20:30:44
Андроидный OkHttp передает вам привет

Vladimir
03.04.2017
20:31:14
Андроидный OkHttp передает вам привет
Там все хорошо или все плохо?

Valentin
03.04.2017
20:31:16
Т.е. еще раз, как мне кажется, твоя (мы на ты?..) проблема должна решаться через отдельную сетевую библиотеку с особым, магически-широким API. Я не большой специалист в этом.

Denis
03.04.2017
20:31:24
Valentin
03.04.2017
20:32:06
Т.е. например можно решить проблему так: взять опенсорс-реализацию HTTP протокола какую-нибудь и полностью обернуть ее в либу для iOS и Android и использовать "как есть". Будет мощь + совместимость.

Vladimir
03.04.2017
20:32:10
Это единственное чего реально сходу нехватает

Valentin
03.04.2017
20:33:53
Я боюсь, это плохой аргумент. :( Фактически это твоя текущая потребность, завтра будет другая. А API должен оставаться простым для всех.

Vladimir
03.04.2017
20:34:35
Ну вот это я лично не понимаю. Мне кажется это всем важно, и вообще фундаментальная вещь - уметь интерпретировать ошибки

Без этого ни ретрай сделать нельзя, не сообщение адекватное вывести

Denis
03.04.2017
20:35:29
Там все хорошо или все плохо?
pipeline есть, кеши есть, интерцепторы есть, асинк/синк режимы есть

Vladimir
03.04.2017
20:35:50
Не вижу, там есть свои классы эксепшнов?

Google
Vladimir
03.04.2017
20:37:27
Меня конкретно интересует, какие там экспешны кидаются, какие ситуации можно различать

Denis
03.04.2017
20:37:43
Мы сейчас про андроид?)

Vladimir
03.04.2017
20:37:57
Ну вот прямо сейчас - да

Denis
03.04.2017
20:38:05
на изи

Vladimir
03.04.2017
20:38:55
Я так понял там IOException только на все?

Denis
03.04.2017
20:39:17
Его вполне хватает

Описалово там нормальное

Один фиг я ерез ретрофит все гоняю

Vladimir
03.04.2017
20:39:40
Ну программно то есть не очень весело

Нужно завязываться на сообщение

Denis
03.04.2017
20:40:15
Вот сейчас даже проект пну

Vladimir
03.04.2017
20:41:33
@shergin в общем я issue создам, пусть будет

Valentin
03.04.2017
20:42:45
Всегда имеет смысл создать ишшью! Честно говоря, я в этом (нетворкинг в RN) не большой копенгаген, я больше про UI.

Vladimir
03.04.2017
20:43:33
Просто может пнешь кого надо, а то не знаю как там у вас на issue отвечают

В facebook/flow можно полгода ждать, и ничего не произойдет

Запилил: https://github.com/facebook/react-native/issues/13277

Alexander
03.04.2017
20:59:02
лайкаем?)

Valentin
03.04.2017
20:59:48
Мы очень трепетно относитмся со всем issue, но не всегда можем быстро отвечать. Да, иногда все очень "долго", но это не потому что мы ленивые, а потому что большинство команда в Фейсбуке очень маленькие и... "сосредоточенные". К примеру, основная команда RN (только те, кто работает только на RN) всего 8 человек.

Denis
03.04.2017
21:01:06
Нужно завязываться на сообщение
Тип эксепшна вытаскивай и вперед

Google
Alexander
03.04.2017
21:06:03
@shergin а не планируете создать список популярных (и главное активных либ), чтобы было проще найти что-то стоющее (было б круто если б они апрувились и отсеивались старые), так как сейчас появляется много либ с приставкой react-native в NPM-е

Valentin
03.04.2017
21:10:19
@shergin а не планируете создать список популярных (и главное активных либ), чтобы было проще найти что-то стоющее (было б круто если б они апрувились и отсеивались старые), так как сейчас появляется много либ с приставкой react-native в NPM-е
Я не знаю. У нас есть отдельная команда, которая занимается community support, может быть у них это есть в планах, може быть нет. На сколько я знаю, сейчас есть отдельный репозиторий/аккаунт на гитхабе (что-то типа react-native-community) где хостятся "доверенные"/"качественные" проекты, поддерживаемые внешними людьми, это можно тоже рассматривать как коллекция рекомендованных библиотек. Лично мне не хотелось бы разделять библиотеки на "высшего сорта" и "остальные". Имхо, это неправильно. Все должны быть в равных условиях и иметь равное право на место под солнцем.

Алексей
03.04.2017
21:41:37
@shergin а есть где почитать про ваши маленькие команды, Agile, continuos delivery и ваш тулсет для этого?) я читал paper-ы от fb, но прикольно было бы больше с практической стороны узнать)

Play
04.04.2017
01:19:55
C акшинами вроде как разобрался. Как мне в редюсере вызвать функцию play() у TABLA import Sound from 'react-native-sound' const S = Sound.MAIN_BUNDLE const TABLA = new Sound('TABLA.wav', S) const INITIAL_STATE = { track: TABLA } export default (state = INITIAL_STATE, action) => { switch (action.type) { case 'PLAY_BTN': console.log('PLAY_BTN action!') state = { ...state, ? } break; case 'STOP_BTN': console.log('STOP_BTN action!') state = { ...state, ? } break; } return state }

Dmitry
04.04.2017
01:25:55
для начала, нельзя делать это в редьюсере, там д.б. только чистые ф-ции для изменения стейта. Вызывай в миддлваре

или в компоненте-обертке для Sound, по изменению пропсов... я бы наверное завернул звук именно в компонент

необязательно чтоб он был HOC или даже что-то рендерил

Play
04.04.2017
01:46:55
для начала, нельзя делать это в редьюсере, там д.б. только чистые ф-ции для изменения стейта. Вызывай в миддлваре
Мне еще далее функцию Math.random использовать для выбоки одного трека из массива. Благодарю. Пошел учить миддлваре)

Dmitry
04.04.2017
01:50:50
С рандомом интересно.Либо рандомайзи в action creator, либо райндомайзи в редьюсере, но только псевдорандомом по переданному в него случайному seed. Т.к. редьюсер должен оставаться чистой ф-цией

Мидлвары простые, напишите для начала мидлвару логгер чтобы console.log всех экшенов выводила . Например. Но вообще вывод звука это не сайд эффект. Там нет диспатча других экшенов, нет листенеров и т.п. Думаю правильнее звук компонентом оформить

Play
04.04.2017
02:08:57
С рандомом интересно.Либо рандомайзи в action creator, либо райндомайзи в редьюсере, но только псевдорандомом по переданному в него случайному seed. Т.к. редьюсер должен оставаться чистой ф-цией
В первой версии так и пытался сделать https://github.com/playra/raketa/blob/v1/app/main.js Но там пауза в 15-20 милисекунд между генерацией треков. Мне рекомендовали Redux))) Сижу вникаю. Так получается можно решить задачу средствами React?

Dmitry
04.04.2017
02:12:34
Редакс он лишь связывает кучу компонент единым стейтом и своим циклом по его изменению .... штука крутая, но проблему лага не решит сам по себе

Play
04.04.2017
02:15:52
Редакс он лишь связывает кучу компонент единым стейтом и своим циклом по его изменению .... штука крутая, но проблему лага не решит сам по себе
Эти милисекунды, как я понял уходят на новый Math.random массива. Можно этот расчет перенести в componentWillMount()?

Dmitry
04.04.2017
02:16:24
Не верю в такое

Рандом такие копейки кушает

Play
04.04.2017
02:17:03
все сорсы здесь https://github.com/playra/raketa/blob/v1/app/main.js

два месяца уже не могу решить задачу(

Dmitry
04.04.2017
02:21:09
Может в анимациях дело? Честно гря не умею пока ещё в натив, с вебом проще с отладкой и профилированием

Google
Play
04.04.2017
02:22:04
Без них тоже тестил

Dmitry
04.04.2017
02:29:37
А этот react-native-sound в принципе может решать эту задачу? (Играть группы без задержек )

Я бы собрал Минимально возможное приложение и локализовывал проблему. Либо либа левая, либо я в GUI потоке неверно Ее готовлю )

пусть опытные нативщики подключатся))) спок ночи

Play
04.04.2017
02:32:15
А этот react-native-sound в принципе может решать эту задачу? (Играть группы без задержек )
setNumberOfLoops(value) ставя значение на -1 играет без задережек, а мне то надо генерацию треков делать. Вот подобный проект: http://mubert.com

Dmitry
04.04.2017
02:32:58
Сделай генерацию заранее

Сложи в массив и юзай, точно станет видно что дело не в рандомайзере

Play
04.04.2017
02:33:52
Сделай генерацию заранее
как и где? =) Это мысль давно на уме, правда не пойму как реализовать.

Dmitry
04.04.2017
02:34:43
Да хоть в конструкторе приложения

Задача локализовать источник лага

Делать по уму уже потом можно

Play
04.04.2017
02:35:24
Сделай генерацию заранее
пробывал, тогда треки одни и теже иргают)

перерандомайз где-то делать надо

Можно этот рандомайз перенести в componentWillMount()?

Dmitry
04.04.2017
02:36:55
Это тоже одноразовая штука обычно

Почему нельзя перерандомайзить по клику на play ?

(Я не очень по коду понимаю суть приложухи)

Play
04.04.2017
02:38:38
так работает) но нужен автопилот, бесконечный радомайз луп)

Dmitry
04.04.2017
02:41:30
Я бы начал с изучения методов профилирования в нативе... временная шкала, где и на что уходит время. Уверен что не в рандомайзе дело. Сорри, я afk

Play
04.04.2017
02:44:23
Ilkhom
04.04.2017
05:53:59
ReactNative видимо еще немного поживет. Apple реджектила приложение не из-за него. https://github.com/facebook/react-native/issues/13011#issuecomment-291397943 #reactnative

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